前言
大 Batch 放不进显存时,最常见的做法是拆成几个 micro-batch,分别 forward/backward,最后只执行一次 optimizer step。
听起来就是“多调几次 backward”,但如果 micro-batch 大小不同、每个样本有效 token 数不同,或者 loss 本身按 token 归一化,直接累加得到的梯度并不一定等于完整 Batch。
大 Batch 放不进显存时,最常见的做法是拆成几个 micro-batch,分别 forward/backward,最后只执行一次 optimizer step。
听起来就是“多调几次 backward”,但如果 micro-batch 大小不同、每个样本有效 token 数不同,或者 loss 本身按 token 归一化,直接累加得到的梯度并不一定等于完整 Batch。