Our take
- Activity
- 76
- Community
- 78
- Issues
- 53
- Pull requests
- 61
+81 stars in the last 15 days
- Merges more pull requests than 88% of the projects we track
- More contributors than 77% of the projects we track
Overview
Axolotl is a Python framework for preparing and running LLM post-training workflows, including supervised fine-tuning, preference tuning, and reinforcement learning. It aims to bring model and dataset configuration, training, evaluation, quantization, and inference into a consistent workflow.
It is suited to practitioners who need to adapt supported models on GPU hardware, from a single machine to distributed setups. Rather than implementing each training method or optimization from scratch, users select options through YAML configuration and use the framework's documented integrations.
Key Features
- Supports full fine-tuning, LoRA, and QLoRA, as well as quantization-aware and mixed-precision training options.
- Includes preference-tuning methods such as DPO, IPO, KTO, and ORPO, plus GRPO and reward-model training.
- Handles multimodal training for supported vision, audio, and video models.
- Uses YAML configuration across dataset preprocessing, training, evaluation, quantization, and inference.
- Supports distributed training options including FSDP2, DeepSpeed, and multi-node workflows.
- Provides dataset loading from local files, Hugging Face, and cloud storage sources.
- Offers Docker images, PyPI packages, examples, and documentation for setup and training workflows.
Use Cases
- A model practitioner can fine-tune a supported language model with LoRA or QLoRA when full-parameter training is too costly for available hardware.
- An ML team can run preference tuning or GRPO experiments using the same framework used for supervised fine-tuning.
- A researcher can adapt a supported vision-language or audio model for a task involving multimodal data.
- A team with multiple GPUs or machines can use the framework's distributed training integrations when a single-device workflow is insufficient.
Getting Started
The README recommends Python 3.12 and provides a uv installation path. For example:
uv pip install --no-build-isolation 'axolotl[deepspeed]'
axolotl fetch examples
axolotl train examples/llama-3/lora-1b.yml
See the README and documentation for installation options, configuration, and hardware-specific guidance.
Alternatives
- torchtune: torchtune uses hackable, PyTorch-native training recipes, while Axolotl centers configurable training workflows.
- LlamaFactory: LlamaFactory offers CLI and web interfaces for fine-tuning, inference, and model export; Axolotl focuses on configurable training workflows.
- Ludwig: Ludwig uses declarative YAML workflows for fine-tuning and broader model development, rather than Axolotl's training-focused configuration.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| axolotl | Python | Apache-2.0 | 12.5k | Not checked yet |
| torchtune | Python | BSD-3-Clause | 5.8k | Quiet |
| LlamaFactory | Python | Apache-2.0 | 75.3k | Active |
| ludwig | Python | Apache-2.0 | 11.8k | Active |
Considerations
Training generally requires accelerator hardware. The README specifies an NVIDIA GPU, with Ampere or newer recommended for bf16 and Flash Attention, or an AMD GPU, along with Python 3.12 and PyTorch 2.13.0 or newer. Actual compatibility depends on the model, training method, hardware, and selected integrations, so consult the support matrix before choosing a workflow. The project also has opt-out telemetry enabled by default; set AXOLOTL_DO_NOT_TRACK=1 to disable it.
Found this useful?
Share it with someone who would like axolotl.