预训练工程模块四 · 并行训练概念约 12 分钟
数据并行与 ZeRO
多卡怎么分工:先说最基础的一种
学完这节你能:
- 理解数据并行的做法
- 看出数据并行的显存冗余
- 理解 ZeRO 如何消除冗余
最直接的多卡方式是数据并行:每张卡放一份完整模型,各喂不同数据,算完梯度再 All-Reduce 汇总同步。简单,但每张卡都存了完整的参数+梯度+优化器态,冗余巨大。
- 数据并行(DP):模型复制到每张卡,数据切分;梯度用 All-Reduce 平均后各自更新。
- 问题:N 张卡就有 N 份完整的优化器态/梯度/参数——显存严重浪费。
- ZeRO:把优化器态、梯度、参数分片到不同卡上,各卡只存自己那一份,需要时再通信取用,显存随卡数近线性下降。
🔑 ZeRO 分三级:Stage1 切优化器态、Stage2 再切梯度、Stage3 连参数也切。级别越高越省显存、通信越多。FSDP 是同一思想的主流实现。
自测ZeRO 相比朴素数据并行,主要优势是:
// 带走一句话
数据并行=每卡整份模型+切数据+All-Reduce 梯度,但显存冗余大;ZeRO 分片优化器态/梯度/参数消冗余。
独立练习
做到这些,才算完成本节
- 合上正文,用自己的话解释核心概念。
- 写出一个相似概念,并说明两者最关键的区别。
学习记录
记录本节阅读进度
建议先独立回答自测。读完记录不等于已经掌握。