AI・機械学習
上級

テンソル並列(LLM学習)(テンソルヘイレツエルエルエムガクシュウ)

LLM分散学習でTransformerの行列演算(Linear層・Attention・FFN)を複数GPUに列/行分割して並列実行する手法。単一レイヤーを分割するためGPU間の高速通信(NVLink)が必須。Megatron-LMが先行研究を確立し、現在の大規模学習の標準技術となっている。

0 回閲覧
0 いいね
2026/6/6 更新
関連タグ
distributed-training
model-parallelism
nvlink
attention-parallelism
megatron

テンソル並列(LLM学習)

テンソル並列化は、Transformerモデルの個々のレイヤー内にある大規模な行列演算を複数GPUに分割して並列実行する技術。パイプライン並列が「層間」の分割であるのに対し、テンソル並列は「層内」の分割。単一のGPUで処理しきれない幅広(隠れ次元が大きい)モデルに対して特に有効だ。

Transformerにおける分割点

Self-Attentionの分割ではQKV投影行列を列方向に分割し、各GPUが一部のAttentionヘッドを担当。出力投影を行方向分割し、最後にAllReduceで集約する。通信はForwardに1回、Backwardに1回のAllReduceのみ。FFN(Feed-Forward Network)も2つのLinear層を組み合わせることでAllReduce通信を1回に削減できる。

NVLinkの重要性

テンソル並列のAllReduceはForward/Backward計算と重なるためレイテンシが重要。同一ノード内NVLink(H100では最大900GB/s双方向)でないと通信ボトルネックになりやすい。TP=8はA100/H100の8-way NVLink接続に最適化されており、TP=16はDGX H100の16-GPU NVLinkドメインで使用される。

Sequence Parallelismとの組み合わせ

Megatron-LMが2022年に提案したSequence Parallelism(シーケンス並列)はTPと直交する最適化。LayerNormとDropoutをシーケンス長方向に分散し、TP通信前後のAllReduceをAllGather/ReduceScatterに置き換えることで追加のアクティベーションメモリを節約する。

実際の並列度設定例

LLaMA-3 70Bを8×H100(80GB)ノード2台で学習する場合: TP=8(ノード内NVLink活用)、PP=2(ノード間分割)、DP=1(単純な場合)、マイクロバッチ数 m=16以上(パイプラインバブル最小化)。Llama-3 405Bの公式学習ではTP=8・PP=16・DP=1024の3D並列化が採用され、H100 16,384基が使用された。

2025年の拡張: Ring Attention(Context Parallelism)

Ring Attention(Context Parallelism)はシーケンス長方向の並列化。TP/PP/DPに加えた第4の並列軸として、非常に長いコンテキスト(128K〜1M tokens)学習に使用される。Megatron-CoreおよびFlashAttention-3のリング通信バリアントがこれを実装し、百万トークン規模の学習が実用化されつつある。

列並列と行並列の交互使用

テンソル並列の基本パターンは「列並列Linear→活性化関数→行並列Linear→AllReduce」の繰り返し。この設計により2つのLinear層につきAllReduce1回になりオーバーヘッドが最小化される。SwiGLUなどゲート付き活性化関数でも同様のパターンが適用可能で、現代LLMの主流FFN構造との相性が良い。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/6