Axolotl

本指南将帮助您使用 Axolotl 开始对 Qwen3 / Qwen3_MOE 进行后训练(SFT、RLHF、RM、PRM),并涵盖为提升性能而启用的优化。

要求

  • GPU: 适用于 bf16Flash Attention 的 NVIDIA Ampere(或更新架构),或 AMD GPU

  • Python: ≥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 Attentionbf16LoRAtorch_compileQLoRA

如需在多块 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 的自定义优化来提升速度并减少内存使用:

附加建议

故障排除

  • 确保您的 CUDA 版本与您的 GPU 和 PyTorch 版本匹配。

  • 如果遇到内存不足的问题,可以尝试减少批处理大小、启用上述优化或缩短序列长度。

  • 由于上游 Transformer 对 MoE 层的处理,Qwen3 MoE 的训练速度可能会较慢。

  • 如需帮助,请查看 Axolotl Discord 上的帮助频道,或者在 Axolotl GitHub 上创建讨论。