テクニカルガイド

モデルとパイプラインの並列処理

モデルが大きすぎて 1 つの GPU に収まらない場合、モデルとパイプラインの並列処理によってモデル自体がデバイス間で分割されます。

概要

モデルが大きすぎて 1 つの GPU に収まらない場合、モデルとパイプラインの並列処理によってモデル自体がデバイス間で分割されます。これにより、数千億のパラメータを持つ巨大な言語モデルのトレーニングが物理的に可能になります。

モデルとパイプラインの並列処理は、大規模なモデルの品質、インフラストラクチャのコスト、レイテンシ、信頼性に影響を与える技術的な構成要素です。

ディープダイブ

モデルの並列処理により、単一のモデルが複数の GPU に分割されるため、1 つのデバイスがすべての重みを保持する必要はありません。味は主に2つあります。テンソル (層内) 並列処理は、それぞれが出力の一部を計算する GPU 間で大規模な行列乗算を分割するなど、層内の計算を分割します。パイプライン (レイヤー間) 並列処理では、異なる連続レイヤーが異なる GPU に割り当てられるため、レイヤーのブロック 1 は GPU 0 に存在し、ブロック 2 は GPU 1 に存在し、組み立てラインのようにアクティベーションが前方に渡されます。単純なパイプラインの課題は「バブル」です。GPU 0 が最初のバッチで動作している間、ダウンストリーム GPU はアイドル状態になります。パイプライン化により各バッチがマイクロバッチに分割されるため、すべてのステージがビジー状態を維持し、使用率が大幅に向上します。

技術的な洞察

テンソル並列処理 (NVIDIA Megatron-LM など) は、重み行列を列単位または行単位で分割し、all-reduce を使用して部分的な結果を再結合し、高速 NVLink ノード内での通信を維持します。パイプライン並列処理 (GPipe、PipeDream) は、バッチをマイクロバッチに分割し、時差スケジュールでステージを通過し、アイドル状態の「バブル」時間を短縮します。多くの場合、この 2 つはノード内でのテンソル並列処理とノード間のパイプライン並列処理で階層化されます。

マスタリングモデルとパイプライン並列処理

モデルが大きすぎて 1 つの GPU に収まらない場合、モデルとパイプラインの並列処理によってモデル自体がデバイス間で分割されます。これにより、数千億のパラメータを持つ巨大な言語モデルのトレーニングが物理的に可能になります。モデルとパイプラインの並列処理は、大規模なモデルの品質、インフラストラクチャのコスト、レイテンシ、信頼性に影響を与える技術的な構成要素です。深い理解を得るには、モデルとパイプラインの並列処理を単一の機能ではなく、オペレーティング モデルとして扱います。望ましい結果を定義し、前提条件を明確にし、システムが確実に実行できることと、専門家の判断が必要なことを区別します。

実際、モデルとパイプラインの並列処理を使用する強力なチームは、信頼性とコストに照らしてアーキテクチャ、データ、インフラストラクチャの選択を最適化します。明示的な成功基準を文書化し、現実的なデータとワークフローに対してテストし、一度限りのベンチマークの成功ではなく、観察された失敗パターンに基づいて反復します。ここで、理論的な理解が、製品、ポリシー、運用全体にわたる永続的な機能に変わります。

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。同時に、1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。最も回復力のあるアプローチは、実験のスピードとガバナンスの規律を組み合わせることであり、パイロットを実行し、証拠を取得し、意思決定ログを公開し、モデルの動作、ユーザーの期待、規制要件の進化に応じて安全対策を継続的に更新します。

戦略的影響

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。高品質の導入では、これが測定可能な運用ルール、所有権の境界、定期的なレビューの儀式に変換されるため、チームは曖昧さを拡大するのではなく、自信を拡大することができます。

モデルとパイプラインの並列処理の将来

