新加坡国立大学最新优化器已投入使用
优化器在大语言模型的训练中占据了大量内存资源。
现在有一种新的优化方式,在性能保持不变的情况下将内存消耗降低了一半。
该成果由新加坡国立大学打造,在ACL会议上获得了杰出论文奖,并已经投入了实际应用。
随着大语言模型不断增加的参数量,训练时的内存消耗问题更为严峻。
研究团队提出了CAME优化器,在减少内存消耗的同时,拥有与Adam相同的性能。
CAME优化器在多个常用的大规模语言模型的预训练上取得了相同甚至超越Adam优化器的训练表现,并对大batch预训练场景显示出更强的鲁棒性。
进一步地,通过CAME优化器训练大语言模型,能够大幅度降低大模型训练的成本。
实现方法
CAME优化器基于Adafactor优化器改进而来,后者在大规模语言模型的预训练任务中往往带来训练性能的损失。
Adafactor中的非负矩阵分解操作在深度神经网络的训练中不可避免地会产生错误,对这些错误的修正就是性能损失的来源。
而通过对比发现,当起始数值mt和当前数值t相差较小时,mt的置信度更高。
受这一点启发,团队提出了一种新的优化算法。
下图中的蓝色部分就是CAME相比Adafactor增加的部分。
CAME优化器基于模型更新的置信度进行更新量修正,同时对引入的置信度矩阵进行非负矩阵分解操作。
最终,CAME成功以Adafactor的消耗得到了Adam的效果。
相同效果仅消耗一半资源
团队使用CAME分别训练了BERT、GPT-2和T5模型。
此前常用的Adam(效果更优)和Adafactor(消耗更低)是衡量CAME表现的参照。
其中,在训练BERT的过程中,CAME仅用一半的步数就达到了和Adafaactor相当的精度。
△左侧为8K规模,右侧为32K规模
对于GPT-2,从损失和困惑度两个角度看,CAME的表现和Adam十分接近。
在T5模型的训练中,CAME也呈现出了相似的结果。
而对于模型的微调,CAME在精确度上的表现也不输于基准。
资源消耗方面,在使用PyTorch训练4B数据量的BERT时,CAME消耗的内存资源比基准减少了近一半。