
前言最近阅读了《A Theory on Adam Instability in Large-Scale Machine Learning 》这篇论文。比较全面的阐述了 100B 以上的大模型预训练中出现 loss spike 的原因(loss 突然大幅度上涨)并介绍了一些可能的解决办法。论文写的非常精彩但整体上有点散和深我尝试着站在工业立场上把它串一下。1、突刺是什么首先介绍一下什么是 loss spikeloss spike 指的是预训练过程中尤其容易在大模型100B 以上预训练过程中出现的 loss 突然暴涨的情况。如图所示模型训练过程中红框中突然上涨的 loss 尖峰 loss spike 的现象会导致一系列的问题发生。譬如模型需要很长时间才能再次回到 spike 之前的状态论文中称为 pre-explosion或者更严重的就是 loss 再也无法 drop back down即模型再也无法收敛。PaLM 和 GLM130b 之前的解决办法是找到 loss spike 之前最近的 checkpoint更换之后的训练样本来避免 loss spike 的出现。2、突刺成因分析这篇论文以下称本文对 loss spike 的出现原因做了十分详细的分析最后认为预训练使用的 Adam 优化器是导致这个现象出现的重要原因之一。首先回顾一下 Adam 优化器的结构这里介绍的是较为传统的 Adam 优化器现在 nlp 任务更偏向于使用带有正则化项的 Adamw 变体本文首先对 Adam 的有效性做了论述其本质在于证明了 Adam 优化过程是对牛顿下降法二阶导的一个有效逼近。因此在收敛速度上大幅度领先传统 SGD(一阶导)证明过程不做赘述可以参考本文和 Adam 系列相关论文。Adam 算法是牛顿下降法的一个迭代逼近一切显得十分完美但是理想很丰满现实很骨感收敛过程并不是一帆风顺的。非稳态中间态稳态进入正态分布的稳态之后理想的更新参数变化趋势应该是方差越来越小所有更新参数逐渐向 0 靠近。这应该是一个单向的过程即稳定的单峰状态unimodal不会再次进入非稳定的双峰状态(bimodal)但事实并非如此更新参数会再次进入非稳定的双峰状态。本文在理论层面做了研究和解释从中心极限定理可以结合道尔顿板实验理解出发认为随机事件的叠加进入单峰的正态分布的必要条件之一是各个随机事件事件之间应该是相互独立的。但是梯度变化以及更新参数的变化并不能特别好的满足独立性这一条件而这一点恰恰是导致更新参数振荡loss spike 出现以及 loss 不收敛的重要原因之一。造成梯度变化不独立的原因浅层参数长时间不更新batch 太大后期梯度更新趋于平稳上述的理论有些晦涩本文作者可能也了解这一点之后开始直接点题结合实验观察抛出了重要现象和结论。本文作者对 loss spike 出现时模型的前后变化做了仔细拆解发现下列一系列连续现象的出现导致了 loss spike3、突刺解法本文最后提到了防止 loss spike 出现的一些方法另外假设我们能一次性加载所有样本进行训练实际上不可能做到是否还会出现 loss spike 的现象。最后的最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】大模型知识脑图为了成为更好的 AI大模型 开发者这里为大家提供了总的路线图。它的用处就在于你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。经典书籍阅读阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】