【AI大模型】DeepSpeed ZeRO 三个阶段:Stage 0, 1, 2, 3 怎么选?
写在前面:省显存不是越多越好,要“按需选档”
上一课我们提到 DeepSpeed 的 ZeRO 分三阶段,本课把 Stage 0~3 彻底讲透,帮你回答“到底该用哪一档”。很多人一上来就选 Stage 3,结果显存没省多少、通信却慢到崩溃。选 ZeRO 阶段,本质上是在“省显存”和“通信开销”之间找平衡。
本文讲清 ZeRO 各阶段的取舍:每档分片了什么 → 省多少显存 → 花多少通信 → 怎么按模型和卡数选 → 配置代码。
一、ZeRO 在省什么
训练一个模型时,内存里主要占三块东西:模型参数、梯度、优化器状态。它们都很大。ZeRO 的思路就是把这些“重复存一份”的东西拆开、分片到各张卡上,从而降低单卡占用。
关键认知:ZeRO 分片的是“状态”,不是“数据”。数据(每条样本)仍按数据并行切分,各卡各自前向反向,只是状态不再每卡都存一份完整的。
二、Stage 0~3 到底差在哪
四个阶段,分片的内容逐步增加:
阶段 | 分片内容 | 省显存效果 |
|---|---|---|
Stage 0 |