✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

ZeRO-1、ZeRO-2、ZeRO-3 到底省了什么显存?用直观的显存分片图,看懂 ZeRO-1 / ZeRO-2 / ZeRO-3 到底省了什么?

创建时间:2026-09-22 更新时间:2026-09-22 阅读次数:1016 次 分类:分布式训练与工程优化

1、一句话讲清

ZeRO-1 只切分优化器状态,ZeRO-2 再切分梯度,ZeRO-3 连模型参数也切分——每级依次多省一份显存。

2、背景:数据并行下的显存冗余

ZeRO(Zero Redundancy Optimizer)是微软 DeepSpeed 框架中的一项显存优化技术,核心思想是消除数据并行训练中的显存冗余。

在标准的数据并行(DP)中,每张 GPU 都保存了一份完整的模型副本,包括:

  • 模型参数(Parameters)
  • 梯度(Gradients)
  • 优化器状态(Optimizer States,如 Adam 的 momentum 和 variance)

这意味着 N 张 GPU 上存了 N 份完全相同的东西,浪费极大。而真正需要“复制”的其实只有计算过程,存储完全可以分摊。

3、核心思路:切分而非复制

ZeRO 把上述三部分显存分散到各张 GPU 上,每张卡只存一部分,需要时再通过通信临时聚合。这样就大幅降低了单卡显存占用,同时保持数据并行的计算逻辑。

4、三个级别

级别切分对象显存节省(相对)通信开销
ZeRO-1优化器状态约 4 倍
ZeRO-2+ 梯度约 8 倍
ZeRO-3+ 模型参数与 GPU 数量成正比

5、关键权衡

  • 省显存:级别越高,单卡显存占用越低,能训的模型越大。
  • 增通信:切分越细,训练时需要的 all-gather / reduce-scatter 通信越多,速度可能下降。
  • 实践选择:通常优先用 ZeRO-2(性价比高);模型大到单卡放不下参数时,才上 ZeRO-3。

一句话总结:ZeRO 用通信换显存,让数据并行也能训超大模型。

6、可视化:ZeRO 显存优化对比

用直观的显存分片图,看懂 ZeRO-1 / ZeRO-2 / ZeRO-3 到底省了什么


📌 面试天下网:一款服务于上班族的口袋书,让大家在地铁里/公交上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录
📌 网站公告:【大模型/Agent面试陪练1V1指导】正式启动......

评论专区

评论加载中...