简介:本文围绕深度学习优化器的两条技术路线展开对比:以自适应学习率为代表的经典优化器与以“重球法”为代表的动量类方法。读者将了解二者在梯度处理、学习率控制、震荡抑制、收敛特性上的核心差异,掌握不同训练场景下的选型依据与迁移注意事项。
在大模型训练中,模型结构、数据规模与算力配置往往最先被关注,但真正决定“能否收敛、收敛多快、收敛到什么位置”的,是优化器。优化器的角色类似导航策略:损失函数告诉你当前海拔,梯度告诉你脚下哪边是下坡,而优化器决定你朝哪个方向迈步、迈多大一步、要不要保留上一步的惯性。
近期发布的新一代大模型预览版本,将“百万字超长上下文”和新的训练优化方案同时推到台前。其中被反复讨论的一个技术点,是训练过程中采用的新型优化器思路。这引出一个更普遍的问题:以自适应学习率为核心的经典优化器,与以“重球法”为代表的动量类优化器,到底有什么区别?在不同训练任务中该如何选择?
本文不针对任何具体产品做评测,而是围绕这两类通用技术方案展开系统对比。
这类方法的核心思想是:为每个参数维度单独维护学习率或梯度尺度,并根据历史梯度的一阶矩、二阶矩动态调整更新幅度。其典型特征包括:
它解决的问题是:不同参数、不同训练阶段的梯度尺度差异极大,统一学习率容易导致部分参数更新过慢或过快。
1964年,苏联数学家鲍里斯·波利亚克在研究最优化理论时提出了“重球法”。其核心洞察是:标准梯度下降相当于一个没有质量的粒子在表面滑动,可以瞬间启动、瞬间停止,这不符合物理直觉。如果在粒子上加入“质量”和“惯性”,它在狭长峡谷地形中就不会来回撞击山壁。
重球法的更新逻辑可以概括为:
v_t = β * v_{t-1} + grad_tw_t = w_{t-1} - lr * v_t
其中 β 是动量系数,v 是累积速度。与标准梯度下降相比,它多了一个“历史方向记忆”,从而抑制横向震荡、加速沿谷底方向的前进。
尽管两类方法在数学形式上差异明显,但它们的目标一致:
换句话说,它们不是互斥的阵营,而是同一问题下的不同策略选择。
| 维度 | 经典自适应优化器 | 重球法/动量类方法 |
|---|---|---|
| 核心状态 | 一阶矩、二阶矩估计 | 速度向量(动量累积) |
| 学习率处理 | 逐参数自适应缩放 | 通常全局统一,配合调度 |
| 更新方向 | 由缩放后的梯度决定 | 由累积速度决定 |
| 物理类比 | 带阻尼的自适应步长 | 有质量的球在坡面滚动 |
自适应优化器的“导航仪”更像是一个会实时测量地面摩擦力和坡度的智能系统;重球法更像是一个有惯性的保龄球,一旦方向对了就会持续加速。
需要强调的是,这并非绝对优劣,而是取决于任务、数据分布和训练预算。
| 场景 | 更倾向的选择 | 原因 |
|---|---|---|
| 快速原型验证 | 自适应优化器 | 对学习率不敏感,起步快 |
| 稀疏梯度任务 | 自适应优化器 | 逐参数缩放更友好 |
| 超长上下文大模型预训练 | 动量类方法结合调度 | 惯性抑制震荡,长期收敛更稳 |
| 显存受限环境 | 轻量动量方法 | 状态存储更少 |
| 微调与小规模任务 | 两者均可 | 取决于数据量和训练轮次 |
从一种优化器切换到另一种,通常不需要改动模型结构,但需要关注:
经典自适应优化器与重球法代表了两种不同的导航哲学:前者强调“逐参数自适应调整”,后者强调“用惯性穿越峡谷”。前者在起步速度、稀疏梯度和显存充足场景中更常见;后者在长期训练、震荡抑制和泛化稳定性上更有优势。
实际选型时,不应简单问“哪个更好”,而应问:我的任务梯度分布如何?训练周期多长?显存预算多少?对最终泛化要求多高? 回答清楚这些问题,优化器的选择自然就清晰了。