LLM分散学習(エルエルエムブンサンガクシュウ)
大規模言語モデル(LLM)の学習を複数のGPU・ノードに分散して並列実行する技術群の総称。データ並列・テンソル並列・パイプライン並列・3D並列などの手法を組み合わせ、数百〜数千GPU規模の学習を効率的に行う。
LLM分散学習とは
LLM分散学習とは、大規模言語モデル(LLM)の学習処理を複数のGPU・複数のノードに分散して並列実行する技術の総称である。GPT-4やClaude、Llama 3.1 405Bなど数千億パラメータ規模のモデルは、単一GPUのメモリ(NVIDIA H100で80GB HBM3)では到底収まらず、数百〜数千台のGPUを協調動作させる分散学習が必須となる。
分散学習が必要な理由
現代のLLMは学習に膨大な計算資源を必要とする。以下に代表的なモデルの学習規模を示す。
| モデル | パラメータ数 | 学習GPU | 学習期間 | 推定コスト |
|---|---|---|---|---|
| GPT-4 | 推定1.8T(MoE) | 約25,000× A100 80GB | 約90日 | 約$100M |
| Llama 3.1 405B | 405B | 16,384× H100 80GB | 約54日 | 約$30M |
| Claude 3.5 Sonnet | 非公開 | 非公開 | 非公開 | 非公開 |
| Gemini Ultra | 推定1.6T | TPU v5p数千基 | 非公開 | 非公開 |
| DeepSeek-V3 | 671B(MoE) | 2,048× H800 | 約60日 | 約$5.6M |
単一のNVIDIA H100(80GB HBM3、約989 TFLOPS FP16)では405Bパラメータモデルのパラメータすら格納できない。FP16で約810GBのメモリが必要であり、最低でも11台のH100が必要となる。オプティマイザ状態(Adam: パラメータの3倍)を含めると、さらに多くのGPUが求められる。
分散学習の主要手法
分散学習には大きく分けて以下の手法がある。
- データ並列(Data Parallelism): モデル全体を各GPUに複製し、学習データを分割して並列処理する。各GPUで計算した勾配をAllReduceで集約・同期する
- テンソル並列(Tensor Parallelism): 単一の行列演算(Attention層やFFN層)を複数GPUに分割する。ノード内の高速NVLink接続(900GB/s)を活用する
- パイプライン並列(Pipeline Parallelism): モデルのレイヤーを複数GPUにステージ分割し、マイクロバッチをパイプライン的に流す。GPipe・PipeDreamが代表的
- 3D並列(3D Parallelism): データ並列×テンソル並列×パイプライン並列を組み合わせた最も汎用的な手法。Megatron-LM、DeepSpeed ZeROが採用
- Expert並列(Expert Parallelism): MoEモデル特有の手法で、各Expert(専門家ネットワーク)を異なるGPUに配置する。DeepSeek-V3が代表例
- シーケンス並列(Sequence Parallelism): 長いシーケンスを複数GPUに分割して処理する。Ring Attentionが代表的手法
主要フレームワーク比較
| フレームワーク | 開発元 | 対応並列手法 | 特徴 | ライセンス |
|---|---|---|---|---|
| Megatron-LM | NVIDIA | TP/PP/DP/SP/EP | 最高性能、NVIDIAハードウェア最適化 | BSD-3 |
| DeepSpeed | Microsoft | ZeRO-1/2/3、PP、TP | ZeROオプティマイザ、メモリ効率 | Apache-2.0 |
| FSDP (PyTorch) | Meta | データ並列+シャーディング | PyTorch統合、標準的 | BSD-3 |
| Colossal-AI | HPC-AI Tech | TP/PP/DP/シーケンス | 使いやすいAPI、自動並列化 | Apache-2.0 |
| vLLM(学習非対応) | UCバークレー | - | 推論特化、参考比較用 | Apache-2.0 |
通信バックエンドとネットワーク
分散学習ではGPU間の通信がボトルネックとなる。
- NCCL(NVIDIA Collective Communications Library): NVIDIA GPU間の集合通信ライブラリ。AllReduce・AllGather・ReduceScatterなどの集合演算を最適化
- NVLink: ノード内GPU間接続で最大900GB/s(H100 NVSwitch)。テンソル並列はNVLink速度に依存する
- InfiniBand NDR: ノード間接続で400Gbps(50GB/s)。データ並列の勾配同期に使用
- RoCE v2(RDMA over Converged Ethernet): InfiniBandの代替としてイーサネット上でRDMAを実現。DeepSeek-V3は24,576ポートのRoCEファブリックを使用
- GPUDirect RDMA: GPU↔NIC間でCPUバイパスの直接データ転送を実現
学習効率の指標
分散学習の効率は以下の指標で評価される。
- MFU(Model FLOPs Utilization): 理論ピーク性能に対する実効性能の割合。Llama 3.1は約38-43%のMFUを達成
- 通信オーバーヘッド: AllReduceなどの集合通信にかかる時間。計算と通信のオーバーラップで隠蔽する
- バブル率: パイプライン並列でGPUがアイドルになる「バブル」の割合。1F1Bスケジュールで最小化
- スケーリング効率: GPU数増加に対する性能向上の線形性。理想は1.0(線形スケール)
- メモリ効率: 各GPUのメモリ使用量。アクティベーション再計算やオフローディングで削減
2025-2026年の最新動向
- NVIDIA GB200 NVL72: 72基のBlackwell GPUをNVLink 5(1.8TB/s)で接続した単一ラック。従来の8GPU DGXノードから大幅にスケールアップ
- FP8学習の普及: H100以降のFP8(8ビット浮動小数点)学習が標準化。DeepSeek-V3はFP8学習で学習コストを大幅削減
- 非同期分散学習: DiLoCo(Distributed Low-Communication LLM Training)などの非同期手法が研究段階から実用段階へ
- 光インターコネクト: GPU間の通信帯域ボトルネックを解消するため、光接続技術(シリコンフォトニクス)が次世代データセンターに導入予定
よくある質問(FAQ)
Q1: 分散学習にはどのくらいのGPUが必要ですか? A: モデルサイズによる。7Bパラメータなら1-2台のH100で学習可能だが、70B以上は最低8台、405B以上は数千台が必要。FP16で1Bパラメータ≒2GBメモリが目安。
Q2: データ並列とモデル並列の違いは何ですか? A: データ並列はモデルを各GPUに複製してデータを分割する手法。モデル並列(テンソル並列・パイプライン並列)はモデル自体を分割して各GPUに配置する手法。大規模モデルでは両方を組み合わせる。
Q3: 自作PCで分散学習は可能ですか? A: 小規模なら可能。2-4台のRTX 4090(24GB VRAM)をNVLinkなしで接続し、DeepSpeed ZeRO-3で7-13Bモデルの学習ができる。ただしノード間帯域がボトルネックとなるため、1000万パラメータ以上の本格学習にはDGXクラスタが推奨。
Q4: 分散学習のフレームワーク選びのポイントは? A: 研究用途ならPyTorch FSDPが標準的で導入しやすい。最高性能を求めるならMegatron-LMだがカスタマイズが複雑。メモリ効率重視ならDeepSpeed ZeROが好適。
まとめ
- LLM分散学習は数百〜数千GPUを協調動作させる技術群
- データ並列・テンソル並列・パイプライン並列の組み合わせ(3D並列)が主流
- NCCL+NVLink+InfiniBandの通信スタックが性能の鍵
- MFU 40%前後が現実的な効率目標
- GB200 NVL72やFP8学習など、2025-2026年は大きな転換期