在Transformer模型的训练中,Warm-up(预热)是一种非常关键的学习率调度策略。几乎所有主流的大语言模型(如BERT、GPT系列、LLaMA等)在训练时都会使用这一策略。 简单来说,Warm-up就是在训练刚开始时,不直接使用设定好的最大学习率,而是让学习率从零(或一个极小的值)开始,经过一定步数(或比例)的训练后,逐渐线性增加到最大值,然后再按照特定的衰减策略(如余弦衰减、线性衰减)逐渐降低。 以下是对Transformer训练中Warm-up策略的全面解析: --- 一、 为什么Transformer需要Warm-up? 在CNN或RNN时代,Warm-up并不是必须的,但在Transformer中它却至关重要。主要原因有以下几点: 1. 缓解Adam优化器的“冷启动”问题(核心原因) Transformer通常使用Adam或AdamW优化器。Adam优化器会根据梯度的二阶矩(即梯度的平方的滑动平均)来动态调整每个参数的学习率。 在训练的最初阶段,模型参数是随机初始化的,梯度往往非常大且极不稳定。 此时梯度的二阶矩估计(方差)还未收敛,如果此时给一个较大的学习率,...