概念定义
流水线并行是一种模型并行技术,将深度学习模型的不同层分配到不同的计算设备上,形成计算流水线,通过微批次(micro-batch)机制实现并行处理。详细解释
流水线并行的核心思想是将模型垂直切分成多个阶段(stage),每个阶段包含若干连续的层,分配到不同的GPU上。训练时,将一个批次数据进一步切分成多个微批次,这些微批次像流水线一样依次通过各个阶段进行处理。 与张量并行需要频繁通信不同,流水线并行只在阶段边界传递激活值,通信开销相对较小。但流水线并行面临的主要挑战是”气泡”(bubble)问题——当某些设备在等待前置阶段的输出时会处于空闲状态。2025年的技术发展通过优化调度策略大幅降低了气泡开销。工作原理
基本流水线模型
主要调度策略
1. GPipe调度
2. 1F1B调度(PipeDream)
3. 交错调度(Interleaved 1F1B)
2025年最新进展
DualPipe(双向流水线)
HelixPipe(螺旋流水线)
实际应用
PyTorch原生实现
Megatron-LM虚拟流水线
气泡率计算
内存优化技术
- 激活重计算:选择性重算部分激活值
- 激活卸载:将暂时不用的激活值移到CPU
- 混合精度:使用FP16/BF16减少内存占用
- 分块MLP:将大型MLP层分块处理