鉴于训练语言模型的前期成本很高,对优化过程的任何非微不足道的改进都会大大减少完成训练过程所需的时间和金钱。长期以来,Adam及其变体是最先进的技术,而二阶(基于Hessian的)优化器由于其每步开销较大而很少被利用。
研究人员提出了一个对角线Hessian的轻量级估计,作为二阶优化器Sophia的预设条件,即二阶剪切随机优化。Sophia是一个新颖的优化器,它可以以两倍于Adam的速度解决LLMs。在更新后进行逐个元素的剪辑,通过取梯度的平均值并除以估计的Hessian的平均值来发现。剪切限制了最坏情况下的更新大小,并减轻了轨迹的非凸性和快速Hessian变化的影响。增加一些新的代码行可能会将200万美元的预算减少到100万美元的范围内(假设缩放规律适用)。
平均每步时间和内存开销都很低,因为Sophia每隔几次迭代才估计对角线Hessian。Sophia在步骤数、总计算量和壁时钟时间方面将Adam的速度提高了一倍,同时用GPT-2模型为语言建模,其规模从1.25亿到7.7亿。研究人员证明,Sophia可以适应语言建模任务所依据的大量参数变化。运行时间约束与损失的条件数无关。
主要特点
- Sophia可以直接用PyTorch实现,因为它要求在单独剪切元素之前对对角线Hessian的轻量级估计作为梯度的预设条件(见第一张图片的伪代码)。
- Sophia也有助于锻炼前的稳定性。与亚当和狮子相比,梯度剪裁的情况要少得多。重新参数化的技巧,即聚焦温度随层指数而变化,是不必要的。
- Sophia通过对尖锐尺寸(大Hessian)的更新比平坦尺寸(小Hessian)的更新进行更多的惩罚,确保在所有参数维度上有一致的损失减少。在二维空间,Adam收敛得更慢。
这项工作的重要方面
- 这表明,即使资源有限,学者们也可以研究LLM的预训练,并开发出新颖有效的算法。
- 除了回顾以前优化课程的材料,研究人员在整个研究过程中广泛使用理论推理。
在定于明天发布的代码中,研究人员使用了普遍接受的LR定义的一个略微修改版本。虽然对于打字来说比较整洁,但该论文的LR定义可能更适合计算机代码。
Sophia在Github上的库:https://github.com/Liuhong99/Sophia
原文地址:https://www.wbolt.com/sophia-second-order-optimizer.html