フレームワークは、コンピューティングと通信のバランスをとるためにプロファイリングと検索を使用して、デバイス間でモデルを分割する方法を決定するという難しい問題をますます自動化しています。テンソル、パイプライン、およびデータ並列処理 (3D 並列処理) のより緊密な統合、パイプライン バブルをほぼ排除するためのよりスマートなマイクロバッチ スケジューリング、およびより高速な相互接続を備えたハードウェアにより、チップ間での単一レイヤーの分割がより安価になり、ますます大規模なモデルにとって日常的になることが期待されます。

現実世界の実装

NVIDIA Megatron-LM を使用して GPT スタイルのモデルをトレーニングします。これは、各トランスフォーマー層の注意を分割し、テンソル並列処理を介して GPU 全体にフィードフォワード行列を分割します。

GPipe を使用して、巨大なビジョンまたは言語モデルのさまざまなレイヤーを個別のアクセラレータに配置し、マイクロバッチ処理でそれらを忙しくさせます。

DeepSpeed のパイプライン エンジンは、数千億のパラメータ モデルを多数のノードにわたるステージに分割します。

単一の 8 GPU サーバー内のテンソル並列処理と、複数のサーバーにわたるパイプライン並列処理を組み合わせて、1 台のマシンには大きすぎるモデルをトレーニングします。

実装パターン

実際のモデルとパイプラインの並列処理

NVIDIA Megatron-LM を使用して GPT スタイルのモデルをトレーニングします。これは、各トランスフォーマー層の注意を分割し、テンソル並列処理を介して GPU 全体にフィードフォワード行列を分割します。

NVIDIA Megatron-LM を使用して GPT スタイルのモデルをトレーニングすると、各トランスフォーマー層のアテンションとフィードフォワード行列がテンソル並列処理によって GPU 全体に分割されます。チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対する人間によるエスカレーション パスを維持し、生産性の向上とエラー コストの両方を長期にわたって追跡すると、より良い結果が得られます。

実際のモデルとパイプラインの並列処理

GPipe を使用して、巨大なビジョンまたは言語モデルのさまざまなレイヤーを個別のアクセラレータに配置し、マイクロバッチ処理でそれらを忙しくさせます。

GPipe を使用して、巨大なビジョンまたは言語モデルのさまざまなレイヤーを個別のアクセラレータに配置し、マイクロバッチ処理で多忙を保つ チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対する人間によるエスカレーション パスを確保し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

実際のモデルとパイプラインの並列処理

DeepSpeed のパイプライン エンジンは、数千億のパラメータ モデルを多数のノードにわたるステージに分割します。

DeepSpeed のパイプライン エンジンは、数千億のパラメータ モデルを多数のノードにわたるステージに分割します。チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対する人的エスカレーション パスを確保し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

実際のモデルとパイプラインの並列処理

単一の 8 GPU サーバー内のテンソル並列処理と、複数のサーバーにわたるパイプライン並列処理を組み合わせて、1 台のマシンには大きすぎるモデルをトレーニングします。

単一の 8 GPU サーバー内のテンソル並列処理と、複数のサーバーにまたがるパイプライン並列処理を組み合わせて、1 台のマシンには大きすぎるモデルをトレーニングします。チームは通常、品質のしきい値を事前に定義し、エッジ ケースに対する人的エスカレーション パスを確保し、生産性の向上とエラー コストの両方を長期的に追跡すると、より良い結果が得られます。

リスクとガードレール

!

1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。

!

インフラストラクチャとメンテナンスのコストは過小評価されがちです。

!

システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

実装ロードマップ

1

実装前にレイテンシ、品質、コストの目標を定義します。

実装前にレイテンシ、品質、コストの目標を定義します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

2

現実的な負荷とデータ条件でのベンチマーク。

現実的な負荷とデータ条件でのベンチマーク。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

3

エラー、ドリフト、ユーザーへの影響を計測器で監視します。

エラー、ドリフト、ユーザーへの影響を計測器で監視します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

4

スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

スケーリングの前に、ロールバックとインシデント対応のパスを準備します。各ステップを証拠ゲートとして扱います。基準が満たされない場合は、ロールアウトを一時停止し、ギャップを埋めてから、使用を拡大します。

探検を続けましょう