单张GPU显存和算力往往无法满足大模型需求。并行方案的核心是把”计算任务”或”模型/数据”拆分到多个设备,突破硬件瓶颈。

纯数据并行(DP)

核心定义

所有设备保存完整模型参数、梯度和优化器状态,每个设备处理不同数据分片;前向计算后汇总梯度,反向更新时保证参数同步。

技术原理

假设总批次,有个GPU,每个GPU数据量

  • 前向:第个GPU处理,计算损失
  • 梯度计算:
  • 梯度汇总:
  • 参数更新:

优缺点

  • 优点:实现简单、通用性强、通信开销小
  • 缺点:显存瓶颈——模型参数量超单卡显存时无法使用
  • 适用:中小模型(≤单卡显存)

完全分片数据并行(FSDP / ZeRO)

核心定义

将模型参数、梯度、优化器状态分片存储到不同GPU,每个GPU只存一部分;计算时按需聚合分片。

ZeRO分片粒度

  • ZeRO-1:仅分片优化器状态
  • ZeRO-2:分片优化器状态+梯度
  • ZeRO-3:分片优化器状态+梯度+模型参数

FSDP/ZeRO-3单步训练时间线

阶段个GPU行为所有GPU协同
前向聚合所有得到完整,计算同步发送各自参数分片
梯度计算计算完整梯度,拆分为,仅保留各GPU独立完成
梯度汇总交换,计算全局梯度分片全量交换梯度分片
参数更新仅用更新各GPU独立更新

优缺点

  • 优点:单卡显存仅为DP的,能训练超大模型
  • 缺点:通信开销略高
  • 适用:大模型(参数量超单卡显存)

张量并行(TP)

核心定义

按模型的”张量维度”拆分单个层的权重——把线性层、注意力层的权重张量拆分成子张量,不同GPU负责计算该层的一部分。

比喻:做一道菜,其中”炒肉丝”步骤需要切、炒、调味三个子步骤,3个厨师各负责一个子步骤,做完后拼接结果。

技术原理

线性层,将按输出维度拆分为个子矩阵:

  1. 个GPU持有,接收完整输入
  2. 计算局部输出:
  3. 通信拼接:

优缺点

  • 优点:解决单层层权重超单卡显存问题
  • 缺点:实现复杂、通信开销高
  • 适用:超大模型的核心层(如LLaMA-70B)

流水线并行(PP)

核心定义

按模型的”层维度”拆分——把连续层分配到不同GPU,数据按”流水线”方式依次经过各GPU。

比喻:工厂流水线,模型的每一层是一个工位,数据是产品;产品依次经过各工位处理。

技术原理

模型有层,拆分为个GPU,第个GPU负责层

  • 前向:数据从GPU 1流向GPU k
  • 反向:梯度从GPU k流回GPU 1

优缺点

  • 优点:拆分逻辑直观
  • 缺点:存在”流水线气泡”,部分GPU空闲等待
  • 适用:超深模型,常与TP/FSDP组合(3D并行)

总结

方案核心思想显存占用适用场景
DP数据分片,模型完整中小模型
FSDP/ZeRO模型状态分片低(大模型
TP张量维度拆分超大模型核心层
PP层维度拆分超深模型

TP和PP有什么具体不同