Loading...

文章背景图

XTuner:InternLM 团队开源的高效大模型微调与超大规模 MoE 训练引擎|部署与使用全指南

2026-11-02
0
- 字
- 分钟
|

图1 XTuner 训练速度基准对比(官方素材)

XTuner:InternLM 团队开源的高效大模型微调与超大规模 MoE 训练引擎|部署与使用全指南

项目仓库: https://github.com/InternLM/xtuner

开源协议:Apache 2.0 · 交付形态:PyPI 包 xtuner · 定位:高效 LLM 微调工具链,V1 版本面向超大规模 MoE 训练 · 支持模型:Intern S1 / Intern VL / Qwen3 Dense & MoE / GPT OSS / DeepSeek V3 / Kimi K2 · 硬件:NVIDIA GPU(FP8 / BF16)与华为 Ascend NPU(BF16) · 模型分发:Hugging Face、ModelScope、OpenXLab、WiseModel

官方维护状态说明:XTuner 由上海人工智能实验室 InternLM 团队维护;2025 年 9 月发布 XTuner V1,定位为"面向超大规模 MoE 模型的下一代训练引擎"。本文信息取自官方 README;具体微调配置与命令以官方文档与仓库 examples/ 目录为准。


1 项目简介

XTuner 是 InternLM 团队开源的大模型微调工具链,早期以低显存微调 QVQ、Llama、InternLM 等 Dense 模型著称;V1 版本重新定位为面向超大规模 MoE 模型的训练引擎,支持从 200B 到 1T 参数的 MoE 预训练、指令微调与强化学习。其核心思路是通过 Dropless 训练策略减少专家并行维度,配合显存优化与 DeepSpeed Ulysses 序列并行,在不复杂扩展的前提下训练超大 MoE。

非官方 / 第三方边界声明:XTuner 代码 Apache 2.0;所训练的上游模型(InternLM、Qwen、DeepSeek、GPT OSS、Kimi 等)按各自许可使用。本文不提供训练数据,数据准备需自行合规。

1.1 核心信息一览

项目项 内容
项目名称 XTuner(PyPI 包 xtuner)
仓库地址 github.com/InternLM/xtuner
项目定位 高效 LLM 微调工具链;V1 面向超大规模 MoE 训练
开源协议 Apache 2.0
最新版本 V1(2025/09 发布)
支持模型 Intern S1、Intern VL、Qwen3 Dense / MoE、GPT OSS、DeepSeek V3、Kimi K2
硬件支持 NVIDIA GPU(FP8 / BF16);Ascend NPU(BF16)
算法能力 多模态预训练、多模态 SFT、GRPO;规划中 MPO / DAPO / 多轮 Agentic RL
推理集成 LMDeploy 已对接;vLLM / SGLang 规划中
模型分发 Hugging Face、ModelScope、OpenXLab、WiseModel

1.2 适用场景

  • 希望用单卡或少量 GPU 对 7B–70B Dense 模型做指令微调、LoRA / QLoRA 实验。
  • 团队需要在千卡集群上训练 200B–1T 规模 MoE 模型,且希望减少专家并行复杂度。
  • 需要做多模态预训练 / SFT(视觉语言模型),或基于 GRPO 做强化学习。
  • 希望在 NVIDIA GPU 与华为 Ascend NPU 之间复用同一套训练配置。

1.3 能力边界(官方口径)

  • V1 重点面向 MoE 训练;Dense 模型微调能力延续早期版本,详见仓库 examples/。
  • GPT OSS、DeepSeek V3、Kimi K2 的 Ascend NPU 支持仍在开发中(🚧)。
  • 推理引擎目前官方对接 LMDeploy;vLLM / SGLang 为路线图项。
  • 强化学习算法目前已实现 GRPO,MPO / DAPO / 多轮 Agentic RL 为 Coming Soon。

2 功能特性

2.1 Dropless 超大规模 MoE 训练

  • 可扩展但不复杂:200B 规模 MoE 无需专家并行即可训练;600B 仅需节点内专家并行。
  • 更优并行策略:相比传统 3D 并行,专家并行维度更小,Dropless 训练更高效。
  • 最大 1T 参数:支持 MoE 训练到 1T 参数规模。
  • 性能突破:在 200B 以上 MoE 规模上,FSDP 训练吞吐首次超过传统 3D 并行方案。

2.2 长序列支持

  • 200B MoE 在 64k 序列长度下无需序列并行即可训练(通过显存优化)。
  • 完整支持 DeepSpeed Ulysses 序列并行,最大序列长度可线性扩展。
  • 长序列训练中即使专家负载不均也能保持稳定。

2.3 硬件覆盖

  • NVIDIA GPU:FP8 与 BF16 双精度支持。
  • 华为 Ascend:BF16 支持;官方称在 Ascend A3 Supernode 上训练效率超过 NVIDIA H800。

2.4 算法路线图

算法 状态
多模态预训练 ✅ 已实现
多模态监督微调 ✅ 已实现
GRPO(Group Relative Policy Optimization) ✅ 已实现
MPO(Mixed Preference Optimization) 🔄 规划中
DAPO(Dynamic Sampling Policy Optimization) 🔄 规划中
多轮 Agentic RL 🔄 规划中

2.5 数据准备与推理集成

  • 可配合 GraphGen 生成合成微调数据。
  • 推理侧已对接 LMDeploy,训练完即可快速部署。

3 官方界面预览

图 1 为官方 README 中展示的训练速度基准对比图;XTuner 为命令行训练工具,不提供图形界面。

