Axolotl¶
本指南将帮助您使用 Axolotl 开始对 Qwen3 / Qwen3_MOE 进行后训练(SFT、RLHF、RM、PRM),并涵盖为提升性能而启用的优化。
要求¶
GPU: 适用于
bf16和Flash Attention的 NVIDIA Ampere(或更新架构),或 AMD GPUPython: ≥3.11
CUDA: ≥12.4(适用于 NVIDIA GPU)
安装¶
您可以使用 PyPI、Conda、Git、Docker 安装 Axolotl,或者启动云环境。
重要
在安装 Axolotl 之前 安装 PyTorch,以确保 CUDA 兼容性。
有关最新说明,请参阅官方 Axolotl 安装指南。
快速入门¶
SFT(监督微调)¶
我们提供了一个使用 Qwen/Qwen3-32B 进行 SFT 的示例 YAML 配置文件:SFT 32B QLoRA 配置。
# Train the model
axolotl train path/to/32b-qlora.yaml
# Merge LoRA weights with the base model
# This will create a new `merged` directory under `{output_dir}`
axolotl merge-lora path/to/32b-qlora.yaml
小技巧
要训练较小的模型,请编辑配置文件中的 base_model:
base_model: Qwen/Qwen3-8B
Qwen3 可以使用所有 Axolotl 功能,包括 Flash Attention、bf16、LoRA、torch_compile 和 QLoRA。
如需在多块 GPU 上运行,请参阅 多 GPU 训练指南 或 多节点训练指南。
RLHF(基于人类反馈的强化学习)¶
请参阅 RLHF 指南,了解每种方法所需的数据集格式和示例。
RM/PRM¶
请参阅 奖励建模指南,了解所需的数据集格式和配置示例。
数据集¶
“msgstr “默认情况下,示例配置使用 mlabonne/FineTome-100k 数据集(来自 HuggingFace Hub)。您可以替换为您自己的任何数据集。
SFT 数据集格式¶
Axolotl 支持多种 SFT 数据集格式,但当前推荐的格式(用于 chat_template)是 OpenAI Messages 格式:
[
{
"messages": [
{
"role": "user",
"content": "What is Qwen3?"
},
{
"role": "assistant",
"content": "Qwen3 is a language model..."
}
]
}
]
在您的配置中使用以下内容:
datasets:
- path: path/to/your/dataset.json
type: chat_template
您还可以从多个来源加载数据集:HuggingFace Hub、本地文件、目录、S3、GCS、Azure 等。
更多详细信息,请参阅数据集加载指南。
要加载不同的数据集格式,请参阅SFT 数据集格式指南。
性能优化¶
通过 Qwen3/Qwen3_MOE,您可以利用 Axolotl 的自定义优化来提升速度并减少内存使用:
(仅限 LoRA/QLoRA):LoRA Kernels 优化
附加建议¶
故障排除¶
确保您的 CUDA 版本与您的 GPU 和 PyTorch 版本匹配。
如果遇到内存不足的问题,可以尝试减少批处理大小、启用上述优化或缩短序列长度。
由于上游 Transformer 对 MoE 层的处理,Qwen3 MoE 的训练速度可能会较慢。
如需帮助,请查看 Axolotl Discord 上的帮助频道,或者在 Axolotl GitHub 上创建讨论。