流水线并行
流水线并行(PP)把模型按层切成几段,每张卡(或每组卡)负责一段,数据像流水线一样流过。它通信量最小(只在段边界传激活)、对跨机最友好,但引入一个固有问题:气泡——流水线没填满时,一部分卡在空等。本章讲清楚切分方式、气泡的量化、以及一阶/交错调度怎么填气泡。
两种切分:顺序切与嵌套切
Section titled “两种切分:顺序切与嵌套切”顺序切分(naive/sequential):24 层模型、PP=4,每卡 6 层,串行排:
GPU0: 层1-6 ══════╗GPU1: ╠══ 层7-12 ══════╗GPU2: ╠══ 层13-18 ══════╗GPU3: ╠══ 层19-24嵌套切分(interleaved):每卡拿不连续的层块(如 GPU0 拿层 1-3 和层 13-15),让数据多次经过每张卡,为交错调度做准备。
顺序切分简单但气泡大;嵌套切分气泡小但通信次数多。这是 PP 最核心的设计权衡。
气泡:PP 的固有税
Section titled “气泡:PP 的固有税”先算理想的流水线。设微批(microbatch)数为 ,流水线深度为 ,一次前向+反向的时间为 :
一阶流水线(1F1B)的气泡时间:
气泡占比 = 。这个公式决定一切:
| 配置 | 气泡占比 | 说明 |
|---|---|---|
| , | ~9% | 可接受 |
| , | ~22% | 明显 |
| , | ~5.5% | 靠微批数压气泡 |
| , | ~47% | 近半算力在空转 |
两条结论:
一、微批数要远大于流水线深度( 起步)。微批数受全局 batch 约束:微批太多 → 全局 batch 太大 → 训练不稳定。这就是 PP 度不能随便加的原因。
二、PP 度是"最后才加"的并行:通信最便宜但气泡最贵。典型用法是"DP 和 TP 填不下了才上 PP"。
交错调度:用通信换气泡
Section titled “交错调度:用通信换气泡”交错 1F1B(Megatron interleaved schedule)利用嵌套切分:每个微批在流水线里走 个"虚拟阶段",各卡的空闲窗口被其他微批的计算填上:
| 调度 | 气泡占比 | 通信次数 | 说明 |
|---|---|---|---|
| 一阶 1F1B | 每微批 2 次 | 标准方案 | |
| 交错 1F1B( 段) | × | 气泡除以 ,通信乘 | |
| ZeroBubble / 双流 | 接近 0 | 更复杂 | 研究前沿,工程成熟度参差 |
交错的本质:把气泡时间卖给通信次数。 节点间带宽便宜(PP 通信量本来就小)时非常划算;带宽紧张时要小心——通信次数 × 也可能成为新瓶颈。
通信:PP 为什么跨机友好
Section titled “通信:PP 为什么跨机友好”PP 每步只传两次激活(前向一次、反向一次),量 = batch × seqlen × hidden:
7B 模型、batch 8、seqlen 4096:~500 MB 每 step 只传几次——对比 TP 的每层 4 次,PP 的通信量小两个数量级。这就是 PP 可以跑在 400 Gbps IB 上甚至更低带宽的原因,也是它"跨机撑开"的资本。
PP-DP 的经典组合:PP 占满跨机的垂直空间,DP 沿水平扩展,两者正交。
与 DP 的等价性:内存视角
Section titled “与 DP 的等价性:内存视角”PP 与 DP 在显存上是等价的(每卡都存 的层),但计算-通信特性完全不同:
| PP | DP/ZeRO-3 | |
|---|---|---|
| 通信量 | 小(边界激活) | 大(参数 all-gather) |
| 气泡 | 有, | 无气泡(有重叠损耗) |
| batch 约束 | 要求多微批 | 无 |
| 收敛 | 与单卡等价(微批累积梯度) | 等价 |
选 PP 的理由:跨机带宽紧张 + 全局 batch 允许拆微批。选 ZeRO-3 的理由:带宽充足、不想管气泡。两者都是"把模型切小"的手段,选型看集群的带宽与 batch 约束。
- PP 度怎么定:先用 TP+DP 填满节点内,装不下再按"装不下的倍数"上 PP;PP 度尽量小(2、4、8),因为气泡随 p 线性增长
- 微批数: 起步,同时全局 batch 落在训练稳定区间(大模型典型 4M–64M token)
- 嵌套切分的层选择:不连续块要避开 embedding/输出头(它们不分段),且块间的通信要落在网络代价可接受的位置(见拓扑映射)
- 调试:PP 的死锁与挂起最常见的原因是微批数或 shape 不一致;先打印每个 stage 的输入 shape 对表
- PP 按层切段,通信量最小(每步只传边界激活),可跨机、甚至跨行。
- 气泡占比 = :微批数必须远大于流水线深度(),否则算力过半在空等。
- 交错调度用通信次数换气泡(除以 ),带宽便宜时划算。
- PP 与 ZeRO-3 显存等价:带宽紧张选 PP(管气泡),带宽充足选 ZeRO-3(免管气泡)。
- PP 度最后才加、能小则小;先 TP+DP 填节点内。
- 张量并行 — 上一章:层内的切分
- 序列与上下文并行 — 下一章
- 混合并行与配置方法论 — PP 嵌入整体配置的方法
- 拓扑:胖树、轨道优化与并行映射 — PP 段怎么放到网络上