⚙️ 分布式训练:DP / TP / PP / ZeRO 全图谱
⚙️ 分布式训练:DP / TP / PP / ZeRO 全图谱
一张 H100 显存 80GB。 训 Llama 70B 至少要 1.4 TB 显存。 怎么把一个模型”切”到 100 张、1000 张卡上? 答案是:4 种并行 + ZeRO 组合。
⚙️ AI 深度派专栏 · 第 S2-20 期 📅 2026年10月29日 ✍️ 小敏说 AI
💡 本文要点:本文系统讲解分布式训练四大并行(数据并行 DP / 张量并行 TP / 流水线并行 PP / 序列并行 SP)+ DeepSpeed ZeRO,画出”3D 并行”全图。
🎯 本文导读
- 🔹 为什么单卡训不动
- 🔹 DP:数据并行
- 🔹 TP:张量并行
- 🔹 PP:流水线并行
- 🔹 ZeRO:内存优化大杀器
- 🔹 3D 并行:把它们组合
一、❓ 单卡为什么不够
训练一个模型,显存里要装:
| 内容 | 大致 |
|---|---|
| 模型参数 | 70B × 2 byte (BF16) = 140 GB |
| 梯度 | × 1 = 140 GB |
| 优化器状态(Adam: m + v + FP32 副本) | × 6 = 420 GB |
| 激活值(前向缓存供反向用) | 几百 GB |
| 总计 | ~1.4 TB+ |
💬 关键观点:80GB 一张 H100 远远装不下 → 必须切。
二、🪄 DP:数据并行
最简单也最常用:
每张卡 → 完整模型
不同卡 → 不同数据 batch
反向时 → AllReduce 梯度同步
✅ 简单、通信少 ❌ 每张卡仍需装下整个模型——对大模型没用
典型用法:小模型 + 多卡加速。
三、✂️ TP:张量并行(Tensor Parallel)
把单层的权重矩阵切片到多卡:
W = [W1 | W2 | W3 | W4]
卡 0 算 W1,卡 1 算 W2,...
然后 AllReduce / AllGather 合并
代表:Megatron-LM
✅ 单层就能切,装下大模型 ❌ 通信非常重 → 需要高带宽互连(NVLink)
典型用法:MLP / Attention 切成 2、4、8 路。
四、🚂 PP:流水线并行(Pipeline Parallel)
把不同层放到不同卡:
卡 0:1-10 层
卡 1:11-20 层
卡 2:21-30 层
...
数据像火车一样依次通过
代表:GPipe / PipeDream / Megatron
✅ 通信少(只在层间) ❌ 有 “气泡“——前几个 step 卡空闲 ✅ 用 micro-batch 流水掩盖气泡
典型用法:跨节点扩展(PCIe / Ethernet 带宽足够)。
五、🧹 ZeRO:内存优化大杀器
DeepSpeed 的发明(Microsoft)。
把”重复的东西”在多卡间分片:
| 阶段 | 分片对象 |
|---|---|
| ZeRO-1 | 优化器状态 |
| ZeRO-2 | + 梯度 |
| ZeRO-3 | + 参数本身 |
| ZeRO-Offload | 部分放 CPU |
| ZeRO-Infinity | + 放 NVMe |
✅ 像 DP,但显存压力大幅下降 ✅ 用 ZeRO-3 + 8 张卡,相当于”虚拟”一张 8× 显存的卡
🎯 一句话总结:ZeRO = 在数据并行外衣下做模型分片。
六、📏 SP:序列并行(Sequence Parallel)
切序列长度维度——长上下文必备。
代表:
- Megatron SP
- Ring Attention:序列环形切分
✅ 让 1M 上下文训练成为可能 ❌ 实现复杂
七、🧊 3D 并行:组合拳
实际训练 GPT-5 级模型:
DP × TP × PP + ZeRO + SP
例:
2048 张 H100
= 16 (DP) × 8 (TP) × 16 (PP)
| 维度 | 谁负责 |
|---|---|
| 不同 batch | DP |
| 一层内切片 | TP |
| 不同层 | PP |
| 减重复 | ZeRO |
| 长序列 | SP |
八、🚀 主流框架
| 框架 | 主打 |
|---|---|
| DeepSpeed | ZeRO 系列 |
| Megatron-LM | TP + PP 鼻祖 |
| FSDP(PyTorch 原生) | ZeRO-3 风格 |
| Colossal-AI | 综合 |
| vLLM | 推理(不是训练) |
九、❌ 常见误区
| 误区 | 真相 |
|---|---|
| ❌ 多卡线性加速 | ✅ 总有通信开销 |
| ❌ ZeRO 万能 | ✅ 通信很重 |
| ❌ 国产卡都能跑 | ✅ 多卡通信效率才是真挑战 |
| ❌ 流水线一定要切层 | ✅ 也可以切其他维度 |
十、🎁 给非工程读者的”分布式心法”
🔑 训练大模型 = "切模型 + 切数据 + 通信"
🔑 4 种并行各有适用场景,最终都要组合
🔑 ZeRO 是过去 5 年最重要的工程突破之一
🔑 多卡通信带宽 = 训练效率天花板
📮 今日话题:训练 GPT-5 估计要多少张卡?下一篇我们专门算这道题。
🔮 下一篇预告:s2ep21《训练一个 GPT-5 要多少卡、多少电、多少钱》
⚙️ 本系列是「小敏说 AI · AI 深度派专栏」第 S2-20 期。 关注公众号 小敏说 AI,回复「深度派」领取第二季合集。