Megatron-LM分散学習(メガトロンエルエムブンサンガクシュウ)
NVIDIAが開発した大規模言語モデル向け分散学習フレームワーク。テンソル並列・パイプライン並列・シーケンス並列を組み合わせた「3D並列化」でGPT/BERT系超大規模モデルの効率的学習を実現。Transformer Engineと統合してFP8学習にも対応する。
Megatron-LM分散学習
Megatron-LMはNVIDIAが2019年から開発する大規模言語モデル分散学習フレームワーク。テンソル並列(Tensor Parallelism)・パイプライン並列(Pipeline Parallelism)・データ並列(Data Parallelism)の「3D並列化」を組み合わせ、数千億パラメータ規模のモデルを効率的に学習する業界標準インフラだ。
3D並列化の構造
データ並列の各DP群がパイプラインステージに分割され、各ステージ内でテンソル並列が適用される3層構造。テンソル並列はNVLink接続の同一ノード内GPUで実行、パイプライン並列はノード間InfiniBandを介して実行するのが一般的な実装パターンだ。
Sequence Parallelism(シーケンス並列)
2022年追加のシーケンス並列は、テンソル並列と直交する追加最適化。Transformerのアテンション計算でDropout・LayerNorm処理をシーケンス長方向に分散しVRAMをさらに削減する。テンソル並列度と同じGPU数でシーケンス並列が可能。
主要論文と実績
2019年のMegatron-LM v1で8.3B GPT-2学習に成功。2021年の3D並列化でMegatron-LM v2が1Tパラメータ規模に対応。2022年のBigScience Bloom-176Bがメガトロン-DeepSpeed組み合わせで学習された。2023年にTransformer Engine + FP8統合、2024年にMegatron-Core API化が完了した。
Megatron-Coreとの関係
2023年にMegatron-LMのコアロジックが「Megatron-Core」としてライブラリ化。NVIDIAのNeMoフレームワークやその他のトレーニングスタックがMegatron-Coreを内部で使用する形に整理された。MoE(Mixture-of-Experts)スラブの追加も容易になり、再利用性と拡張性が大きく向上した。
Transformer Engine(TE)との統合
NVIDIAのTransformer EngineはHopper GPU(H100/H200)でFP8学習を可能にするライブラリ。Megatron-LMとの統合でFP8を使うと、BF16比で最大2倍の計算スループット向上が可能。2024年のGPT学習ではFP8+FlashAttention v3の組み合わせが主流になりつつある。
インターリーブドパイプラインスケジュール
通常の1F1B(1フォワード1バックワード)スケジュールに加え、インターリーブド1F1Bでは各GPUが複数の仮想ステージを担当。バブル率をO(K/M)からO(1/M)に削減し、GPU利用率(MFU)が向上する。通信量は増加するが大規模クラスタでのスループット改善効果が大きい。