知识中等
讲一下分布式训练的基本概念?常见的并行策略有哪些(数据并行、模型并行、流水并行等)?
数据并行复制模型只切 batch,张量并行切开单个算子,流水并行按层分段,ZeRO/FSDP 对参数、梯度、优化器状态分片。
标准答案
数据并行(DP/DDP):每个设备持完整模型,切分 batch 后 all-reduce 梯度,简单高效但每个设备要装下完整模型。张量并行(TP):把单个大矩阵乘切到多卡(Megatron 式按行列切分),通信频繁,通常限定在节点内。流水并行(PP):按层把模型分段,用 micro-batch 填充流水线减少 bubble,跨节点友好。ZeRO/FSDP 不算新的并行维度,而是把参数、梯度、优化器状态分片到各卡、用时再聚合,大幅降低显存冗余。大模型训练常组合成「三维并行 + 数据并行」。
深入理解
追问常落在:TP 为什么放节点内(all-reduce 带宽需求)、流水线 bubble 怎么算、ZeRO 1/2/3 分别分片什么、以及通信量与收敛的权衡(梯度累积、bf16 混合精度)。具身关联点:π0.7 级别的 VLA 预训练就是典型的大规模混合并行场景。