序列填充为何拖慢训练系统:流水线并行是罪魁祸首
青稞AI · wechat · 2026-09-12
作者陈乐群从推理系统转向后训练系统开发后,系统复盘了训练框架为何“又慢又不优雅”,矛头指向流水线并行(PP)与序列填充的组合。
- 流水线并行的债务:从 GPipe、PipeDream、1F1B、Interleaved 1F1B、ZeroBubble 到 DualPipe,气泡消除算法层出不穷,但每个模型/硬件/数据都要重新调参,本身就成了 NP-hard 规划问题。
- 后训练让情况更糟:RL 后训练输入长度和数量动态变化,torchtitan 等框架的固定调度容易溢出,一个 microbatch 溢出就能带来极高气泡,催生了 RLHFuse、PipelineRL、StreamRL、RollPacker 等修补方案;on-policy 蒸馏、重要性采样等算法还引入仅前向传播的计算,气泡比例与 1F1B 相同。
- 序列填充的不必要性:除注意力外整个模型都直接作用于词元,FlashAttention varlen 本就支持不规则输入;Orca(2022)早已证明可以直接拼接序列,但填充成 [B,S] 仍是标配,Sequence Packing 反而成了“高级优化”。torchtune 的 PackedDataset 用 FlexAttention+torch.compile 补救,提速 1.4 倍,但复杂度仍可能从平方级劣化、增加显存与代码复杂度,作者认为这是“补丁上的补丁”。
- 易错性:填充导致各 microbatch 有效词元数不齐,Unsloth 曾发现 Transformers 梯度累积 loss 等权平均的错误,Megatron 也修过同类 bug,英伟达文章披露 Megatron-Core 曾因忽略 THD 布局系统性高估 FLOPs。若数据结构直接表达真实词元数,这类错误更难藏身。
「Infra」频道最新
- Qwen3.8-27B 登陆 Cerebras,以极速推理跑出旗舰级成绩 — Scobleizer · 2026-09-12
- Intel 光互连耦合器实测插损 1~1.5 dB,工艺良率瑕疵可见 — jwt0625 · 2026-09-12
- MSU 世界编码器大赛:淘天 S266 系列斩获 6 项世界冠军 — 机器之心 · 2026-09-12
- CPO 论文遭质疑:DLW 芯片与 PIC 耦合方式仅以「如 TCB 等」带过 — jwt0625 · 2026-09-12
- AWS 大故障中作者靠多区切换,企业服务总停机仅 22 分钟 — generativist · 2026-09-12
- 全球数据中心耗电分布:美国占 43%,中国仅占 13% — TMWNN · 2026-09-12