谷歌利用AutoML探索更高效的人工智能训练算法

Google开源Lion优化算法

Google的研究人员开源了一种名为EvoLved sIgn mOmeNtum (Lion)的神经网络训练优化算法。该算法通过自动机器学习(AutoML)进化算法发现,并在多个基准测试中表现出优于其他优化器的精度,同时需要更少的计算周期来收敛。

Lion算法的发现与特点

Google使用进化搜索方法在符号程序中发现了Lion算法。与当前主流的优化算法Adam相比,Lion占用更少的内存和指令。Lion的一个关键区别在于它只关注梯度的符号,并对每个权重应用相同的更新幅度。通过Lion,研究团队训练了多个模型,其中在ImageNet分类任务上达到了新的最先进精度。使用Lion训练的ViT模型在ImageNet上的精度提高了2%,同时节省了5倍的计算周期。

背景与动机

深度学习模型通常使用梯度下降算法来迭代更新网络的权重,以最小化损失函数。常用的算法包括AdamAdafactor,这些算法已被用于训练大多数最先进的模型。尽管这些算法比早期的算法有了很大改进,但Google团队希望通过AutoML进一步优化它们。

Lion的开发过程

研究团队将搜索空间定义为一组用类似Python的指令式语言编写的函数,输入包括模型权重、梯度和学习率,输出为权重更新。搜索通过变异函数代码(添加、删除或修改语句)进行。候选函数通过训练小型ML模型来选择,训练模型的精度反映了候选训练函数的适应度

经过多次实验,团队选择了一个最终函数,因为它“简单、内存效率高且性能强劲”。与Adam和Adafactor相比,Lion算法更简单,超参数更少。由于它使用固定的值更新权重,仅通过学习率进行缩放,因此需要比Adam小3到10倍的学习率,以及大3到10倍的学习率衰减。

Lion与其他优化器的比较

研究团队使用Lion训练了许多已发布的模型,涵盖视觉、语言和多模态任务,并将Lion训练的模型与Adam或Adafactor训练的模型在精度和训练计算需求方面进行了比较。尽管Lion在许多情况下优于Adam,但在某些任务(如大规模高质量数据集上的视觉任务和掩码语言建模)中,两者的性能相似。作者还指出,Lion在小批量大小下可能与Adam表现相同。

用户反馈与开源实现

研究团队的几位成员在Twitter上回答了用户关于这项工作的提问。有用户询问为什么在某些模型上团队将Lion与Adafactor而不是Adam进行比较。共同第一作者陈亮回复称,对于大多数语言基准测试(如小规模LM、掩码LM、微调等),他们与AdamW进行了比较。对于参数超过10亿的语言模型,他们与Adafactor进行了比较,因为它是基线中的默认选项,并且与AdamW性能相似但成本更低。

Lion的Python实现已发布在GitHub上,支持包括Pytorch和Tensorflow在内的多个流行深度学习框架。

阅读 24
0 条评论