DeepSpeed および Megatron トレーニング スタック
DeepSpeed (Microsoft) と Megatron-LM (NVIDIA) は、数千の GPU にわたる数十億のパラメーターを使用したトレーニング モデルを実際に実現可能にするソフトウェア スタックです。
概要
Without them, today's frontier models simply could not fit in memory or finish training in a reasonable time.
ディープダイブ
重み、勾配、オプティマイザーの状態が適合しないため、1 つの GPU で大規模なモデルをトレーニングすることは不可能です。これらのスタックは、多くの GPU に作業を分割します。 Megatron-LM は、GPU の各レイヤー内で個々の行列乗算をスライスするテンソル並列処理に加え、異なるレイヤーを異なる GPU に配置するパイプライン並列処理の先駆けとなりました。 DeepSpeed の特徴的な貢献は ZeRO (Zero Redundancy Optimizer) です。これは、オプティマイザーの状態、勾配、パラメーターを複製するのではなく、GPU 全体でシャード化し、GPU ごとのメモリを大幅に削減します。この 2 つは、BLOOM-176B や Megatron-Turing NLG などのモデルをトレーニングするために組み合わせられることがよくあります (Megatron-DeepSpeed)。また、混合精度、アクティベーション チェックポイント、CPU または NVMe へのオフロードも追加されるため、限られたハードウェアで巨大なモデルをトレーニングできます。
技術的な洞察
ZeRO にはメモリ節約量を増やすための 3 つのステージがあります。ステージ 1 はオプティマイザーの状態をシャードし、ステージ 2 は勾配もシャードし、ステージ 3 はパラメータ自体をシャードし、前方および後方パス中にオンデマンドでパラメータを収集します。テンソル並列処理 (層内) とパイプライン並列処理 (層間) を組み合わせると、これは「3D 並列処理」を形成します。重要な問題は通信オーバーヘッドです。シャードが分割されるたびに GPU 間のトラフィックが追加されるため、エンジニアは分割を調整して高速 NVLink および InfiniBand リンクを飽和状態に保ちます。
戦略的影響
費用と予算
アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
より明確な判決
技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
品質管理
より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。
DeepSpeed と Megatron トレーニング スタックの将来
PyTorch のネイティブ FSDP (Fully Sharded Data Parallel) とのより緊密な統合が期待されます。FSDP は多くの ZeRO アイデアを吸収し、研究スタックとコア フレームワークの間の境界線を曖昧にします。コンパイラ駆動のアプローチと自動並列化プランナーは、手動チューニングを排除することを目的としています。トレーニング クラスターが数十万のアクセラレータに向けて成長するにつれて、NVIDIA Blackwell やカスタム トレーニング チップなどの新しいハードウェアのサポートと並んで、フォールト トレランス、エラスティック スケーリング、コンピューティングとの重複通信が主要なエンジニアリング フロンティアになります。
現実世界の実装
数百の GPU にまたがる Megatron-DeepSpeed スタックを組み合わせて、オープン多言語 BLOOM-176B モデルをトレーニングします。
Microsoft と NVIDIA は、3D 並列処理を使用して 5,300 億パラメータの Megatron-Turing NLG モデルをトレーニングしました。
ZeRO-Offload を使用すると、オプティマイザの状態を CPU RAM にスピルすることで、研究者が単一のワークステーション GPU 上で数十億のパラメータ モデルを微調整できるようになります。
これらのスタックでアクティベーション チェックポイントを使用すると、すべてを保存するのではなくアクティベーションを再計算することで、より長いコンテキスト ウィンドウに適合します。
リスクとガードレール
1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
インフラストラクチャとメンテナンスのコストは過小評価されがちです。
システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。
実装ロードマップ
実装前にレイテンシ、品質、コストの目標を定義します。
現実的な負荷とデータ条件でのベンチマーク。
エラー、ドリフト、ユーザーへの影響を計測器で監視します。
スケーリングの前に、ロールバックとインシデント対応のパスを準備します。
探検を続けましょう
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the DeepSpeed and Megatron Training Stacks quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
次のガイド
GPTQ および AWQ ポストトレーニング量子化
よくある質問
What is DeepSpeed and Megatron Training Stacks?
DeepSpeed (Microsoft) と Megatron-LM (NVIDIA) は、数千の GPU にわたる数十億のパラメーターを使用したトレーニング モデルを実際に実現可能にするソフトウェア スタックです。これらがなければ、今日のフロンティア モデルは単にメモリに収まることも、妥当な時間内にトレーニングを完了することもできません。
DeepSpeed の ZeRO オプティマイザーの主な目的は何ですか?
ZeRO (Zero Redundancy Optimizer) は、オプティマイザーの状態、勾配、パラメーターを各デバイスで複製するのではなく、GPU 全体に分割することでメモリの冗長性を排除します。
Megatron-LM で先駆的に開発されたテンソル並列処理は、モデルをどのように分割しますか?
テンソル並列処理は、単一レイヤー内の演算 (大きな行列の乗算など) を複数の GPU に分割します。これはレイヤー内分割です。
モデル パラメーター自体もシャーディングすることで、メモリを最大限に節約できるのはどの ZeRO ステージですか?
ZeRO Stage 3 は、勾配とオプティマイザーの状態に加えてパラメーターをシャード化し、それらをオンデマンドで収集し、最大のメモリ削減を実現します。
トレーニング中のメモリを節約するために「アクティベーション チェックポイント」は何を犠牲にするのでしょうか?
アクティベーション チェックポイント処理では、保存される中間アクティベーションの数が減り、バックプロパゲーション中にそれらが再計算され、メモリの削減と引き換えに追加の計算が行われます。
これらの技術を組み合わせることがよく「3D 並列処理」と呼ばれるのはなぜですか?
3D 並列処理では、データ並列処理、テンソル (層内) 並列処理、およびパイプライン (層間) 並列処理という 3 つの直交する戦略が積み重ねられます。