In the Torchtune vs Axolotl choice for 2026, pick Axolotl for almost every new fine tuning job that wants YAML configs, multi GPU runs or fresh model support. Axolotl is actively maintained under Apache 2.0 and still ships new trainers, kernels and export paths. torchtune is a PyTorch native recipe library that once covered SFT, knowledge distillation, DPO, PPO, GRPO and quantization aware training, but its repository states that development wound down in 2025 and that it is no longer actively maintained. Keep torchtune only when you already have a frozen recipe, or when you are reading recipes as teaching material.

This guide compares status, workflow, methods and hardware notes from each project's own docs. Facts were checked against the Axolotl README and docs and the torchtune repository on November 6, 2026. Nothing here was run first hand on this machine. For Unsloth as a single GPU alternative, see Torchtune vs Unsloth and fine tune an LLM locally.

Torchtune vs Axolotl at a glance

ItemAxolotltorchtune
What it isConfig driven fine tuning framework with one YAML file for preprocess, train, evaluate, quantize and inferPyTorch native post training library with forkable recipes and YAML configs
2026 statusActively maintained (PyPI 0.21.1 as of late October 2026)Maintenance mode (wound down in 2025)
Best fitNew multi config YAML jobs, multi GPU or multi node grids, current model familiesFrozen recipes you already ship; reading native PyTorch training loops
Interfaceaxolotl train CLI plus example YAMLs; Docker and cloud imagestune run CLI plus tune download, tune cp and recipe configs
MethodsSFT (default), DPO, IPO, KTO, ORPO, GRPO, GDPO, reward modelling; LoRA, QLoRA, full, QATSFT, knowledge distillation, DPO, PPO, GRPO, quantization aware training (while active)
LicenseApache 2.0BSD 3 Clause
Parent stackHugging Face Transformers, PEFT, TRL, PyTorchFirst party PyTorch library

Status and licence wording come from the Axolotl README and the torchtune README. If you are still choosing a deep learning framework itself, see PyTorch vs JAX.

What Axolotl is

Axolotl is a free, Apache 2.0 fine tuning framework from axolotl-ai-cloud/axolotl. The pitch is one YAML file that you reuse across dataset preprocessing, training, evaluation, quantization and inference. The installation docs ask for Python 3.12 or newer, PyTorch 2.13 or newer (2.13 recommended in the docs), and an NVIDIA GPU (Ampere or newer for bf16 and Flash Attention) or an AMD GPU.

The README feature list (checked November 6, 2026) includes full fine tuning, LoRA, QLoRA, GPTQ, QAT, preference methods (DPO, IPO, KTO, ORPO), RL (GRPO, GDPO), reward modelling, multimodal training, multipacking, Flash Attention, FSDP2, DeepSpeed, sequence and expert parallelism, and multi node launchers. Since September 2026 the same README lists GGUF export through axolotl export for llama.cpp and Ollama style serving. October 2026 updates call out Mistral Large 4 support and more distributed MoE fixes. Treat those as vendor claims from the project docs, not as a live benchmark against torchtune.

A typical install path from the README uses uv:

export UV_TORCH_BACKEND=cu130
uv venv --python 3.12
source .venv/bin/activate
uv pip install torch==2.14.0 torchvision
uv pip install axolotl[deepspeed]
axolotl fetch examples
axolotl train examples/llama-3/lora-1b.yml

Docker images such as axolotlai/axolotl:main-latest are documented for cloud GPUs. PyPI listed axolotl 0.21.1 on November 6, 2026 (uploaded October 27, 2026). For LoRA versus QLoRA memory tradeoffs, see LoRA vs QLoRA. For when RL is worth it after SFT, see fine tuning an LLM with reinforcement learning.

What torchtune is

torchtune was Meta's PyTorch native library for authoring LLM post training. The README describes hackable recipes for supervised fine tuning, knowledge distillation, DPO, PPO, GRPO and quantization aware training, with YAML configs and support for Llama, Gemma, Mistral, Phi and Qwen families while the project was active. You install it with pip install torchtune (the README cites stable PyTorch 2.6.0 as the tested release at the time of writing) and drive jobs with the tune CLI:

tune run lora_finetune_single_device --config llama3_1/8B_lora_single_device

Distributed full fine tunes used torchrun style launchers through the same CLI. The design goal was readable PyTorch you could fork: little magic, native FSDP2 style scaling, and configs you could copy locally with tune cp.

That story changed in mid 2025. In issue 2883, The future of torchtune, the maintainers announced that active development was stopping immediately. Concretely they said torchtune would receive critical bug fixes and security patches during 2025, Discord and GitHub issues would stay open, and no new features would be added. The README banner now says the same thing: torchtune is no longer actively maintained, and development wound down in 2025. A later successor experiment (torchforge) was discussed in that thread; as of this writing, verify any successor status on the PyTorch org pages before you depend on it.

PyPI still lists torchtune 0.6.1 (uploaded April 7, 2025). Existing recipes can still teach you how a clean PyTorch training loop looks. It is a weak bet for a new production pipeline that needs ongoing model support and bug fixes in 2026 and beyond.

How the workflows differ

