#优化器专项强化题库(第九批:SGD、Momentum、AdamW 与大模型训练优化器)
前面的题库已经多次提到“优化器状态为什么吃显存”“ZeRO 为什么先切 optimizer state”,但还没有把“优化器本身怎么工作、为什么这么选、实现时容易错什么”系统展开。实际上这部分在算法岗、训练系统岗、基础模型岗里都很常见,尤其当面试官想判断你是否真的做过训练时,几乎一定会顺着学习率、batch size、梯度裁剪一路追到优化器。
#核心术语先对齐
SGD用当前 batch 的梯度直接更新参数,简单但容易震荡;Momentum累积历史方向,缓解局部噪声;Adam/AdamW引入一阶、二阶矩估计,并把权重衰减从梯度更新里解耦,更常见于大模型训练。
优化器状态指为了更新参数额外保存的动量、方差等张量。它的规模常常和参数量同阶甚至更大,所以在分布式训练中会直接影响显存预算、ZeRO/FSDP 分片策略和 checkpoint 成本。
#阅读顺序
- 先读第 69 章的高频问题速览,建立优化器题型地图。
- 再读第 70 章逐题详细解答,把公式、直觉、工程边界补齐。
- 最后读第 71 章深度解析,把设计动机、数学推导和训练系统显存联系起来。
#复习时要连接的工程问题
优化器题不能只背更新公式,还要连接训练现象:学习率过大导致 loss 爆炸,warmup 不足导致早期不稳定,weight decay 处理不当导致泛化下降,梯度裁剪影响极端 batch,bf16/fp32 状态选择影响数值稳定和显存。
平台岗还会继续追问优化器状态如何分片、checkpoint 如何保存、恢复训练时 scheduler 和 optimizer state 是否一致。算法岗则更常追问 AdamW 为什么要解耦权重衰减、Momentum 为什么能缓解震荡、二阶矩估计为什么有助于不同参数尺度的自适应更新。
高质量答案还要能把优化器和数据、batch、学习率策略连起来。优化器不是孤立模块,batch size 改变会影响梯度噪声,warmup 和 decay 会影响早期稳定和后期收敛,混合精度会影响状态保存精度。回答时主动说明这些耦合关系,能明显提高可信度。
复盘时建议把公式和现象配对:Momentum 对应减少震荡,Adam 的二阶矩对应自适应尺度,AdamW 对应权重衰减解耦,gradient clipping 对应限制异常梯度,warmup 对应早期稳定。只记公式不记现象,面试时很难解释为什么这么设计。
还要准备“为什么不用”的回答。SGD 简单但对学习率敏感,Adam 系列稳定但状态更大,二阶方法信息更丰富但成本高,过强的 weight decay 可能伤害拟合。能把不用的理由说清,说明你真的在做取舍,而不是背默认配置。
最终验收是能把一次训练不稳定拆成优化器、学习率、数据、精度和系统状态几个候选原因,并说明先查哪一个。