Sophia 是一种二阶优化算法,它使用对角 Hessian 矩阵的轻量级估计作为预处理器,并采用梯度裁剪来控制更新的大小。
Sophia 算法中 Hessian 矩阵的对角元素可以通过两种方法估计:Hutchinson 估计器和 Gauss-Newton-Bartlett (GNB) 估计器。
Sophia 算法使用梯度裁剪来控制更新的大小,从而避免由于 Hessian 估计不准确或损失函数非凸性导致的过大更新。
Sophia 在语言模型预训练中表现出优于 AdamW 的性能,尤其是在模型规模扩大时。
论文提供了 Sophia 在凸函数上的理论分析,表明其运行时间不依赖于局部条件数和最坏情况曲率。
A: 二阶优化算法使用损失函数的二阶导数(Hessian 矩阵)来指导优化过程,而一阶优化算法仅使用一阶导数(梯度)。相比之下,二阶优化算法能够更准确地估计损失函数的曲率,从而实现更快的收敛速度。
A: 梯度裁剪通过限制更新步骤的最大幅度,确保优化过程的稳定性和鲁棒性。尤其是在 Hessian 估计不准确或损失函数非凸性的情况下,梯度裁剪可以防止过大的更新破坏优化过程。
A: Sophia 算法特别适用于大规模语言模型的预训练,因为它能够在保证优化效率的同时,提高训练速度和降低计算成本。
对大型语言模型预训练和优化算法感兴趣的研究人员、工程师和学生。
大型语言模型(LLM)的预训练由于其庞大的数据集和模型尺寸而非常耗时,需要对模型参数进行数十万次的更新。例如,PaLM 在 6144 个 TPU 上训练了两个月,花费了 1000 万美元。因此,预训练效率是扩展 LLM 的主要瓶颈。Adam 及其变体是训练 LLM 的主要优化器,但设计更快的 LLM 优化器仍然具有挑战性。