Axolotl pushes you toward a single YAML file and one command. You set base_model, dataset paths, adapter: lora or adapter: qlora, learning rate, sequence length and optional rl: dpo (or another preference or RL key). The same config can carry you from preprocess through train and into export. Multi GPU and multi node knobs (FSDP2, DeepSpeed, Ray, torchrun) live in that file and in the docs, which is why Axolotl fits experiment grids and shared team configs.

torchtune pushes you toward a named recipe and a YAML config under the tune CLI. You download weights with tune download, optionally copy a config with tune cp, override fields on the command line, and run. Memory knobs in the docs include packing, torch.compile, activation checkpointing, activation offloading and 8 bit AdamW. The README publishes example peak memory and tokens per second for Llama 3.1 sizes on specific GPUs; those are torchtune's own measurements from when the project was active, not a live head to head with Axolotl on the same day.

Neither workflow invents LoRA. Both sit on the same ideas as PEFT. The practical difference in 2026 is maintenance and packaging: Axolotl keeps shipping model guides, kernels and export helpers; torchtune does not add features.

Methods and hardware notes

Do not invent a speed ranking. Hardware, sequence length, packing and compile flags move the numbers.

  • Axolotl documents NVIDIA Ampere or newer for bf16 and Flash Attention, or AMD GPUs, and lists Docker and cloud templates. Its method matrix (SFT by default, then preference and RL keys) is the useful planning artifact for which YAML fields to set. GGUF export is documented as axolotl export with optional quantization.
  • torchtune published detailed tables for Llama 3.1 and Llama 3.2 under fixed settings (for example batch size 2, packed sequence length 2048, compile on). One LoRA run of Llama 3.1 8B on a single RTX 4090 is listed at about 16.2 GiB peak and about 3083 tokens per second; QLoRA on the same card is listed at about 7.4 GiB and about 2413 tokens per second. Those figures describe torchtune, not Axolotl.

If both stacks still run for your model, prefer a short smoke test on your own card over blog screenshots.

When to pick each (and when to pick Unsloth)

Pick Axolotl when:

  • You want reproducible YAML configs shared across a team or a sweep of experiments.
  • You need multi GPU or multi node training with FSDP2, DeepSpeed or related launchers.
  • You want current model support, multimodal training, preference or GRPO style jobs, or GGUF export from the same tool.
  • You care about ongoing fixes in 2026.

Pick torchtune only when:

  • You already have a torchtune recipe frozen in a repo and it still runs on your PyTorch version.
  • You are reading recipes as teaching material for how native PyTorch post training is structured.
  • You accept that no new features will land on that library.

Pick Unsloth (or TRL) when:

  • You are starting a new LoRA or QLoRA job on one NVIDIA GPU and want notebooks, a desktop app or Studio, or fast GGUF export. See Torchtune vs Unsloth.
  • You want maximum control inside Hugging Face trainers without Axolotl's YAML layer: use TRL and PEFT directly.
  • You are on Apple Silicon and want the mlx native path: see notes inside fine tune an LLM locally.

Our local fine tuning guide already owns the Unsloth versus Axolotl secondary phrase. This page owns the pairwise Torchtune vs Axolotl question.

Migrating off torchtune to Axolotl

If an older tutorial tells you to tune run ..., map the job to Axolotl like this:

  1. Keep the same base model id and chat template.
  2. Keep the same dataset rows (JSONL messages or the instruct columns you already have).
  3. Recreate LoRA rank, alpha, target modules, learning rate and max sequence length in an Axolotl YAML (or in Unsloth / a TRL SFTConfig if you prefer Python).
  4. Train a short smoke run and compare loss curves and a handful of held out prompts before you throw away the old checkpoints.
  5. Export with the path you actually serve (adapter, merged weights or GGUF via axolotl export or Unsloth).

You do not need feature parity with every torchtune recipe. Most local jobs are SFT LoRA or QLoRA, which Axolotl, Unsloth and TRL cover well. Preference and GRPO flows are covered in Axolotl's RLHF docs and in our GRPO vs PPO explainer.

FAQ

Is torchtune still maintained?

No, not as an actively developed library. The torchtune README and issue 2883 say development wound down in 2025, with critical fixes only during that year and no new features. Prefer Axolotl, Unsloth or TRL for new work.

Is Axolotl better than torchtune?

For new YAML driven fine tunes in 2026, yes in the practical sense: Axolotl is maintained and still adds models, kernels and export paths. torchtune's native PyTorch recipes were strong when the project was live, but a winding down library is a poor foundation for new pipelines. "Better" still depends on whether you want Unsloth's single GPU packaging or raw TRL control instead.

Can I use torchtune and Axolotl together?

Not as one trainer. They are separate stacks. You can study a torchtune recipe and reimplement the same hyperparameters in an Axolotl YAML or in Unsloth / TRL. Sharing a dataset and evaluation script across both is fine.

Does Axolotl support multi GPU training?

Yes. The docs cover multi GPU training with FSDP2 and DeepSpeed, and multi node training with torchrun and Ray. That is one of the main reasons teams pick Axolotl over a single GPU first toolkit.

What license does each use?

torchtune is BSD 3 Clause per its README. Axolotl is Apache 2.0 per its README and citation block. Read the licence files for the components you ship.

Should I learn torchtune in 2026?

Only as historical or educational material. Learning LoRA concepts, PEFT configs and TRL or Axolotl trainers transfers to current stacks. Investing weeks in the tune CLI for a greenfield project is a poor use of time given the maintenance notice.