在分布式大模型训练中,学习率预热策略对训练稳定性与收敛速度具有决定性影响。基于我们对LLaMA-70B和Mixtral-40B的调优经验,分享一些实用的预热策略。
核心观察:当batch size=128时,线性预热vs余弦预热的差异显著。对于1000个训练step,我们采用以下配置:
# 线性预热策略
warmup_steps = 100
initial_lr = 1e-6
final_lr = 3e-4
# 余弦预热策略
warmup_steps = 100
initial_lr = 1e-6
final_lr = 3e-4
可复现步骤:
- 设置训练脚本中的
--warmup-steps=100 --initial-lr=1e-6 --final-lr=3e-4 - 监控前50个step的loss曲线,记录收敛速度
- 通过
torch.optim.lr_scheduler.LinearLR或CosineAnnealingLR实现预热
关键发现:
- 线性预热在batch size较大时更稳定
- 余弦预热在小batch size下收敛更快,但可能引发训练震荡
- 建议先用线性预热,再根据loss曲线微调预热步数
此策略适用于所有分布式训练场景,建议在训练初期进行充分验证。

讨论