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都能滿足不同場景下的需求,是進行大型語言模型微調的理想選擇。