InternLM/xtunerView GitHub Homepage for Latest Official Releases
高效、灵活、全功能的大型语言模型微调工具包,支持多种模型和训练算法
Apache-2.0PythonxtunerInternLM 4.7k Last Updated: August 13, 2025
XTuner - 高效的大型语言模型微调工具包
项目概述
XTuner是一个由InternLM团队开发的高效、灵活、全功能的大型语言模型微调工具包。该项目旨在为用户提供一个简单易用且功能强大的工具,用于微调各种大型语言模型,包括InternLM、Llama、Qwen、ChatGLM、Baichuan等主流模型。
核心特性
1. 高效性(Efficient)
- 低资源需求:支持在单个8GB GPU上微调7B参数的大型语言模型
- 多节点扩展:支持超过70B参数的多节点微调
- 性能优化:自动调度高性能算子,如FlashAttention和Triton kernels,提高训练吞吐量
- DeepSpeed集成:兼容DeepSpeed框架,轻松使用各种ZeRO优化技术
2. 灵活性(Flexible)
- 多模型支持:支持多种大型语言模型
- InternLM系列(InternLM、InternLM2、InternLM2.5、InternLM3)
- Meta Llama系列(Llama 2、Llama 3)
- 其他主流模型:Mixtral-8x7B、ChatGLM、Qwen、Baichuan、Gemma、DeepSeek等
- 多模态支持:支持视觉语言模型(VLM),特别是基于LLaVA架构的模型
- 数据管道:精心设计的数据管道,支持各种格式的数据集
- 多种训练算法:支持QLoRA、LoRA、全参数微调等多种训练策略
3. 全功能性(Full-featured)
- 多种训练模式:
- 持续预训练
- 指令微调
- 智能体微调
- 对话功能:支持使用预定义模板与大型模型对话
- 无缝集成:输出模型可无缝集成部署和服务工具包(LMDeploy)以及大规模评估工具包(OpenCompass、VLMEvalKit)
支持的模型
XTuner支持广泛的模型家族,包括但不限于:
模型系列 | 具体模型 | 特点 |
---|---|---|
InternLM | InternLM、InternLM2、InternLM2.5、InternLM3 | 中文优化,性能优异 |
Llama | Llama 2、Llama 3 | Meta开源模型 |
Qwen | Qwen 1.5等 | 阿里巴巴开源模型 |
ChatGLM | ChatGLM3-6B等 | 清华大学开源模型 |
Baichuan | Baichuan2等 | 百川智能开源模型 |
Mixtral | Mixtral 8x7B | Mistral AI的混合专家模型 |
其他 | Gemma、DeepSeek、MiniCPM等 | 各大公司开源模型 |
多模态能力
XTuner在多模态领域表现出色,特别是在视觉语言模型方面:
- LLaVA架构支持:完整支持LLaVA-v1.5架构的预训练和微调
- 优秀性能:LLaVA-InternLM2-20B模型性能突出
- 多种组合:支持多种视觉编码器和语言模型的组合
- 最新发布:
- LLaVA-Llama-3-8B
- LLaVA-Llama-3-8B-v1.1
- LLaVA-Phi-3-mini
安装与使用
环境准备
# 创建Python 3.10虚拟环境
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env
安装方式
方式1:通过pip安装
pip install -U xtuner
方式2:集成DeepSpeed
pip install -U 'xtuner[deepspeed]'
方式3:从源码安装
git clone https://github.com/InternLM/xtuner.git
cd xtuner
pip install -e '.[all]'
快速开始
1. 准备配置文件
# 查看所有可用配置
xtuner list-cfg
# 复制配置文件进行自定义
xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}
2. 开始微调
# 单GPU微调
xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2
# 多GPU微调
NPROC_PER_NODE=${GPU_NUM} xtuner train internlm2_5_chat_7b_qlora_oasst1_e3 --deepspeed deepspeed_zero2
3. 模型转换
# 将PTH模型转换为Hugging Face格式
xtuner convert pth_to_hf ${CONFIG_NAME_OR_PATH} ${PTH} ${SAVE_PATH}
4. 对话测试
# 与微调后的模型对话
xtuner chat ${NAME_OR_PATH_TO_LLM} --adapter ${NAME_OR_PATH_TO_ADAPTER}
高级功能
1. 序列并行
- 支持极长序列训练
- 高效可扩展的训练方式
- 适用于需要处理长文本的场景
2. DPO/ORPO训练
- 支持Direct Preference Optimization (DPO)
- 支持Odds Ratio Preference Optimization (ORPO)
- 支持Reward Model训练
- 支持packed数据和序列并行
3. 数学推理优化
- 支持OREAL(一种新的强化学习方法)
- 专门针对数学推理任务优化
性能表现
训练速度
- Llama2 7B:在单GPU上具有优异的训练速度
- Llama2 70B:支持多GPU并行训练,速度表现出色
- DeepSeek V2:相比之前版本提升2倍训练速度
内存效率
- 低内存需求:20GB GPU内存足够进行QLoRA微调
- 全参数微调:4x80GB GPU可进行全参数微调
- 内存优化:通过各种优化技术大幅降低内存使用
生态系统集成
XTuner作为InternLM生态系统的重要组成部分,与其他工具紧密集成:
- LMDeploy:模型部署和服务工具包
- OpenCompass:大规模评估工具包
- VLMEvalKit:视觉语言模型评估工具包
- Lagent:智能体框架
- AgentLego:多功能工具API库
应用场景
1. 学术研究
- 大型语言模型微调研究
- 多模态模型开发
- 新算法验证
2. 工业应用
- 定制化聊天机器人
- 领域特定模型开发
- 企业级AI助手
3. 教育培训
- AI课程教学
- 实验环境搭建
- 技能培训
结论
XTuner是一个功能全面、性能优异的大型语言模型微调工具包。它不仅支持广泛的模型和训练算法,还提供了完整的工具链,从数据准备到模型部署,为用户提供了一站式的解决方案。无论是学术研究还是工业应用,XTuner都能满足不同场景下的需求,是进行大型语言模型微调的理想选择。