优化器更新模型参数,以降低训练目标。在基于梯度的学习中,目标衡量预测与目标之间的差异, 自动微分则提供相对于参数的梯度。
梯度下降 #
对于参数 \(\theta\)、学习率 \(\eta\) 和损失 \(L\),梯度下降执行:
text
θ ← θ − η ∇θL批量梯度下降在每次更新时使用完整训练集。随机梯度下降使用一个样本,小批量梯度下降使用 一小批样本。小批量是实践中的标准选择,因为它能高效利用加速器硬件,同时引入有助于探索的梯度噪声。
动量与自适应方法 #
动量从过去的梯度中累积移动方向,从而减少狭窄谷地中的振荡。 Adam 将动量与根据梯度平方得到的逐参数自适应缩放相结合。 AdamW 将权重衰减与 Adam 的自适应更新解耦,是 Transformer 训练中常见的默认选择。
没有任何一种优化器在所有情况下都最佳。带动量的 SGD 在某些视觉工作负载中具有良好的泛化能力; AdamW 通常更容易为大型语言模型调参。学习率计划、批量大小、权重衰减、梯度裁剪和数据质量, 产生的影响可能不亚于优化器名称本身。
实际调参 #
选择一种基准优化器和保守的学习率,然后监控训练损失、验证质量、梯度范数和不稳定性。 训练损失下降本身并不能证明模型有用。初始更新过大而不稳定时使用预热;训练接近收敛时降低学习率; 并将优化器状态保存到检查点中,从而使恢复训练保持一致行为。
评论
在 GitHub 上阅读或评论(发表评论需要登录)