Home
Login

高效、灵活、全功能的大型语言模型微调工具包,支持多种模型和训练算法

Apache-2.0Python 4.6kInternLM Last Updated: 2025-05-29

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都能满足不同场景下的需求,是进行大型语言模型微调的理想选择。