直接回答:微调的学习率通常比从头预训练小一到两个数量级;太大会在最优解附近反复震荡甚至发散,太小会收敛极慢还容易停在局部最优,先按经验量级试再配合 warmup 调整最实际。
在使用 AdamW 优化器时,学习率(learning rate)是一个关键的超参数,它对模型的训练过程有着重要的影响。以下是学习率参数的一些作用和影响:
收敛速度 :
- 学习率决定了每次参数更新的步长。较大的学习率可以加快收敛速度,但可能导致不稳定的训练过程,甚至无法收敛。
- 较小的学习率可以使训练过程更加稳定,但可能导致收敛速度过慢,甚至陷入局部最优。
训练稳定性 :
- 过大的学习率可能导致训练过程中的震荡,模型参数在最优解附近来回波动。
- 过小的学习率可能导致训练时间过长,模型难以达到全局最优。
模型性能 :
- 合适的学习率可以帮助模型更快地达到较好的性能。
- 不合适的学习率可能导致模型性能不佳,无法充分学习数据中的模式。
学习率调度 :
- 在训练过程中,通常会使用学习率调度器(如 OneCycleLR 、 StepLR 等)来动态调整学习率,以提高模型的训练效果。 在实践中,选择合适的学习率通常需要通过实验来确定,可以从一个较小的值开始尝试,并根据模型的训练表现进行调整。
AdamW的学习率通常在1e-5 到 3e-5之间,于大型语言模型(如 BERT、GPT 等)的微调,常用的学习率范围是 2e-5 到5e-5,从一个相对较小的值开始,如 2e-5
最大梯度范数(Max Gradient Norm)是一种用于防止梯度爆炸的技术,也称为梯度裁剪(Gradient Clipping)。这个参数设置了梯度的最大允许值,如果梯度超过这个值,就会被缩放到这个最大值。通常在 0.1 到 10 之间,太小:可能会限制模型学习,太大:可能无法有效防止梯度爆炸。
这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。