大模型训练把参数量、梯度、激活、序列切到多卡上的四种并行维度。①
DP 数据并行: 每卡一份完整模型, 只切数据; 每步迭代结束做一次全量梯度 AllReduce, 环形实现下每卡通信量
2NN−1S≈2S(
S = 单卡梯度总大小, 随参数量线性增长——70B 每卡梯度 ≈ 140GB, 因此大模型 DP 同步很贵); 通信只发生在 step 之间, 可被 bucket 异步重叠隐藏。②
TP 张量并行: 层内矩阵按列/行切分(详见 megatron-3d-bubble), 每个 transformer 层 2 次 AllReduce, 每次消息量仅 ~
b×s×h 的激活(与参数量无关, 但发生频率高、延迟敏感)——必须用节点内 NVLink(900GB/s+)才能承受。③
PP 流水线并行: 层按 stage 切分, 每 stage 持有若干层; 通信只在相邻 stage 边界, 每个 microbatch 传一次激活与一次梯度(~
b×s×h), 量大频率低、延迟线性叠加——适合跨节点 IB 链路; 代价是气泡(bubble, 气泡率
m+p−1p−1, 见 megatron-3d-bubble)。④
SP 序列并行: 把序列维度切成 N 段分到 N 卡, 解决长序列下 KV/激活显存随 seq 线性膨胀; 两种实现: Megatron-SP(与 TP 结合, 把 LayerNorm/Dropout 的激活也切分, 削减 TP 的激活通信)与 Ring-Attention(ring 传递 KV, 每卡显存 O(1))。
3D 并行组合 DP × TP × PP: 以 GPT-3 175B 为例, 1024 张 A100 = DP 64 × TP 8 × PP 2; 分配原则: TP 先切满节点内(吃 NVLink 带宽)、PP 跨节点(通信最少)、DP 最外层做梯度同步——通信代价自内向外递减, 可扩展性自内向外递增。