模型并行vs数据并行


一句话总结

数据并行将数据分片到多个设备上用相同模型处理,模型并行将模型本身拆分到多个设备上,两者解决不同的扩展瓶颈。

核心概念

数据并行(DP)每个设备持有完整模型副本,处理不同数据子集,梯度通过AllReduce同步。模型并行(MP)将模型参数分布到多个设备上,包括张量并行(层内拆分)和流水线并行(层间拆分)。ZeRO优化将优化器状态、梯度和参数分片存储,是DP和MP的混合方案。FSDP是PyTorch原生的ZeRO实现。

为什么重要

大模型单卡放不下需要模型并行,大数据集训练慢需要数据并行。理解两种并行的特点和限制是设计高效分布式训练和推理系统的基础。实际中往往需要混合使用多种并行策略。

实践要点

模型能放进单卡时优先使用数据并行。模型超过单卡显存时必须使用模型并行。大规模训练采用3D并行(DP+TP+PP)。推理场景主要使用张量并行。通信带宽是分布式系统的关键瓶颈,同机优先使用NVLink。

常见误区

误以为数据并行能线性加速,实际通信开销会降低效率。混淆模型并行的不同类型。忽视并行策略之间的通信模式差异。认为GPU越多越好,忽略通信瓶颈。