テクニカルガイド

大規模モデルのテンソル並列処理

単一のニューラル ネットワーク レイヤー内の計算を複数の GPU に分割して、1 つのデバイスには大きすぎるモデルを実行できるようにする方法。

2分の読書最終更新日

概要

It matters because frontier models have hundreds of billions of parameters that no single GPU can hold or compute fast enough alone.

ディープダイブ

テンソル並列処理 (レイヤ内モデル並列処理とも呼ばれます) は、レイヤ全体を個別のデバイスに配置するのではなく、GPU 間で個々の重み行列をシャード化します。トランスフォーマーでは、大きな行列の乗算 (アテンション投影とフィードフォワード MLP) が分割されます。たとえば、MLP の最初の重み行列は列ごとに分割され、2 番目の重み行列は行ごとに分割されるため、各 GPU がスライスを計算し、単一の all-reduce が結果を結合します。注意は頭全体に分散され、各 GPU がサブセットを処理します。すべての GPU がすべてのレイヤーの一部を同時に実行するため、テンソル並列処理により GPU ごとのメモリが削減され、計算が高速化されますが、各レイヤーの GPU 間で頻繁に高帯域幅の通信が必要になります。そのため、通常は NVLink によって接続されたノード内に限定され、非常に大規模なトレーニングおよびサービス ジョブのためにパイプラインおよびデータ並列処理と組み合わせられます。

技術的な洞察

Megatron-LM によって広められた秘訣は、通信が最小限になるようにパーティションのディメンションを選択することです。最初の MLP マトリックスを列方向に分割すると、各 GPU が同期なしで非線形性をローカルに適用できるようになります。 2 番目の行を行ごとに分割すると、出力には部分的な結果を合計するための all-reduce が 1 つだけ必要になるということになります。したがって、各レイヤーには、およそ 2 つの all-reduce (前方) と 2 つ (後方) が発生します。これらの集合はすべてのレイヤーで発生するため、レイテンシが支配的になります。そのため、テンソル並列処理は、低速のノード間ネットワークではなく、NVLink などの高速なノード内リンクの背後に存在します。

戦略的影響

費用と予算

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

より明確な判決

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

品質管理

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

大規模モデルにおける Tensor 並列処理の将来

テンソル並列処理は依然として基礎的なものですが、ますます「3D 並列処理」 (テンソル + パイプライン + データ) にブレンドされ、専門家混合モデルのエキスパート並列処理と組み合わせられています。 Megatron-LM、DeepSpeed、vLLM などのフレームワークはシャーディングを自動化します。 GPU インターコネクト (NVLink、NVSwitch) と光ファブリックが高速になるにつれて、ノード境界の制限が緩和され、より広いテンソル並列グループが可能になります。シャードのディメンションとグループのサイズを選択して、特定のクラスター トポロジの通信を最小限に抑える、よりスマートな自動並列化が期待されます。

現実世界の実装

Megatron-LM を使用して、NVLink に接続された 1 つのノード内の 8 GPU 全体で各レイヤーの重み行列をシャーディングすることにより、175B パラメーターのモデルをトレーニングします。

tensor_Parallel_size=4 を使用して vLLM で 70B パラメーターのチャット モデルを提供するため、重みは 4 つの GPU に適合し、リアルタイムで応答します。

トランスフォーマーの注意を分割すると GPU 全体に向かうため、各デバイスはサブセットを計算し、次のレイヤーの出力を連結します。

ノード内のテンソル並列処理とノード間のパイプライン並列処理を組み合わせて、大規模な GPU クラスターで兆パラメータのモデルをトレーニングします。

リスクとガードレール

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

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

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

実装ロードマップ

1

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

2

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

3

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

4

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

探検を続けましょう

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 Tensor Parallelism for Large Models 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

次のガイド

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

よくある質問

What is Tensor Parallelism for Large Models?

単一のニューラル ネットワーク レイヤー内の計算を複数の GPU に分割して、1 つのデバイスには大きすぎるモデルを実行できるようにする方法。フロンティア モデルには、単一の GPU だけでは保持したり、十分な速度で計算したりできない数千億のパラメーターがあるため、これが重要です。

テンソル並列処理は GPU 間で何を分割しますか?

テンソル (レイヤー内) 並列処理はレイヤー内の重み行列を分割するため、レイヤー全体を異なる GPU に配置するパイプライン並列処理とは異なり、すべての GPU が同じレイヤーの一部を計算します。

Megatron スタイルの MLP 分割では、通信を最小限に抑えるために 2 つの重み行列はどのように分割されますか?

最初の行列を列ごとに分割すると、各 GPU が非線形性をローカルに適用できるようになります。 2 番目を行ごとに分割すると、単一の all-reduce で部分出力が合計され、同期が最小限に抑えられます。

テンソル並列処理が通常単一ノード内に保持されるのはなぜですか?

各レイヤーは集合通信 (all-reduce) をトリガーするため、レイテンシーに敏感な大量のトラフィックには、低速のノード間ネットワークではなく、NVLink などの高速なノード内リンクが必要です。

アテンションのメカニズムは通常、テンソル並列処理の下でどのように並列化されるのでしょうか?

アテンション ヘッドは独立しているため、GPU 全体に分散されます。各デバイスがいくつかのヘッドを計算し、出力が結合されます。

テンソル並列処理で部分的な結果を組み合わせる集合的な操作は何ですか?

All-reduce は、各 GPU で計算された部分出力を合計して、レイヤーの結果と一致するようにします。これは、前方パスと後方パスでレイヤーごとに複数回発生します。