大语言模型分布式训练:从并行策略到万卡工程的系统梳理
摘要:训练一个 70B 参数的 LLM,FP16 精度下仅模型权重就需要 140 GB 显存,叠加优化器状态、梯度与激活值后总需求超过 300 GB——这远超单张 H100 80 GB 的物理极限。分布式训练不是"锦上添花",而是大模型时代的基础设施。本文以 2026 年工业界最新实践为锚点,系统梳理 LLM 分布式训练的完整技术栈:从底层并行策略的数学本质,到 ZeRO、3D/5D 并行的工程实现,再到通信优化、容错机制与框架选型,力求为读者建立一张可操作、可决策、可演进的技术全景图。
目录
- 为什么必须分布式:算一笔显存账
- 并行策略全景:五大维度的正交分解
- 数据并行与 ZeRO 系列
- 张量并行(Tensor Parallelism)
- 流水线并行(Pipeline Parallelism)
- 序列/上下文并行(Sequence / Context Parallelism)
- 专家并行(Expert Parallelism)与 MoE
- 多维并行的组合艺术:3D / 4D / 5D 并行
- 通信优化:被低估的性能杀手
- 主流框架深度对比
- 工程实践:容错、Checkpoint 与弹性伸缩
- 选型决策树与未来趋势
- 参考文献
1. 为什么必须分布式:算一笔显存账
在讨论任何并行策略之前,先用一个确定性公式锚定问题规模。
1.1 训练 FLOPs 估算
Training FLOPs ≈ 6 × N × D \text{Training FLOPs} \approx 6 \times N \times DTraining FLOPs≈6×N×D
其中N NN为参数量,D DD为训练 token 数。系数 6 的来源:前向传播约2 N D 2ND2NDFLOPs,反向传播约4 N D 4ND4NDFLOPs。以 Llama 3.1 405B 为例:
6 × 4.05 × 10 11 × 1.56 × 10 13 ≈ 3.8 × 10 25 FLOPs 6 \times 4.05 \times 10^{11} \times 1.56 \times 10^{13} \approx 3.8 \times 10^{25} \text{ FLOPs}6×4.05×1011×1.56×1013≈3.8×1025FLOPs
这与 Meta 官方技术报告披露的数字一致。
1.2 单卡显存的"不可能三角"
| 组件 | 70B 模型 (FP16) | 说明 |
|---|---|---|
| 模型参数 | 140 GB | 70 × 10 9 × 2 70 \times 10^9 \times 270×109×2bytes |
| 梯度 | 140 GB | 与参数同形状 |
| 优化器状态 (Adam) | 280 GB | 一阶矩 + 二阶矩,各占 FP32 |
| 激活值 (seq=4096) | 30–60 GB | 取决于 batch size 与重计算策略 |
| 合计 | ~590 GB | 远超单卡 80 GB |
结论:70B 模型的完整训练状态约为参数量的 8 倍字节数(FP16 参数 + FP32 优化器 + FP16 梯度)。这不是算法优化能绕过的物理约束,必须借助多卡/多机协同。
1.3 时间维度的不可接受性
即使假设存在"无限显存"的单卡,H100 的 FP16 峰值算力为 989 TFLOPS。训练 Llama 3.1 405B 需要:
3.8 × 10 25 989 × 10 12 ≈ 3.84 × 10 10 s ≈ 1218 年 \frac{3.8 \times 10^{25}}{989 \times 10^{12}} \approx 3.84 \times 10^{10} \text{ s} \approx 1218 \text{ 年}989×10123.8×1025≈3.84×1010s≈1218年
分布式训练是唯一出路。
2. 并行策略全景:五大维度的正交分解
LLM 分布式训练的核心思想是将"大"问题沿不同维度切分。截至 2026 年,业界形成了五大正交并行维度:
LLM 并行策略 ├── 数据并行 (Data Parallelism, DP) │ ├── 经典 DP / DDP │ ├── ZeRO-1/2/3 (DeepSpeed) │ └── FSDP (PyTorch 原生) ├── 张量并行 (Tensor Parallelism, TP) │ └── 层内矩阵分片 (Megatron-style) ├── 流水线并行 (Pipeline Parallelism, PP) │ └── 层间分段 (GPipe / 1F1B / Interleaved) ├── 序列/上下文并行 (Sequence / Context Parallelism, SP/CP) │ └── Ring Attention / Ulysses / Megatron-CP └── 专家并行 (Expert Parallelism, EP) └── MoE 路由 + All-to-All 通信关键认知:这五个维度是正交的,可以自由组合。工业界训练万亿参数模型时,通常同时使用 4–5 个维度,即所谓的"5D 并行"。
3. 数据并行与 ZeRO 系列
3.1 经典数据并行(DDP)
核心思想:模型完整复制到每张卡,训练数据切分为不同 mini-batch。每张卡独立完成前向/反向传播,然后通过 AllReduce 同步梯度。
GPU 0: [Data Shard 0] → Forward → Backward → Grad ─┐ GPU 1: [Data Shard 1] → Forward → Backward → Grad ─┼─ AllReduce → Update GPU 2: [Data Shard 2] → Forward → Backward → Grad ─┤ GPU 3: [Data Shard 3] → Forward → Backward → Grad ─┘局限:每张卡必须持有完整的模型参数 + 优化器状态 + 梯度,显存利用率极低。
3.2 ZeRO:零冗余优化器
微软 DeepSpeed 团队提出的ZeRO (Zero Redundancy Optimizer)是数据并行的革命性改进。核心洞察:DDP 中每张卡都存储了冗余的优化器状态、梯度和参数——ZeRO 将它们分片(shard)到不同 GPU 上。
| 阶段 | 分片内容 | 显存节省 (相对 DDP) | 通信量变化 |
|---|---|---|---|
| ZeRO-1 | 优化器状态 | ~4× | 不变 |
| ZeRO-2 | 优化器状态 + 梯度 | ~8× | 不变 |
| ZeRO-3 | 优化器状态 + 梯度 + 参数 | ~N NN× (线性) | 增加 ~1.5× |
| ZeRO-4 / ZeRO++ | + 参数量化 + 分层分片 | 进一步压缩 | 通信压缩 |
2026 年进展:DeepSpeed ZeRO-4 引入了qAdamW(量化 Adam)、hierarchical partitioning(节点内 + 节点间两级分片)和通信压缩(fp8 梯度传输),在千卡集群上将显存效率再提升 30%–40%。
3.3 FSDP:PyTorch 原生的 ZeRO-3
PyTorch 2.x 的FullyShardedDataParallel(FSDP) 本质上是 ZeRO-3 的原生实现,支持:
- 混合分片策略(
ShardingStrategy.FULL_SHARD/SHARD_GRAD_OP/NO_SHARD) - 自动激活重计算(
activation_checkpointing) - 与
torch.compile深度集成,支持 CUDA Graph 捕获
FSDP 的优势在于零侵入性:无需修改模型定义代码,仅需 wrap 即可。对于 7B–70B 级别的微调任务,FSDP 是当前最"轻量"的选择。
4. 张量并行(Tensor Parallelism)
4.1 核心思想
张量并行由 Megatron-LM (NVIDIA, 2019) 系统化提出:将单个 Transformer 层内的矩阵运算沿行或列切分到多张 GPU 上并行计算。
以 MLP 层为例,权重矩阵W ∈ R d × 4 d W \in \mathbb{R}^{d \times 4d}W∈Rd×4d沿列切分为[ W 1 , W 2 ] [W_1, W_2][W1,W2],分别放在 GPU 0 和 GPU 1 上:
Input x ──→ GPU 0: x · W₁ ──→ GeLU ──→ y₁ ─┐ ├─ AllReduce → Output Input x ──→ GPU 1: x · W₂ ──→ GeLU ──→ y₂ ─┘4.2 通信模式
- 前向传播:每层需要 2 次 AllReduce(MLP 一次 + Attention 一次)
- 反向传播:对称地需要 2 次 AllReduce
- 通信量:O ( batch_size × seq_len × d ) O(\text{batch\_size} \times \text{seq\_len} \times d)O(batch_size×seq_len×d)每层每步
4.3 关键约束
张量并行几乎只在 NVLink/NVSwitch 互联的节点内使用。原因:每层都需要 AllReduce,通信频率极高(每个 micro-batch、每层、前向+反向共 4 次)。跨机 InfiniBand 的延迟(~1–5 μs)相比 NVLink(~0.1 μs)高出一个数量级,会严重拖慢计算。
典型配置:TP = 4 或 8(对应一台 DGX 节点的 4/8 张 GPU)。
5. 流水线并行(Pipeline Parallelism)
5.1 核心思想
将模型按层切分为P PP个 stage,每个 stage 放在不同 GPU(组)上。数据以 micro-batch 的形式像流水线一样依次通过各 stage。
5.2 调度策略演进
| 调度方式 | 气泡率 | 核心思想 | 代表 |
|---|---|---|---|
| GPipe | ( P − 1 ) / M (P-1)/M(P−1)/M | 先全部前向,再全部反向 | Google, 2019 |
| 1F1B | ( P − 1 ) / M (P-1)/M(P−1)/M | 交替执行前向/反向,减少峰值激活 | PipeDream |
| Interleaved 1F1B | ( P − 1 ) / ( v M ) (P-1)/(vM)(P−1)/(vM) | 每卡持有多个非连续层,v vv为交错因子 | Megatron-LM |
| Zero Bubble PP | → 0 | 将反向拆为 B(算输入梯度)和 W(算权重梯度),灵活调度 | 2024, PKU |
其中M MM为 micro-batch 数量,P PP为 stage 数。气泡率(bubble ratio)是流水线并行的核心性能指标——气泡时间内 GPU 完全空闲。
5.3 实践要点
- PP 适合跨机:stage 间只需传递激活值(P2P 通信),通信量远小于 TP 的 AllReduce。
- 负载均衡:各 stage 的计算量需尽量均等,否则最慢的 stage 成为瓶颈。
- 与 TP 的组合:通常 TP 在节点内,PP 跨节点,形成"TP×PP"的 2D 网格。
6. 序列/上下文并行(Sequence / Context Parallelism)
6.1 为什么需要
当上下文长度从 4K 扩展到 128K、1M 甚至 10M token 时,Attention 的激活值显存占用以O ( s 2 ) O(s^2)O(s2)(或 Flash Attention 下的O ( s ) O(s)O(s))增长,单卡无法容纳。
6.2 主流方案
| 方案 | 切分维度 | 通信模式 | 代表工作 |
|---|---|---|---|
| Megatron Sequence Parallelism | LayerNorm / Dropout 沿 seq 维度切分 | AllGather + ReduceScatter | NVIDIA, 2022 |
| Ring Attention | KV 沿 seq 维度切分,环形传递 | P2P Ring | UC Berkeley, 2023 |
| DeepSpeed Ulysses | 多头 Attention 按 head 维度切分 | All-to-All | Microsoft, 2023 |
| Context Parallelism (CP) | 与 TP/PP 正交组合 | 混合 | Megatron-Core, 2024+ |
6.3 2026 年趋势
随着百万级上下文成为标配(如 Gemini 2.0 支持 2M token),Context Parallelism 已从"可选优化"升级为必选维度。NVIDIA Megatron-Core 在 2025 年后将 CP 作为一等公民,支持 CP × TP × PP × DP 的 4D 并行。
7. 专家并行(Expert Parallelism)与 MoE
7.1 MoE 架构回顾
Mixture-of-Experts (MoE) 模型(如 Mixtral、DeepSeek-V3、Switch Transformer)将 FFN 层替换为E EE个"专家",每个 token 仅路由到 Top-k kk个专家(通常k = 2 k=2k=2)。
- 总参数量大(如 DeepSeek-V3 有 671B 总参数),但每 token 激活参数少(37B)。
- 这带来了独特的分布式挑战:专家分布在不同 GPU 上,需要All-to-All 通信将 token 路由到对应专家。
7.2 专家并行的核心问题
- 负载不均衡:热门专家过载,冷门专家空闲 → 需要Auxiliary Loss或Expert Capacity约束。
- 通信瓶颈:All-to-All 是全局通信操作,跨机时延迟显著。
- 显存分配:所有专家参数都需要存储,但每次只激活一部分。
7.3 2025–2026 年进展
- DeepSeek-V3采用细粒度专家 + 共享专家 + 无辅助损失负载均衡,在 2048 卡上完成 671B MoE 训练。
- Expert Parallelism + Data Parallelism 混合:同一节点内做 EP(利用 NVLink),跨节点做 DP。
- MoEShard(EuroMLSys 2025):通过专家矩阵的 token-wise 分解,减少不均衡导致的空闲时间。
8. 多维并行的组合艺术:3D / 4D / 5D 并行
8.1 组合原则
工业界的核心经验法则:
TP 在节点内,PP 跨节点,DP 在最外层,EP/CP 按需嵌入。
原因:
- TP 通信最频繁(每层多次 AllReduce)→ 必须用最高带宽互联(NVLink, 900 GB/s)
- PP 通信量小但延迟敏感 → 适合跨机(InfiniBand, 400 Gbps)
- DP 的梯度同步可以异步/压缩 → 容忍更高延迟
8.2 典型配置示例
以训练 70B Dense 模型,集群 64 节点 × 8 卡 H100(共 512 GPU)为例:
总 GPU 数 = TP × PP × DP 512 = 8 × 8 × 8- TP = 8:节点内 8 卡做张量并行
- PP = 8:8 个 stage 跨 8 个节点
- DP = 8:8 路数据并行,每路 64 GPU
对于DeepSeek-V3 (671B MoE),其训练配置为:
TP = 8, PP = 1, EP = 128, DP = 2 总计: 8 × 1 × 128 × 2 = 2048 GPU8.3 并行度搜索
最优并行配置不是拍脑袋决定的。需要考虑:
- 模型层数能否被 PP 整除
- Attention head 数能否被 TP 整除
- 专家数能否被 EP 整除
- 全局 batch size = micro_batch × gradient_accumulation × DP
NVIDIA 的Megatron-Core Auto-Parallelism和微软的Alpa/Unity项目都在探索自动化并行策略搜索。
9. 通信优化:被低估的性能杀手
9.1 通信 vs 计算的重叠
分布式训练的终极目标是让通信完全隐藏在计算背后。关键技术包括:
- 计算-通信 Overlap:在反向传播计算第l ll层梯度时,异步 AllReduce 第l + 1 l+1l+1层的梯度。
- Bucket Fusion:将多个小 tensor 的通信合并为一个大 bucket,减少 kernel launch 开销(PyTorch DDP 默认 25 MB bucket)。
- Pipeline 通信隐藏:1F1B 调度中,stage 间 P2P 传输与计算重叠。
9.2 梯度压缩与低精度通信
| 技术 | 压缩比 | 精度影响 | 适用场景 |
|---|---|---|---|
| FP16 梯度通信 | 2× | 几乎无损 | 默认选择 |
| FP8 梯度通信 | 4× | 轻微 | ZeRO-4, 2025+ |
| Top-K Sparsification | 100×+ | 需 error feedback | 带宽受限 |
| PowerSGD | 10×–50× | 低秩近似 | 大 batch |
9.3 硬件互联拓扑
| 互联技术 | 带宽 | 延迟 | 典型用途 |
|---|---|---|---|
| NVLink 4.0 (H100) | 900 GB/s (双向) | ~0.1 μs | 节点内 TP |
| NVSwitch | 全互联 900 GB/s | ~0.2 μs | DGX 8-GPU |
| InfiniBand NDR | 400 Gbps (50 GB/s) | ~1–2 μs | 跨机 PP/DP |
| RoCE v2 | 200–400 Gbps | ~2–5 μs | 成本敏感集群 |
| NVLink 5.0 (B200, 2025) | 1.8 TB/s | <0.1 μs | 下一代节点内 |
2026 年观察:NVIDIA GB200 NVL72 将 72 张 GPU 通过 NVLink 全互联,形成"超级节点"。这意味着 TP 可以扩展到 72 路而无需跨机通信,从根本上改变了并行策略的设计空间。
10. 主流框架深度对比
10.1 一览表
| 维度 | Megatron-LM / Megatron-Core | DeepSpeed | PyTorch FSDP | Colossal-AI |
|---|---|---|---|---|
| 开发方 | NVIDIA | Microsoft | Meta (PyTorch) | HPC-AI Tech |
| 核心优势 | 极致性能,原生 5D 并行 | ZeRO 系列,易用性 | 原生集成,零侵入 | 自动并行搜索 |
| TP 支持 | ✅ 原生 | ⚠️ 需配合 Megatron | ❌ | ✅ |
| PP 支持 | ✅ 原生 (Interleaved) | ✅ | ❌ | ✅ |
| ZeRO/FSDP | ❌ | ✅ ZeRO-1/2/3/4 | ✅ FSDP | ✅ |
| CP/SP 支持 | ✅ 原生 | ✅ Ulysses | ⚠️ 有限 | ✅ |
| MoE/EP | ✅ | ✅ | ⚠️ | ✅ |
| 学习曲线 | 陡峭 | 中等 | 平缓 | 中等 |
| 适用规模 | 100B+ | 7B–1T+ | 7B–70B | 7B–100B |
| 2026 活跃度 | 🔥🔥🔥 | 🔥🔥🔥 | 🔥🔥 | 🔥 |
10.2 Megatron-DeepSpeed:工业界的"事实标准"
对于100B+ 参数的预训练任务,业界最成熟的方案是Megatron-DeepSpeed 混合框架:
- Megatron负责 TP + PP + SP(模型并行的"硬核"部分)
- DeepSpeed负责 ZeRO 优化器分片 + 混合精度 + 梯度累积
LLaMA、Qwen、GLM、DeepSeek 等主流开源模型的训练均基于此框架或其变体。
10.3 选型建议
模型规模 ≤ 7B,微调任务 → FSDP / DDP + LoRA 模型规模 7B–70B,全量训练 → DeepSpeed ZeRO-3 或 FSDP 模型规模 70B–200B → Megatron-DeepSpeed (TP=8, PP=4~8) 模型规模 200B+ / MoE → Megatron-Core 5D 并行 超长上下文 (>128K) → 必须加入 Context Parallelism11. 工程实践:容错、Checkpoint 与弹性伸缩
11.1 万卡训练的"家常便饭":故障
在 10,000+ GPU 的集群上,每小时至少有一次硬件故障(GPU ECC 错误、NVLink 降级、网卡丢包、节点宕机)是统计常态。Meta 在 Llama 3 技术报告中披露:54 天训练期间经历了466 次任务中断,其中 419 次是非预期故障。
11.2 Checkpoint 策略
| 策略 | 写入时间 | 存储开销 | 适用场景 |
|---|---|---|---|
| 同步全量 Checkpoint | 数分钟 | 高 | 传统方案 |
| 异步分布式 Checkpoint | 秒级 | 中 | PyTorch DCP, Megatron |
| 增量 Checkpoint | 秒级 | 低 | 仅保存变化参数 |
| 内存级 Checkpoint (NVIDIA) | <1s | 需冗余节点 | GB200 NVL72 |
2026 年的最佳实践:每 500–1000 步做一次异步 Checkpoint,写入并行文件系统(如 Lustre / GPFS / 3FS),同时保留最近 3 个 Checkpoint 用于回滚。
11.3 弹性训练(Elastic Training)
- TorchElastic / DeepSpeed Elastic:支持 worker 动态加入/退出,无需重启任务。
- 自动故障检测:NCCL watchdog + 心跳机制,30 秒内定位故障节点。
- 热替换:在 Kubernetes 调度下,自动拉起备用 Pod 替换故障节点,从最近 Checkpoint 恢复。
11.4 训练稳定性
- Loss Spike 处理:自动检测 loss 突增 → 回滚到上一个健康 Checkpoint → 跳过问题数据 → 恢复训练。
- 梯度裁剪(gradient clipping):
max_norm=1.0是 LLM 训练的标配。 - 学习率 Warmup:前 2000 步线性 warmup,避免初始阶段数值不稳定。
12. 选型决策树与未来趋势
12.1 决策树
你的任务是什么? │ ├── 微调 (SFT / RLHF / LoRA) │ ├── 模型 ≤ 13B → 单节点 FSDP / DDP + LoRA │ └── 模型 > 13B → DeepSpeed ZeRO-3 + LoRA/QLoRA │ ├── 全量预训练 / 继续预训练 │ ├── 模型 ≤ 70B → DeepSpeed ZeRO-3 或 FSDP │ ├── 70B < 模型 ≤ 200B → Megatron-DeepSpeed 3D 并行 │ ├── 模型 > 200B 或 MoE → Megatron-Core 5D 并行 │ └── 超长上下文 (>128K) → 加入 Context Parallelism │ └── 强化学习 (RLHF / GRPO) ├── Actor 模型 → 与预训练相同的并行策略 └── Reward Model → 通常更小,DP 即可12.2 2026–2027 年趋势判断
硬件拓扑重塑并行策略:NVIDIA GB200 NVL72 / NVL576 将 TP 域扩展到 72–576 GPU,减少跨机通信需求。TP=72 + PP=1 可能取代 TP=8 × PP=8 的传统配置。
通信压缩成为标配:FP8 梯度通信、量化 AllReduce 将从"实验特性"变为"默认开启"。
自动并行走向成熟:基于 cost model 的自动并行策略搜索(如 Megatron-Core Auto-Config、Alpa)将降低 5D 并行的调参门槛。
Disaggregated Training:计算与存储分离,Checkpoint 写入对象存储(S3/OSS),训练节点无状态化,提升弹性。
异构训练:GPU + CPU + 专用加速器(如 Cerebras WSE、Groq LPU)的混合训练框架开始出现,但短期内 NVIDIA GPU 仍是绝对主力。
训练-推理一体化:RLHF/GRPO 等 RL 训练流程中,Actor 推理(rollout)与训练交替进行,框架需同时优化两种模式(如 OpenRLHF、veRL)。
13. 参考文献
- Shoeybi, M., et al. “Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism.”arXiv:1909.08053, 2019.
- Rajbhandari, S., et al. “ZeRO: Memory Optimizations Toward Training Trillion Parameter Models.”SC’20, 2020.
- Narayanan, D., et al. “Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM.”SC’21, 2021.
- Li, S., et al. “DeepSpeed ZeRO++: Extremely Efficient Collective Communication for Giant Model Training.”arXiv:2306.10209, 2023.
- Liu, H., et al. “Ring Attention with Blockwise Transformers for Near-Infinite Context.”ICLR 2024.
- Meta AI. “The Llama 3 Herd of Models.”arXiv:2407.21783, 2024.
- DeepSeek-AI. “DeepSeek-V3 Technical Report.”arXiv:2412.19437, 2024.
- NVIDIA. “Megatron-Core Documentation.” 2025–2026. https://github.com/NVIDIA/Megatron-LM
- PyTorch Team. “Fully Sharded Data Parallel (FSDP).” PyTorch 2.x Documentation, 2024–2026.
- Qi, P., et al. “Zero Bubble Pipeline Parallelism.”ICLR 2024.
写在最后:分布式训练不是一个"配个参数就能跑"的事情,而是一个计算、通信、存储三者博弈的系统工程。理解每种并行策略的数学本质和通信特征,才能在做技术选型时不盲从、不踩坑。希望这篇文章能成为你案头常翻的参考——当你面对"这个模型到底该怎么切、切几份、用什么框架"的问题时,回来翻一翻,答案大概率就在某张表格里。
本文最后更新于 2026 年 8 月。技术演进迅速,建议结合各框架官方文档获取最新 API 与最佳实践。