优化器(SGD、Adam、AdamW、Lion、Sophia)
要解决的问题
得到 loss 对参数的梯度 后,如何更新 以减小 loss?优化器定义 更新规则;LLM 预训练几乎 离不开 AdamW 及其变体,大模型前沿亦出现 Muon 等。
SGD 与带动量 SGD
动量累积历史梯度方向,加速收敛、抑制震荡。大批次 LLM 训练中纯 SGD 较少单独使用。
Adam / AdamW
Adam:为一阶、二阶矩估计自适应学习率:
AdamW:将 权重衰减 与梯度更新解耦(decoupled weight decay),成为 GPT、Llama 等默认选择。
| 优化器 | LLM 中的角色 |
|---|---|
| AdamW | 预训练、SFT、多数 RLHF 的主流 |
| Lion | 内存更省的二阶矩简化变体,部分实验场景 |
| Sophia | 曲率感知,研究向 |
| Muon | DeepSeek V4 等万亿级训练报道采用(含 QK-Clip 等稳定技巧) |
学习率调度
Warmup + Cosine / WSD 等与优化器正交,见 1.3.6 学习率调度。
工程要点
- :常用 量级,以 recipe 为准。
- 全局梯度范数裁剪:防止单步更新过大。
- 混合精度:FP16/BF16/FP8 下 master weight 常为 FP32。
参考链接
- 1.3.6 学习率调度
- 3.6.1 混合精度训练
- DeepSeek V4 训练:技术报告领读