4 官方跳转链接汇总

类别 链接 说明
仓库主页 github.com/InternLM/xtuner 源码、examples、README
PyPI pypi.org/project/xtuner 安装包
Hugging Face huggingface.co/xtuner XTuner 发布的模型
ModelScope modelscope.cn/organization/xtuner 国内模型分发
OpenXLab openxlab.org.cn/usercenter/xtuner 上海AI实验室模型平台
WiseModel wisemodel.cn/organization/xtuner 国内模型平台
LMDeploy github.com/InternLM/lmdeploy 官方推理引擎
GraphGen github.com/open-sciencelab/GraphGen 合成数据生成
中文 README README_zh-CN.md 中文版说明
Discord discord.gg/xa29JuW87d 社区

5 前置要求与服务器配置

5.1 软件前提

  • Linux(推荐 Ubuntu 20.04/22.04)。
  • Python 3.10+。
  • NVIDIA GPU + CUDA(FP8 需 Hopper 架构 H100 / H200 及以上;BF16 需 Ampere 及以上)。
  • PyTorch(按官方文档推荐版本)。
  • Ascend NPU 需配套 CANN 工具链与 Ascend PyTorch Adapter。

5.2 硬件建议(按场景)

场景 推荐配置
Dense 模型 LoRA / QLoRA 微调(7B–13B) 单张 24GB 显存 GPU
Dense 模型全参微调(7B–70B) 多卡 A100 / H100 80GB
200B MoE 训练 多节点 GPU 集群
600B–1T MoE 训练 千卡级集群(NVL72 / Ascend A3 Supernode)

5.3 端口说明

端口 服务 用途
无 XTuner 训练进程 训练任务本身不监听 Web 端口;配合 LMDeploy 推理时另起服务

6 方式一:pip 安装与微调

6.1 安装

pip install xtuner

或从源码安装:

git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e .

6.2 准备数据与配置

XTuner 通过 Python 配置文件描述数据集、模型、并行策略与训练超参。具体配置示例见仓库 examples/ 目录(按模型分目录组织)。

# 查看可用配置(示例)
ls examples/

6.3 启动训练

XTuner 提供命令行工具(具体子命令以安装后 xtuner help 与官方文档为准)。典型流程为:

# 单卡 / 多卡训练(示例命令,具体以仓库 examples 为准)
xtuner train <config.py> --work-dir <output_dir>

# 多卡用 torchrun 或 deepspeed 启动
# torchrun --nproc_per_node=8 xtuner train <config.py> ...

本文未臆造具体子命令;安装后执行 xtuner --help 与参考 examples/ 内 README 获取最新命令。

7 方式二:源码与 LMDeploy 推理部署

7.1 训练后导出

微调完成后,将权重导出为 LMDeploy 支持的格式,再用 LMDeploy 启动推理服务。

7.2 LMDeploy 推理

# 安装 LMDeploy(见官方仓库)
pip install lmdeploy

# 启动 OpenAI 兼容服务(示例)
lmdeploy serve api_server <model_path>

8 配置项说明

XTuner 配置文件为 Python 模块,核心字段按官方文档与 examples 为准,常见维度包括:

维度 说明
model 基座模型路径与加载参数
dataset 训练数据路径、prompt 模板、pack 策略
parallel TP / PP / EP / Ulysses 序列并行度
precision FP8 / BF16
training lr、epochs、batch size、warmup、scheduler
algorithm SFT / GRPO 等算法选择

完整字段以仓库 examples/ 与官方文档为准。

9 常用运维命令

# 查看 xtuner 版本与帮助
xtuner --version
xtuner --help

# 查看 GPU 占用
nvidia-smi

# 查看训练日志
tail -f <work-dir>/<job>.log

# 停止训练
# Ctrl+C 终止;如多卡可 pkill -f "xtuner train"

# 查看已保存 checkpoint
ls <work-dir>/

10 常见故障排查

  • FP8 不支持:FP8 训练需 Hopper 架构(H100 / H200 / B200);Ampere 及以下请改用 BF16。
  • Ascend 模型支持不全:GPT OSS、DeepSeek V3、Kimi K2 的 NPU 支持仍在开发中(🚧),请用 GPU 版本。
  • OOM 显存不足:减小 batch size、开启梯度累积、使用 LoRA / QLoRA;长序列训练可启用 DeepSpeed Ulysses。
  • 数据格式不匹配:参考 examples/ 内数据预处理脚本,按模型 prompt 模板组织。
  • 专家负载不均:官方称长序列训练下 Dropless 策略可保持稳定;如遇不稳,按 README 建议调整并行度。
  • 推理部署:训练后权重请走 LMDeploy 对接;vLLM / SGLang 为路线图项,暂不官方支持。

11 风险与合规说明

  • 模型许可:XTuner 代码 Apache 2.0,但训练的上游模型(Qwen、DeepSeek、Kimi、GPT OSS 等)按各自许可;商用前须确认。
  • 数据合规:微调数据须自行确保来源合法、不侵犯隐私与版权;合成数据请评估质量与偏见。
  • 硬件依赖:FP8 训练锁定 NVIDIA Hopper;Ascend 支持仍在迭代。
  • 版本演进快:V1 于 2025/09 发布,接口与示例可能快速变化,以官方仓库最新说明为准。
  • 本文非官方文档:命令与配置以仓库 examples/ 与官方文档为准;本文未臆造具体训练子命令。
评论交流

文章目录