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