Chapter 01
项目背景与定位
1.1 一句话定位
Axolotl 是 OpenAccess-AI Collective(现为 Axolotl AI Cloud)维护的、英文社区使用最广的"配置文件驱动型 LLM 微调框架"。它的核心理念是:用户只需要写一份 YAML config,剩下所有事 Axolotl 替你搞定。
你在 HuggingFace Hub 上看到的很多英文社区流行模型——Hermes、OpenChat、Capybara、Solar 等——它们的发布说明里几乎都会提到 "Trained with Axolotl"。
1.2 为什么会有 Axolotl
2023 年中,Llama 1/2 开放权重后,社区涌现大量"我也想训一个 Llama 微调版"的需求。当时的痛点:
- HF Trainer + PEFT + accelerate + bitsandbytes + DeepSpeed 拼起来需要写不少胶水代码;
- 不同社区的数据格式(Alpaca、ShareGPT、ChatML)转换起来麻烦;
- 多卡微调需要熟悉 DeepSpeed JSON / FSDP API;
- 量化(4bit/8bit)需要单独处理。
Axolotl 的回答:一份 YAML 配置全包。 写法是这样:
base_model: meta-llama/Llama-3-8B
load_in_4bit: true
adapter: qlora
datasets:
- path: tatsu-lab/alpaca
type: alpaca
deepspeed: deepspeed_configs/zero2.json
然后 accelerate launch -m axolotl.cli.train config.yml,剩下的事不用管。
1.3 它和 LLaMA-Factory / ms-swift 的对比
| 维度 | Axolotl | LLaMA-Factory | ms-swift |
|---|---|---|---|
| 主语言社区 | 英文 | 中文 | 中文 |
| 配置形式 | YAML 一份 | YAML / WebUI | 命令行参数 |
| 数据格式 | 多种 + 自定义 type | 多种 + 模板 | 多种 + 模板 |
| 中文模型 | 支持但不是重点 | 一等公民 | 一等公民 |
| 多模态 | 较弱 | 强 | 强 |
| HF 生态绑定 | 强 | 强 | 中(ModelScope 优先) |
| 社区生态 | Discord 活跃 | GitHub Issues 中文 | 魔搭论坛 |
1.4 设计哲学:YAML 是契约
- 极简的 Python 调用:用户基本不需要写 Python,只调一个命令;
- 配置文件可以共享、可以版本控制:社区里发布"Hermes-3 训练配置"就是丢一个 yaml 出来;
- 大量约定大于配置:例如
gradient_checkpointing: true默认开启。
代价:当 YAML 太长(300 行 +)时变得难以维护;想做"YAML 不支持的事情"需要去改源码或 monkey patch。
1.5 它适合用来做什么、不适合做什么
| 判断 | 典型场景 |
|---|---|
| ✅ 适合 | Llama / Mistral / Mixtral / Solar 等英文社区主流模型的 SFT、DPO |
| "把别人公开的 yaml 改改就训我自己的版本"这种快速迭代 | |
| 单机多卡 / 云端 (Modal、RunPod、Lambda) 训练 | |
| 希望训练过程可重现可分享的研究项目 | |
| ❌ 不适合 | 中文模型为主、需要 ChatGLM / Baichuan 等深度模板支持 |
| 多模态、语音、Agent 复杂训练 | |
| 千亿模型预训练 |
1.6 本书将怎么带你走完这趟旅程
- 第 2-3 章最快路径装好 Axolotl,跑一个 Llama-3 8B QLoRA;
- 第 4-5 章完整剖析一份 YAML,分门别类讲每个字段,并解释数据格式的
type字段; - 第 6-7 章训练算法(SFT/DPO/ORPO/KTO)+ PEFT + 量化;
- 第 8 章多 GPU 训练,DeepSpeed / FSDP 怎么接;
- 第 9 章怎么写自己的 prompt 模板;
- 第 10 章完整实战:训一个 Hermes 风格对话模型;
- 第 11-13 章错误排查、导出推理、源码导读。
1.7 Axolotl 2024–2026 关键节点
本书基线 commit ab1a0d8(2026-05-26)。README 顶部的"Latest Updates"流水按时间倒序覆盖了过去 2 年的大动作:
| 时间 | 特性 / 事件 | 说明 | 本书章节 |
|---|---|---|---|
| 2026-04 | uv-first 依赖管理 + SonicMoE fused LoRA | Mistral Medium 3.5 / Gemma 4 同期支持 | ch02 安装 |
| 2026-03 | MoE expert quantization(FSDP2 兼容) | Mistral Small 4 / Qwen3.5-MoE / GLM-4.7-Flash / GLM-4.6V Day-0 | ch07.6 |
| 2026-02 | ScatterMoE LoRA + SageAttention + GDPO | 专家级 LoRA;Generalized DPO | ch06.10 |
| 2026-01 | EAFT(Entropy-Aware Focal Training)+ Scalable Softmax | 长上下文友好的 loss | ch10.7 |
| 2025-12 | Kimi-Linear / Olmo3 / Ministral3;Distributed Muon(FSDP2) | 新模型族 + 优化器 | ch10.8 |
| 2025-10 | Qwen3 Next / Qwen3-VL / Granite 4 / HunYuan / Apertus / Seed-OSS | 10+ 新模型族 Day-0 | — |
| 2025-Q3 | Text diffusion training + QAT (NVFP4) + ND Parallelism | Gemma 3n / Voxtral / Llama 4 linearized | ch07.7 / ch08.6 |
| 2025-Q2 | TiledMLP / ALST(Arctic Long Sequence)+ Sequence Parallelism | 长上下文系统级支持 | ch08.7 |
| 2025-Q1 | 多模态 (beta) + GRPO + Reward Modeling/PRM + LoRA memory opts | VLM + 在线 RL | ch06.7 |
| 2024-12 | GRPO 加入(R1 风格)+ EBFT | 能量基偏好对齐 | ch06.7 / ch06.9 |
| 2024-Q3 | DPO / ORPO / KTO 全支持 | RLHF 算法谱系成型 | ch06 |
| 2024-06 | 更名为 axolotl-ai-cloud + Modal 集成 | 云端 hosting 第一公民 | ch02 |
| 2024-04 | chat_template type 重构 | Jinja chat_template 一等公民 | ch05 / ch09 |
| 2024-01 | FSDP 支持 | — | ch08 |
| 2023-10 | 多 dataset + sample_packing | 训练性能跳跃 | ch10.7 |
| 2023-05 | v0.1 首版(OpenAccess-AI-Collective) | 开源 | — |
1.8 Axolotl 支持矩阵(60+ 模型族)
README 列的"原生支持模型族"(基线 commit 上):
| 类别 | 代表模型族 |
|---|---|
| LLaMA 系 | Llama 2 / 3 / 4 / Llama-3-Vision |
| Mistral 系 | Mistral / Mistral Small (3.5/4) / Mistral Medium 3.5 / Devstral / Voxtral(音频) |
| Qwen 系 | Qwen2 / Qwen2.5 / Qwen3 / Qwen3-Next / Qwen3.5 / Qwen3.5-MoE / Qwen2-VL / Qwen2.5-VL / Qwen3-VL |
| GLM 系 | GLM-4 / GLM-4.5 / GLM-4.5-Air / GLM-4.6V / GLM-4.7-Flash |
| Gemma 系 | Gemma 2 / 3 / 3n / 4 |
| Falcon / Phi | Falcon-E / Falcon-H1 / Phi-3+ / Phi-4 |
| 新模型族 | Kimi-Linear / Olmo3 / Trinity / Ministral3 / Plano-Orchestrator / MiMo |
| OCR / VLM | InternVL3.5 / SmolVLM2 / Pixtral / LLaVA / MiniCPM-V |
| SSM / 非 transformer | Mamba / Jamba |
| MoE | Mixtral / DeepSeek-V2 / Qwen3-MoE / Granite-MoE |
1.9 跟 LLaMA-Factory / ms-swift 的真实差异(升级版)
| 维度 | Axolotl | LLaMA-Factory | ms-swift |
|---|---|---|---|
| 主入口 | 单 YAML(最强约定) | WebUI + YAML | CLI(一长串 --xxx)+ Web UI |
| 新模型 Day-0 速度 | ★★★★★(英文社区) | ★★★★(中文模型快) | ★★★★★(Qwen 系一等) |
| 分布式 | FSDP1 + FSDP2 + DeepSpeed + ND 并行 | FSDP / DeepSpeed | FSDP + DeepSpeed + Megatron + Ray |
| VLM 多模态 | ★★★(beta,多个 VLM) | ★★★★(产品级) | ★★★★★(VLM/Omni 一等) |
| RLHF | ★★★★(DPO/KTO/ORPO/GRPO/GDPO/EBFT) | ★★★★(DPO/KTO/PPO/EasyR1) | ★★★★★(9 算法 + 变种) |
| 插件 / 集成 | 17 个 integrations | 有插件机制 | tuner_plugin |
| 云原生 | Modal / RunPod / Lambda 一等 | 无特别绑定 | 阿里云 PAI / DSW 一等 |
| 典型用户 | 英文社区 / Discord 文化 | 中文工程团队 | 阿里生态 / 中文研究 |