DualPipe: 双向流水线并行
DeepSeek 如何通过在双向流水线中重叠计算与通信,实现近零通信开销。DualPipe 是使 DeepSeek-V3 的 671B 参数训练在经济上可行的基础设施支柱。
4 组件块分解
DualPipe 的核心洞察:MoE 模型中的每个 Transformer 层可以拆分为 4 个组件,将计算密集型和通信密集型操作分离,使 DualPipe 能够完美地实现重叠。
Attention
计算密集型。在每个节点上本地处理 Q/K/V 投影和注意力分数。
计算All-to-All Dispatch
通信密集型。将 Token 路由到跨节点的指定专家。
通信Expert MLP
计算密集型。每个专家独立处理分配给它的 Token。
计算All-to-All Combine
通信密集型。将专家输出收集回原始节点。
通信Attention
→All-to-All Dispatch
→Expert MLP
→All-to-All Combine
Micro-batch 1
Attn
Dispatch
MLP
Combine
Micro-batch 2
Waiting...
Attn
Dispatch...
没有重叠时,通信阻塞计算。GPU 空闲等待数据传输。
双向流水线调度
DualPipe 从流水线两端同时送入微批次。在 DualPipe 的调度中,前向传递从左到右流动,反向传递从右到左流动,填补原本浪费 GPU 时间的流水线气泡。
时间步 →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
阶段 1
F1
F1'
F+B
F+B
F+B
F+B
F+B
F+B
F+B
B1
B1'
F+B
F+B
阶段 2
F2
F2'
F+B
F+B
F+B
F+B
F+B
B2
B2'
F+B
F+B
阶段 3
F3
F3'
F+B
F+B
F+B
B3
B3'
F+B
F+B
阶段 4
F4
F4'
F+B
B4
B4'
F+B
F+B
阶段 5
F5
F+B
B5'
F+B
F+B
F+B
阶段 6
B6
F+B
F6'
F+B
F+B
F+B
F+B
阶段 7
B7
B7'
F+B
F7
F7'
F+B
F+B
F+B
F+B
阶段 8
B8
B8'
F+B
F+B
F+B
F8
F8'
F+B
F+B
F+B
F+B
前向
反向
前向+反向
气泡
与只从一个方向发送微批次的 1F1B 不同,DualPipe 同时使用双端。这意味着 DualPipe 中每个方向的'预热'和'冷却'气泡互相填补,实现了接近零的 GPU 空闲时间。
气泡比率对比
流水线气泡代表处理器空闲等待时浪费的 GPU 时间。DualPipe 相比 1F1B 和 Zero Bubble 等现有方法大幅减少了这些气泡。
气泡比率(8 阶段)
气泡公式
1F1B100%
(PP−1)(F+B)
参数内存: 1×(基准)
ZB-1P(零气泡)~70%
(PP−1)(F+B−2W)
参数内存: 1×(基准)
DualPipe~26%
(PP/2−1)(F&B+B−3W)
参数内存: 2× 参数
PP = 流水线阶段数。F = 前向时间,B = 反向时间,W = 权重更新时间。DualPipe 用 2× 参数内存换取约 50% 的气泡减少,在训练 DeepSeek-V3 这种规模的模型时,这是非常值得的权衡。
性能结果
DualPipe 在 DeepSeek-V3 训练中带来了显著的实际吞吐量提升。
约 1.8× 吞吐量
~1.8×与基准流水线并行相比,DualPipe 实现了约 1.8 倍的训练吞吐量提升。
近零通信开销
≈ 0%跨节点专家并行的 All-to-All 通信几乎完全隐藏在计算之后。
线性可扩展性
671B性能在数百个节点间高效扩展,支持 671B 参数模型的训练。
内存权衡
2×需要 2× 参数内存(存储前向和反向模型副本),激活内存略有增加。
常见问题 (FAQ)
因为它同时从流水线两端处理微批次,每个阶段需要两份模型参数副本——一份用于正向微批次,一份用于反向微批次。这是一个有意的权衡:用内存换吞吐量。
ZB-1P 通过在单一流水线方向内重新排序操作来减少气泡。DualPipe 更进一步,使用双向调度——从两端送入微批次。此外,DualPipe 专门针对 MoE 模型中的 All-to-All 通信重叠,这是 ZB-1P 没有解决的问题。
DualPipe 的双向调度概念适用于任何流水线并行模型。但 4 组件分解(Attention/Dispatch/MLP/Combine)是专门为跨节点专家并行的 MoE 架构设计的。对于稠密模型,DualPipe 的通信重叠收益会较小。
DualPipe 被设计为与其他并行策略互补。在 DeepSeek-V3 的训练配置中,DualPipe 负责流水线并行,而张量并行和专家并行在每个流水线阶段内运行。DualPipe 的 4 组件分解专门针对专家并行带来的 All-to-All 通信,使这些策略协同工作而非相互冲突。
知识小测验
看看你掌握了多少核心知识点?
QUESTION 1 / 3Score: 0
