跳到主要内容

学习率调度(Warmup、Cosine、WSD)

训练规模与学习率​

Batch Size vs Learning Rate​

openai 结论:更大的 batch_size 配备更大的 learning rate;更小的 batch_size 配备更小的 learning rate​

openai 结论:更大的 batch_size 配备更大的 learning rate;更小的 batch_size 配备更小的 learning rate

llya 曾在公开场合无数次强调,能开更大的 batch_size 就开更大的 batch_size,这样也能够避免资源的浪费。​

解释​

batch_size 更大 -> 训练样本数量更多 -> 可是对应的 gradient 更新梯度差不多,因为 loss 会做 average -> 为了保证能到达相同的终点,需要更大的 learning rate​

不同 Size 的模型,Larger LLM 通常有 Larger Loss​

不同 Size 的模型,Larger LLM 通常有 Larger Loss

参考链接:​

https://gombru.github.io/2018/05/23/cross_entropy_loss/

warmup​

基础介绍​

一般在学习的过程中,学习率是不会变化的,而 warmup 在不同阶段采用不同的学习策略​

意义:在模型训练的初级阶段,模型对于数据比较陌生,需要使用较小的学习率​

模型在中间阶段,已经使用小学习率让模型学了一些先验知识,此时调整大的学习率让模型能够快速学习到对应的知识​

策略​

constant warm up​

学习率从比较小的数值线性增加到预设值之后保持不变​

linear warm up​

学习率从非常小的数值线性增加到预设值之后,然后再线性减小​

Cosine Warmup​

学习率先从很小的数值线性增加到预设学习率,然后按照cos函数值进行衰减。​