What is 学习率?
一个控制模型权重在每批训练数据后调整幅度的超参数,直接影响训练速度和稳定性。
Definition
学习率是一个标量值——通常是像1e-4或2e-5这样的小数——它决定了梯度下降过程中权重更新的幅度。在每批训练数据之后,模型计算梯度,指示每个权重应该向哪个方向移动以减少损失。学习率缩放这些梯度后再应用:更大的学习率意味着更大的步幅(更快但风险更大),更小的学习率意味着更小的步幅(更慢但更稳定)。
在LLM微调的场景下,学习率可以说是最敏感的超参数。微调使用比预训练低得多的学习率——通常低10到100倍——因为目标是温和地调整模型的现有知识而非覆盖它。学习率过高可能导致灾难性遗忘,模型丧失其预训练能力。学习率过低则浪费计算资源,因为每个epoch的进展微乎其微。
现代微调管道通常使用学习率调度器,在训练过程中改变学习率。常见的调度器包括余弦退火(学习率沿余弦曲线逐渐降低)、线性预热后衰减,以及带预热的常 数。这些调度器帮助模型在初期取得较大进展,然后在训练接近收敛时更仔细地微调权重。
Why It Matters
学习率通常是从业者首先调优的超参数,因为它对训练结果的影响最为显著。任一方向上的数量级误差可能决定是高性能模型还是完全崩溃的模型。对于没有深厚ML专业知识的团队来说,理解学习率基础知识——以及拥有合理的默认值——对于避免浪费计算资源和令人沮丧的调试至关重要。
How It Works
在每个训练步骤中,优化器将计算出的梯度乘以学习率来产生实际的权重更新:new_weight = old_weight - learning_rate × gradient。对于像LoRA这样的参数高效方法,学习率仅应用于适配器权重(因为基础模型被冻结)。像AdamW这样的高级优化器维护基于历史梯度统计的逐参数自适应学习率,但基础学习率仍然作为全局缩放因子。学习率调度器随后随时间修改这个基础率——例如,在训练的前10%步骤中从零线性预热以防止早期不稳定。
Example Use Case
一个数据科学团队微调Llama 3 8B模型,最初将学习率设为1e-3(过高)。一个epoch后,模型产生不连贯的输出——灾难性遗忘已经摧毁了预训练知识。他们以2e-5重新开始,3个epoch后模型产生了流畅、准确的领域特定回复。然后他们尝试1e-4配合余弦退火,发现它在2个epoch内收敛,验证分数略好,节省了33%的训练时间。
Key Takeaways
- 学习率控制训练过程中模型权重更新的激进程度。
- 微调的学习率通常比预训练低10-100倍(常用1e-5到1e-4)。
- 学习率过高导致灾难性遗忘;过低浪费计算资源。
- 学习率调度器(余弦、线性预热)帮助优化训练轨迹。
- 学习率通常是首先且影响最大的需要调优的超参数。
How Ertas Helps
Ertas Studio为每个基础模型和训练方法(LoRA与QLoRA)提供合理的默认学习率,用户无需研究最优值即可开始训练。对于高级用户,可视化配置面板将学习率、调度器类型和预热步数作为可调参数开放。Studio中的实时训练损失图表使诊断学习率问题变得容易——损失曲线飙升表示学习率过高,而平坦的曲线表示过低。
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.