3D並列(データ・テンソル・パイプライン並列)(スリーディー ヘイレツ データ テンソル パイプライン ヘイレツ)
LLM大規模訓練の3つの並列化戦略の組み合わせ。データ並列(DP)・テンソル並列(TP)・パイプライン並列(PP)を同時に適用し、数千GPUでの効率的な訓練を実現する。Megatron-LMとDeepSpeedで実装されGPT-3規模以上のモデル訓練の標準手法。
3D並列(データ・テンソル・パイプライン並列)完全ガイド
概要
3D並列(3D Parallelism)は、大規模LLM訓練に必要な3つの異なる並列化次元を同時に適用する訓練インフラ手法。2021年にNVIDIAとMicrosoftの共同論文「Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM」で体系化された。GPT-3(175B)以上のモデルサイズを現実的な時間とコストで訓練するための標準アーキテクチャ。
3つの並列化次元
1. データ並列(Data Parallelism, DP) 同じモデルの複数コピーを異なるGPUに配置し、それぞれ異なるミニバッチを処理。勾配をAll-Reduceで同期。ZeROでシャーディング可能。
2. テンソル並列(Tensor Parallelism, TP) 各Transformerレイヤーの重み行列を行・列方向に分割し複数GPUで並列計算。1レイヤーを2〜8GPU(NVLink接続が必須)。レイヤーごとにAll-Gather/Reduce-Scatter通信。
3. パイプライン並列(Pipeline Parallelism, PP) Transformerレイヤーを複数GPUグループに分割しマイクロバッチをパイプライン処理。パイプラインバブル(アイドル時間)が課題→1F1Bスケジューリングで軽減。
3D並列の組み合わせ方
GPU総数 = DP × TP × PP
例: 1024 GPU
TP=8 (NVLink 8-GPU node内)
PP=16 (node間パイプライン)
DP=8 (残りのデータ並列)
→ 8×8×16 = 1024 GPU
規模別の典型的な3D並列設定
| モデルサイズ | TP | PP | DP | GPU数 |
|---|---|---|---|---|
| 7B | 2 | 1 | 64 | 128 |
| 30B | 4 | 4 | 16 | 256 |
| 70B | 8 | 4 | 32 | 1024 |
| 175B | 8 | 16 | 64 | 8192 |
| 405B | 8 | 32 | 64 | 16384 |
パイプラインバブルと1F1Bスケジューリング
Naiveなパイプライン並列では「バブル」(アイドルGPU時間)が発生しスループットが低下する。Megatron-LMの1F1B(One Forward One Backward)スケジューリングでバブル率を(PP-1)/M×100%まで削減できる(M=マイクロバッチ数)。
2025年のトレンド:4D/5D並列
長文脈モデルの普及に伴い従来の3D(DP+TP+PP)に以下を追加した「4D/5D並列」が登場:
- Context Parallelism(CP): Ring AttentionやUlyssesによるシーケンス並列
- Expert Parallelism(EP): MoEモデルのエキスパート分散
LLaMA 3 405B(Meta)やGemini Ultra(Google)の訓練では5D並列が採用されている。
関連用語
- Ring Attention: 長文脈向けシーケンス並列(4D目)
- DeepSpeed Ulysses: 別方式のシーケンス並列化
- ZeRO Optimizer: DPにおけるモデル状態のシャーディング
- Compute-Optimal Scaling: 訓練FLOPsとモデルサイズの最適比率