张芷铭的个人博客

张量并行(TP)和流水线并行(PP)是分布式训练中两种不同的并行策略:TP 在层内拆分权重,PP 在层间拆分层序列

核心本质区别

维度张量并行 (TP)流水线并行 (PP)
拆分对象单个层的权重张量模型的层序列
计算方式多 GPU 并行计算同一层多 GPU 串行计算不同层
解决问题单层权重超显存模型层数太多超显存

形象比喻

维度张量并行 (TP)流水线并行 (PP)
厨房类比多个厨师同时做同一个步骤的不同部分多个厨师按顺序做不同步骤
处理流程切肉丝的不同部分 → 拼接备菜 → 炒菜 → 装盘
核心目标解决"单个步骤太大"解决"流程太长"

技术细节

张量并行 (TP)

拆分粒度: 单个层的权重张量

例如线性层 $W \in \mathbb{R}^{D \times V}$,将 $V$ 维度拆分为 $k$ 份。

计算逻辑:

  1. 所有 GPU 同时接收同一批数据
  2. 并行计算该层的不同子输出
  3. 拼接得到完整层输出

示例: LLaMA-70B 单个注意力层权重 280GB(float32),8 卡 TP 拆分后每卡仅存 35GB。

流水线并行 (PP)

拆分粒度: 模型的层序列

例如 100 层 Transformer 拆成 10 段,每段 10 层。

计算逻辑:

  1. 数据先输入 GPU1,计算前 10 层
  2. 结果传给 GPU2,计算 11-20 层
  3. 依此类推直到 GPU10 输出结果

示例: 1000 层超深模型,10 卡 PP 拆分后每卡仅存 100 层。

总结

  1. 拆分粒度不同:TP 是层内拆权重,PP 是层间拆序列
  2. 计算模式不同:TP 是并行计算,PP 是串行流水线
  3. 优化目标不同:TP 解决"单层权重超显存",PP 解决"模型总层数超显存"

Comments