一句话定义:WSD(Warmup-Stable-Decay)是一种把学习率(learning rate)切成三段的训练调度方法——开头预热爬升、中间长时间保持不变、最后快速衰减收尾。
学习率决定"每次更新参数时步子迈多大"。这三段各有分工:
- Warmup(预热):刚开训时参数接近随机,梯度方向还不太靠谱,步子迈大了容易走歪,所以让学习率从接近 0 一点点升到峰值。
- Stable(稳定):升到峰值后就不再变动,长期保持恒定。这一段通常占全部训练步数的绝大部分,模型能力主要在这里长出来。
- Decay(衰减):最后把学习率快速压到接近 0,模型从"到处试探"切换到"精修",损失往往在这一段掉得最明显。
打个炖汤的比方:先大火烧开,再转小火恒温慢炖,最后开大火收汁。让汤变浓的是最后几分钟,但前面没炖透,收汁也收不出味道。
和余弦退火的区别
最常见的替代方案是余弦退火(cosine annealing):学习率从峰值出发,沿一条余弦曲线一路平滑降到接近 0,隐含前提是"总步数必须提前定死"。
| 维度 | 余弦退火 | WSD |
|---|---|---|
| 曲线形状 | 全程平滑下降 | 先升、长期恒定、最后陡降 |
| 总步数 | 必须提前确定 | 稳定期可随时延长 |
| 中途快照 | 越靠后学习率越低,退火空间越小 | 任意快照都停在同一峰值学习率 |
| 延长训练 | 需重启或重画曲线 | 继续跑稳定期即可 |
为什么更适合反复试错
关键在稳定期的"均质性"。学习率一直没变,所以稳定期里任何一个 checkpoint(检查点,即中途保存的权重快照)都处在同一状态。你可以从一份稳定期权重切出好几支,各自跑一小段退火,得到好几个可用的最终模型——起点相同,结果也可比。
余弦退火做不到:越靠后的快照,学习率已被压得越低,再退火几乎没有下降空间;想换个总步数,整条曲线都得重画,等于重跑。试错成本被结构性地放大了。
实际意义
对训练团队,WSD 把最贵的部分(长稳定期)跑一次,再用便宜的退火阶段做搜索:退火多长、终值多低、要不要换数据配比,都能低成本试。退火阶段也常用来掺入更高质量的数据,相当于"临门一脚"。
对普通职场人,它说明一件事:迭代速度不只取决于算力,也取决于流程本身是否可回滚、可分支。把不可逆的流程改成"随时能取快照",效率提升常常比堆硬件更明显。
最后提醒:退火长度、学习率终值、数据配比都会影响结果,最佳比例并不通用,具体设置请以官方文档和自己的消融实验为准。
