分布式训练

别名:Distributed Training / Data Parallelism / Model Parallelism / Tensor Parallelism / Pipeline Parallelism / Sequence Parallelism / DP / TP / PP / SP

用多卡/多机训练大模型:数据并行切 batch,张量并行切权重,流水线并行切层,序列并行切序列。

更新于 2026/11/08
训练分布式并行

一句话定义

分布式训练是把计算、参数或数据切到多张 GPU/多台机器上:数据并行切 batch,张量并行切权重,流水线并行切层,序列并行切序列。

为什么需要它

大模型放不进单卡,或者单卡训练太慢。分布式训练把显存和算力扩展出去,但会引入通信、同步和调度成本;并行方式要和模型结构、互联带宽匹配。

常见并行

数据并行(DP)

每张卡复制一份完整模型,batch 切分到各卡;反向结束后 all-reduce 同步梯度。适合模型能放进单卡、想扩大吞吐的场景。

张量并行(TP)

把同一层的权重矩阵切到多卡,每卡算一部分矩阵乘,再 all-reduce 合并激活。通信频繁,适合 NVLink 等高速互联。

流水线并行(PP)

把不同层分到不同 GPU,micro-batch 依次流过各阶段;减少单卡层数,但会有流水空泡和调度开销。

序列并行(SP)

把序列维度切到多卡,常和 TP 组合,降低长序列激活显存。

模型并行(MP)

TP 和 PP 的统称;实际训练通常 DP + TP + PP 混合使用。

分布式训练:数据并行 / 张量并行 / 流水线并行

关键取舍

  • DP 简单,但模型必须放得进单卡;TP/PP 能放更大模型,但通信和实现更复杂。
  • TP 适合节点内高速互联,PP 适合跨节点;拓扑选错,扩展效率会很差。
  • 全局 batch、学习率和并行度要一起调。
  • 通信、同步、空泡和故障恢复都是实际成本。

常见误区

  • GPU 越多越快:通信和空泡可能让扩展效率很低。
  • DP 能解决所有显存问题:模型本身放不下时要用 TP/PP。
  • TP/PP 可以随便选:它们对互联带宽和模型结构要求不同。
  • 分布式训练没有单卡问题:数值、调度和故障恢复会更复杂。

用在哪里

  • 预训练、长上下文训练、超大模型微调。
  • 多机多卡集群;根据模型大小和互联选择 DP/TP/PP 组合。
  • 训练吞吐上不去时,先看通信、空泡和数据管线。

相关概念