LLM分散学習インフラストラクチャ(エルエルエムブンサンガクシュウインフラストラクチャ)
大規模言語モデルの学習を複数GPU・複数ノードで効率的に実行するための分散計算基盤。データ並列・モデル並列・パイプライン並列などの並列化戦略と、通信最適化・メモリ管理を統合的に提供するフレームワーク群を指す。
LLM分散学習インフラストラクチャとは
大規模言語モデル(LLM)の学習には数百〜数千基のGPUを協調動作させる分散計算基盤が不可欠である。GPT-4クラスのモデルでは1兆パラメータを超え、単一GPUのメモリ(80GB〜192GB)では到底収まらない。分散学習インフラストラクチャは、モデルパラメータ・勾配・オプティマイザ状態を複数デバイスに分割・複製し、通信オーバーヘッドを最小化しながら学習スループットを最大化する技術体系である。
2024年以降、DeepSpeed・PyTorch FSDP・Megatron-LMの三大フレームワークが事実上の標準となり、これらを組み合わせた「3D並列」(データ並列×テンソル並列×パイプライン並列)が主流のアプローチとなっている。
並列化戦略の分類と比較
分散学習の並列化戦略は大きく3つに分類される。それぞれの特性を理解することが、効率的な学習インフラ設計の第一歩となる。
| 並列化戦略 | 分割対象 | メモリ削減 | 通信量 | スケーラビリティ | 代表実装 |
|---|---|---|---|---|---|
| データ並列(DP) | ミニバッチ | 低(複製) | AllReduce勾配 | 高(数百GPU) | PyTorch DDP |
| テンソル並列(TP) | レイヤー内の重み行列 | 高 | AllReduce活性値 | 中(ノード内8GPU) | Megatron-LM |
| パイプライン並列(PP) | レイヤー群 | 高 | Point-to-Point活性値 | 中(数十ステージ) | GPipe/PipeDream |
| ZeRO(Sharded DP) | パラメータ/勾配/状態 | 非常に高 | AllGatherパラメータ | 高(数千GPU) | DeepSpeed ZeRO |
| シーケンス並列(SP) | シーケンス長方向 | 中 | AllGather/ReduceScatter | 中 | Megatron-LM SP |
| エキスパート並列(EP) | MoEエキスパート | 高 | All-to-Allトークン | 中(エキスパート数依存) | DeepSpeed-MoE |
データ並列は最も単純で、各GPUにモデル全体を複製してミニバッチを分割する。PyTorch DDPが代表的で、AllReduce通信で勾配を同期する。モデルサイズがGPUメモリに収まる限り、最もスケーラビリティが高い。
テンソル並列はTransformerの注意機構やFFN層の重み行列を列方向・行方向に分割する。ノード内の高速NVLink(900GB/s)を活用するため、通常はノード内8GPUに限定される。
パイプライン並列はモデルのレイヤー群を複数ステージに分割し、マイクロバッチをパイプライン的に流す。ステージ間の通信は隣接GPU間のPoint-to-Pointのみで済むが、「バブル」(GPUアイドル時間)が発生する課題がある。
3D並列と現代の学習構成
現代のLLM学習では、上記の並列化戦略を組み合わせた「3D並列」が標準となっている。
3D並列の典型構成(1024 GPU例):
- テンソル並列(TP): ノード内 8 GPU
- パイプライン並列(PP): 4 ステージ(4ノード)
- データ並列(DP): 32 レプリカ(32グループ)
- 合計: 8 × 4 × 32 = 1,024 GPU
この構成では、TPはNVLink帯域を最大活用し、PPはノード間のInfiniBand通信を最小化し、DPで学習スループットをスケールさせる。Llama 3(405B)の学習では16,384基のH100 GPUを使用し、TP=8・PP=16・DP=128の3D並列構成で約54日間の学習を完了している。
通信バックエンドとネットワーク設計
分散学習の性能は通信基盤に大きく依存する。主要な通信技術を以下に示す。
| 通信技術 | 帯域幅 | レイテンシ | 用途 |
|---|---|---|---|
| NVLink 4.0 | 900 GB/s(双方向) | ~1μs | ノード内GPU間 |
| NVSwitch | 全対全 900 GB/s | ~1μs | DGX H100内8GPU |
| InfiniBand NDR | 400 Gbps | ~1μs | ノード間 |
| RoCE v2 | 400 Gbps | ~2-5μs | Ethernet系ノード間 |
| AWS EFA | 3,200 Gbps(p5.48xlarge) | ~5μs | クラウドノード間 |
NVIDIA NCCLライブラリが事実上の標準通信ライブラリであり、AllReduce・AllGather・ReduceScatter等の集団通信をGPUトポロジに最適化して実行する。Ring-AllReduceやTree-AllReduceなどのアルゴリズムを自動選択し、NVLink/InfiniBandの帯域を最大限活用する。
大規模クラスタでは「Fat-Tree」トポロジのInfiniBandネットワークが一般的で、ノード間の全二重帯域を保証する。Meta社のLlama 3学習クラスタでは、16,384基のH100を3層Fat-Treeで接続し、各ノードに400Gbps×8ポートのInfiniBand接続を提供している。
障害耐性とチェックポイント
数千GPUを数週間〜数ヶ月稼働させる大規模学習では、ハードウェア障害が不可避である。Meta社の報告によると、Llama 3の54日間の学習中に419回の障害が発生した(1日あたり約7.8回)。
主要な障害対策技術:
- 定期チェックポイント: 10〜30分間隔でモデル状態を保存。分散ファイルシステム(Lustre/GPFS)またはオブジェクトストレージ(S3)に非同期書き込み
- 弾力的学習(Elastic Training): GPU障害時に自動的にワーカー数を縮小し、学習を継続。torch.distributed.elasticが提供
- 冗長計算: 重要なレイヤーの計算を複数GPUで冗長実行し、障害検出時に即座に切り替え
- 勾配累積: 障害による一時的なGPU減少時に、バッチサイズを維持するため勾配累積ステップ数を自動調整
クラウド vs オンプレミスの選択
| 比較項目 | クラウド(AWS/GCP/Azure) | オンプレミス | コロケーション |
|---|---|---|---|
| 初期コスト | 低(従量課金) | 非常に高($100M+) | 高($50M+) |
| GPU単価/時 | $2-4/GPU/時(H100) | $0.5-1/GPU/時(償却3年) | $0.8-1.5/GPU/時 |
| スケーラビリティ | 高(オンデマンド) | 低(物理制約) | 中 |
| ネットワーク制御 | 限定的 | 完全制御 | 完全制御 |
| 障害対応 | プロバイダ依存 | 自社運用 | 自社運用 |
| 適用規模 | 〜2,000 GPU | 2,000+ GPU | 1,000+ GPU |
スタートアップや研究機関はクラウドの柔軟性を活用し、Meta・Google・OpenAIなどの大規模事業者はオンプレミスでTCO(総保有コスト)を最適化する傾向がある。
よくある質問(FAQ)
Q1: LLMの学習に最低何基のGPUが必要ですか?
7Bパラメータモデルの場合、FSDP/ZeROを使えば4基のA100 80GBで学習可能である。70Bモデルでは最低16〜32基、400B以上では数百基以上が現実的な最小構成となる。QLoRAなどのパラメータ効率的手法を使えば、7Bモデルを単一GPU(24GB VRAM)でファインチューニングすることも可能である。
Q2: データ並列とZeROの違いは何ですか?
従来のデータ並列(DDP)は各GPUにモデル全体を複製するため、モデルサイズがGPUメモリに収まる必要がある。ZeROはパラメータ・勾配・オプティマイザ状態をGPU間で分割(シャード)し、必要なときだけAllGatherで収集する。これにより、単一GPUメモリを超えるモデルもデータ並列的にスケールできる。通信量はDDPと同等以下に抑えられる。
Q3: テンソル並列をノード間で使わない理由は?
テンソル並列はレイヤー内で頻繁にAllReduce通信が発生する。NVLink(900GB/s)ならオーバーヘッドは小さいが、InfiniBand(400Gbps ≈ 50GB/s)では18倍遅くなり、計算効率が大幅に低下する。そのため、TPはNVLinkで接続されたノード内GPU(通常8基)に限定し、ノード間にはPPやDPを適用するのが定石である。