← 课程库
预训练工程模块四 · 优化器代码12 分钟

优化器:SGD、Adam、AdamW

谁来决定参数往哪挪、挪多少

学完这节你能:
  • 理解动量的作用
  • 区分 Adam 与 AdamW
  • 知道权重衰减是什么

  • SGD:最朴素,按梯度直接更新;加动量后能冲过小坑、加速收敛。
  • Adam:给每个参数自适应学习率(用一阶动量 m、二阶动量 v),收敛快、超参好调,是大模型默认。
  • AdamW:把「权重衰减」从梯度里解耦出来单独做,正则更正确,是当前大模型标配。

🔑 权重衰减(weight decay):每步让参数稍微缩小一点,抑制参数过大、防过拟合。AdamW 的 W 就是「解耦的 weight decay」,比在 Adam 里混进 L2 更规范。

💡 记住 Adam 每个参数要存两份动量(m、v)——这正是下一节显存计算里「优化器态吃显存」的原因。

自测AdamW 相比 Adam 的主要改进是:
// 带走一句话

SGD(可加动量)→Adam(自适应学习率,存 m/v 双动量)→AdamW(解耦权重衰减,大模型标配)。

独立练习

做到这些,才算完成本节

  1. 在本地运行代码,打印每个关键张量的 shape。
  2. 关闭示例后从空文件重写核心部分,并补一个异常或边界测试。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
学习率:预热、衰减、Cosine
下一课 →
稳定优化:梯度裁剪、训练恢复、损失尖峰

学完不要急着赶进度:去练习自测,或完成对应的阶段实验