1F1B(One-Forward-One-Backward)

发布时间:2026/8/14 10:05:35
1F1B(One-Forward-One-Backward) 1F1BOne-Forward-One-Backward是流水线并行Pipeline Parallelism中最经典的微批次调度策略主要用于解决传统流水线训练中的显存占用过高与气泡率Bubble Ratio过大问题。核心痛点传统 GPipe 的缺陷在普通的流水线并行如 GPipe中系统会先一口气把所有微批次Micro-batch的前向传播Forward全部跑完再统一跑反向传播Backward。显存爆炸设备必须在显存中同时保存所有 Micro-batch 的激活值Activations直到反向传播时才能释放。气泡严重卡与卡之间存在大量的空闲等待时间。1F1B 的工作机制1F1B 的核心思想是让前向传播和反向传播在时间线上升高交叉每跑完一个 Micro-batch 的前向就紧接着跑一个最老 Micro-batch 的反向。整个调度过程分为三个阶段1. 预热阶段Warmup处于流水线前面的卡先连续跑若干个通常等于流水线深度p ppMicro-batch 的前向计算直到把流水线“填满”。2. 稳定阶段1F1B Steady State一前一后交替每执行完1 个 Micro-batch 的 Forward就立刻接1 个最老的 Micro-batch 的 Backward。显存及时释放由于 Backward 执行完毕后该 Micro-batch 的激活值就可以立即从显存中销毁因此显存占用被锁死在一个固定上限仅需保存约p pp个 Micro-batch 的激活值。3. 消退阶段Cooldown所有 Forward 跑完后把剩余 Micro-batch 的 Backward 执行完毕。1F1B vs GPipe 性能对比维度GPipe (Naive PP)1F1B Pipeline激活值显存峰值O ( m ) O(m)O(m)m mm为总 Micro-batch 数量O ( p ) O(p)O(p)p pp为流水线 Stage 数量/深度p ≪ m p \ll mp≪m气泡率Bubble Ratiop − 1 m \frac{p - 1}{m}mp−1​p − 1 m \frac{p - 1}{m}mp−1​与 GPipe 相当但显存大幅降低调度复杂度简单顺序执行中等需精细管理内部队列和通信进阶演进交错式 1F1BInterleaved 1F1BMegatron-LM 等框架在 1F1B 基础上提出了Interleaved 1F1B让每张物理 GPU 负责模型中多个非连续的物理层例如 16 层模型卡 0 负责第 1 层和第 9 层。通过在单卡内部交错调度不同 Virtual Stage 的前向和反向进一步把流水线气泡率降低到了原本的1 / v 1/v1/vv vv为每张卡上的虚拟 Stage 数量。