テクニカルガイド

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

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

このガイドを聴くAIによるナレーション · ~2 min

このページでは2分の読書
  1. 概要
  2. ディープダイブ
  3. 現実世界の実装
  4. 大規模モデルにおける Tensor 並列処理の将来
  5. 実践する
  6. 探検を続けましょう
  7. よくある質問

概要

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

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

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

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

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

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

実践する

なぜそれが重要なのか

  • 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
  • より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
  • 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

気をつけてください

  • 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
  • インフラストラクチャとメンテナンスのコストは過小評価されがちです。
  • システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

次のステップ

  1. 実装前にレイテンシ、品質、コストの目標を定義します。
  2. 現実的な負荷とデータ条件でのベンチマーク。
  3. エラー、ドリフト、ユーザーへの影響を計測器で監視します。
  4. スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

無料ニュースレター

毎日のAIブリーフィングを受け取る

毎週平日の朝に英語で書かれた3つの検証済みAIストーリー。無料で永続的、広告なし。

毎週平日に1通のメール。ワンクリックで購読解除。住所を販売または共有しません。

自分自身をテストしてください

Take the Tensor Parallelism for Large Models quiz

すべての回答に即時フィードバック、合格後は検証可能なID付きの共有可能な証明書を取得。

クイズを開始する

無料AI教育をサポート。AI Understandingは501(c)(3)の非営利団体です — 広告なし、課金壁なし、常に。 寄付をする

よくある質問

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