2、分布式训练基础:数据并行、模型并行、流水线并行、混合并行的概念与对比

当模型参数量从百万级增长到千亿级,单张 GPU 的显存和算力都无法独立承载一次完整的训练迭代。分布式训练的本质,就是把「模型计算」「梯度同步」「参数更新」这三件事拆分到多张卡、多台机器上协同完成。理解数据并行、模型并行、流水线并行与混合并行这四种基本范式,是后续掌握 DeepSpeed ZeRO、Offload、通信优化等能力的前提。

一、核心原理:四种并行范式在切什么

四种并行方式的根本区别,在于「切分维度」不同:数据并行切分的是样本批次,模型并行切分的是单层内的张量,流水线并行切分的是层与层之间的阶段,混合并行则是把上述多种切分方式组合使用。

  • 数据并行(DP):每张卡持有完整模型副本,各自吃不同的 mini-batch 数据,反向传播后通过 AllReduce 同步梯度,保证各副本参数一致。优点是实现简单、扩展性好;缺点是每张卡都要存一份完整模型、优化器状态和梯度,显存冗余极高。
  • 模型并行(TP/MP):把单个算子(如矩阵乘、注意力头)按维度切开,分布到多张卡上,前向和反向都需要卡间通信拼接结果。适合单层就大到放不下的超大模型,但通信频繁,对带宽要求极高。
  • 流水线并行(PP):按层把模型切成若干 stage,每个 stage 放在不同卡上,数据以 micro-batch 形式在 stage 间流动,形成「流水线」。它降低了单卡显存压力,但会引入流水线气泡(bubble),需要靠 micro-batch 数量来摊薄。
  • 混合并行:在超大模型训练中,通常同时使用 TP + PP + DP,例如「节点内 TP、节点间 PP、跨节点 DP」,兼顾显存、通信与扩展效率。
四种并行范式的切分维度对比 数据并行 DP 完整模型副本 × N 不同 mini-batch 数据 AllReduce 同步梯度 切分维度:样本 模型并行 TP/MP 单层张量按维度切分 卡间 AllGather / Reduce 通信频繁、带宽敏感 切分维度:张量 流水线并行 PP 按层切成多个 stage micro-batch 依次流动 存在流水线气泡 bubble 切分维度:层 混合并行 节点内 TP 节点间 PP 跨节点 DP 切分维度:组合 显存压力 · 通信开销 · 扩展性 对比 显存压力 DP 高(全量副本) TP 低 PP 低 通信开销 DP 中(梯度同步) TP 高(每层通信) PP 低(仅边界)

二、方法流程:一次迭代中四种并行如何协作

以典型的「TP + PP + DP」混合并行为例,一次训练迭代的流程可以拆成如下步骤:

  1. 数据加载器把全局 batch 切分给各个 DP 组,每个 DP 组拿到不同的数据分片。
  2. 在每个 DP 组内部,micro-batch 依次进入流水线的第一个 stage。
  3. 每个 stage 内部,层计算通过 TP 切分到多张卡上,前向时用 AllGather 拼接激活,反向时用 ReduceScatter 汇总梯度。
  4. stage 之间通过点对点通信传递激活值和梯度,形成流水线推进。
  5. 所有 micro-batch 完成后,各 DP 组之间执行 AllReduce,同步全局梯度。
  6. 优化器更新参数,进入下一轮迭代。
关键点:TP 的通信发生在层内,频率最高;PP 的通信发生在stage 边界,频率最低;DP 的通信发生在迭代末尾,频率中等。三者叠加时,通信模式会互相干扰,因此需要合理规划拓扑。

三、案例场景:不同规模模型该选哪种并行

假设我们有三类典型场景,选择策略差异明显:

场景 模型规模 推荐并行策略 原因
中小模型微调 1B 以下 纯 DP(或 DP + ZeRO) 单卡可放下,DP 实现简单、扩展线性度好
单层超大模型 10B~100B TP + DP 单层参数过大,必须切张量;层数不多,PP 收益有限
超深超大模型 100B 以上 TP + PP + DP 层数和单层宽度都大,必须组合切分才能放下

例如训练一个 175B 参数的模型,常见配置是:节点内 8 卡做 TP,跨节点做 PP,剩余维度做 DP。这样既利用了节点内 NVLink 的高带宽,又通过 PP 降低了跨节点通信量。

四、误区与复盘:并行策略选择的常见坑

误区一:并行度越高越好。 实际上 TP 超过 8 卡后,通信开销会迅速吃掉算力收益;PP 的 stage 数过多会导致气泡占比升高,micro-batch 数量不足时 GPU 利用率可能低于 50%。
误区二:忽略拓扑感知。 把 TP 放在跨节点链路上,会让每层通信都走慢速网络,训练速度可能下降数倍。正确做法是 TP 尽量限制在 NVLink 域内,PP 和 DP 再跨节点。
复盘建议: 选择并行策略时,先问三个问题——单卡能否放下完整模型?单层能否放下?层数是否过多?根据答案依次决定是否需要 DP、TP、PP,最后再用混合并行做组合优化。

理解这四种范式的切分逻辑与通信特征,是后续学习 DeepSpeed ZeRO 分片、Offload 卸载、通信压缩等高级特性的基础。只有先看清「切什么、怎么切、切完怎么通信」,才能在真实训练任务中做出合理的并行配置决策。