project
XTuner V1 - 上海AIラボがオープンソース化した次世代大規模モデル学習エンジン
XTuner V1は、上海人工知能研究所がオープンソース化した次世代の大規模モデル学習エンジンです。PyTorch FSDPをベースに開発され、1TBの超大規模モデルの学習におけるメモリ、通信、負荷の問題を体系的に最適化します。
XTuner V1とは何ですか?
XTuner V1は、上海人工知能研究所がオープンソース化した次世代大規模モデル学習エンジンです。PyTorch FSDPをベースに開発され、超大規模モデルの学習におけるメモリ、通信、負荷の問題を体系的に最適化します。1TパラメータのMoEモデルの学習をサポートし、200B規模のモデルにおいて、従来の3D並列ソリューションを凌駕する学習スループットを実現します。XTuner V1は、ファーウェイのAscendテクノロジーチームと連携し、学習効率をさらに向上させ、モデルの浮動小数点演算利用率を高めています。XTuner V1は、学術界および産業界向けに、高性能、低敷居、かつ容易に拡張可能な大規模モデル学習ソリューションを提供します。
XTuner V1の主な機能
- 大規模モデルの効率的なトレーニング本システムは、1T個のパラメータを持つMoEモデルのトレーニングをサポートし、200B個以上のパラメータを持つハイブリッドエキスパートモデルにおいて、従来の3D並列トレーニング方式を凌駕するトレーニングスループットを実現します。
- ビデオメモリの使用量を最適化自動チャンク損失メカニズムと非同期チェックポイントスワップ技術を使用することで、ピーク時のメモリ使用量を効果的に削減し、シーケンス並列技術に頼ることなく、64K長のシーケンスを200BレベルのMoEモデルで学習させることができます。
- 通信コストを隠蔽するパラメータ集約の通信時間を隠蔽するために、極端なメモリ最適化を使用して単一反復の最大シーケンス長を増加させ、レイヤーごとの計算時間を増加させます。また、エキスパート並列処理によって生じる追加の通信オーバーヘッドを隠蔽するために、ノード内ドミノEPを使用してパラメータ集約の通信量を削減します。
- DP負荷分散を実現する各nステップ内で連結されたシーケンスをソートし、各計算において異なるDPの最長部分シーケンス長が類似するようにすることで、可変長のアテンションによって引き起こされる計算バブルを低減します。
- 様々なハードウェアに対応ファーウェイのAscendテクノロジーチームと協力し、Ascend A3 NPUスーパーノードのハードウェア機能を最大限に活用した徹底的な最適化を実施しました。理論的にはNVIDIA H800に比べて演算能力が約20%劣るものの、トレーニングスループットはH800を約5%、MFUは20%以上上回る結果を達成しました。
XTuner V1の技術的原理
-
PyTorch FSDPに基づいて開発されましたPyTorchのFSDP(Fully Shard Data Parallel)は、モデルパラメータを各GPUに均等に分散させるデータ並列化戦略であり、パラメータを事前に集約して再分割することでGPUメモリを節約します。XTuner V1は、FSDPの通信量が多いという問題を解決するために、FSDPを徹底的に最適化しています。
-
ビデオメモリの最適化:
-
自動チャンク損失メカニズム損失関数の計算に使用される計算グラフについては、複数のトレーニングシナリオと様々なハードウェアに対応し、ピーク時のメモリ使用量を効果的に削減する自動チャンク損失メカニズムが開発されました。
-
Async Checkpointing Swap順方向計算の開始時に、再計算中に保存する必要のある活性化値がデバイスからホストに移動され、GPUメモリが解放されます。逆方向計算中は、活性化値が事前にホストからデバイスに移動され、逆方向計算が完了した後にGPUメモリが解放されるため、GPUメモリの使用効率がさらに最適化されます。
-
-
通信カバー:
-
計算時間の増加は通信時間を隠蔽するメモリを極限まで最適化することで、1回の反復処理における最大シーケンス長が増加し、各層の計算時間も増加するため、計算時間が通信時間よりも長くなり、通信オーバーヘッドが隠蔽され、計算バブルが回避されます。
-
Intra-Node Domino-EPGPUメモリや通信帯域幅が制限されているトレーニングシナリオでは、Intra-Node Domino-EPは各レイヤーの集約パラメータの通信量を削減することで、エキスパート並列処理の導入によって発生する追加の通信オーバーヘッドを隠蔽します。
-
-
DPロードバランシング大規模モデルのトレーニング中、複数の文が固定長に連結され、可変長アテンション機構が計算に使用されます。XTuner V1は、nステップごとに連結されたシーケンスをソートし、各計算における異なる動的計画法(DP)演算の最長部分シーケンス長を類似させることで、可変長アテンションによって発生する計算バブルを低減し、トレーニング効率を向上させます。
XTuner V1 プロジェクトアドレス
- プロジェクト公式サイト:https://xtuner.readthedocs.io/zh-cn/latest/
- GitHubリポジトリ:https://github.com/InternLM/xtuner
XTuner V1の応用シナリオ
-
自然言語処理(NLP)これは、GPTやBERTなどの超大規模言語モデルのトレーニングに使用され、モデルの言語理解および生成能力を向上させるために用いられ、機械翻訳、テキスト生成、感情分析などのタスクに応用されています。
-
コンピュータビジョン(CV)分野画像認識や物体検出といったタスクでは、モデルの精度と効率を向上させるために、ResNetやTransformerなどの大規模な視覚モデルが訓練される。
-
マルチモーダル学習言語情報と視覚情報を組み合わせることで、CLIPのようなマルチモーダルモデルを訓練し、画像記述生成や視覚的質問応答などのタスクに利用することで、複雑なシーンを理解するモデルの能力を向上させることができる。
-
強化学習ロボット制御やゲームAIなどの長系列強化学習タスクにおいて、XTuner V1は長系列データを効率的に処理し、モデルトレーニングを高速化し、ポリシー学習の効率を向上させることができます。