五厂面经真题集字节跳动面经高频字节真题分布式训练显存优化速答 · 约 5 分钟更新 2026-09-29

数据并行、张量并行、流水线并行分别解决什么?ZeRO 又是什么?

一句话结论

数据并行切分数据,张量并行切分层内权重,流水线并行按层切分模型。ZeRO 是数据并行的显存优化技术,通过分片优化器状态、梯度和参数来节省显存。

先这样答

数据并行切分训练数据。张量并行切分层内权重。流水线并行按层切分模型。ZeRO 是针对数据并行的显存优化技术。

数据并行让每张显卡保存完整的模型。它把训练数据切分给不同显卡。这种方式卡间通信量较小。它无法节省模型占用的显存。张量并行切分模型层内的权重矩阵。它把矩阵乘法分配到多张卡上共同计算。这种方式会产生大量的通信。它适合在具备高带宽的单机内部使用。流水线并行按网络层级切分模型。它把不同的层分配到不同的显卡上。这种方式会带来设备空转等待的气泡问题。

ZeRO 优化数据并行的显存占用。它完全不改变原有的计算语义。它通过分片训练状态来降低显存。ZeRO 包含三个阶段。Stage 1 切分优化器状态。Stage 2 在此基础上切分梯度。Stage 3 进一步切分模型参数。

面试官会怎么追问

  • 「你提到流水线并行有气泡问题,这个气泡具体指什么?」 气泡指显卡等待数据时的空转状态。流水线并行按层切分模型到不同显卡上。前置层传输结果前,后置层显卡只能闲置。

  • 「为什么张量并行适合在单机内部使用?」 张量并行切分层内权重矩阵。多张卡共同计算时产生大量的通信。单机内部的高带宽能支持这种通信需求。

  • 「ZeRO 切分了参数和状态,它会改变原本的计算逻辑吗?」 ZeRO 不改变原有的计算语义。它本质上是数据并行的显存优化方案。它仅通过分片优化器状态、梯度和参数来节省显存。

回答的坑

混淆张量并行和流水线并行的切分维度,前者切分层内权重矩阵,后者按模型层级切分。

误以为 ZeRO 改变了底层计算语义,它仅是对数据并行的显存优化。

—— 本题完 ——