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はさまざまなシナリオのニーズを満たすことができ、大規模言語モデルの微調整を行うための理想的な選択肢です。