本篇主要介绍大模型训练时出现loss突刺“(loss spike“)的原因与解决方案。
一、大模型训练突刺是什么
loss spike指的是大模型(100B以上)在预训练过程中出现的loss突然暴涨的情况。如下图
二、大模型训练为什么会出现loss突刺
首先讲结论:
loss spike的出现与梯度更新幅度,优化器“中ε大小,batch大小这三个条件密切相关:
大模型训练中使用Adam优化器”,造成梯度变化与更新参数变化不满足独立性,浅层参数长时间不更新,并且大模型训练中batch太大,后期梯度更新又趋于平稳导致的Loss spike
下面具体来讲讲为什么。
1.Adam优化器原理
吴恩达“老师说过,梯度下降(GradientDescent)就好比一个人想从高山上奔跑到山谷最低点,用最快的方式(steepest)奔向最低的位置(minimum)。优化器就是让梯度下降走得更顺利最终达到我们期望的目的地的工具。
Adam优化器,结合AdaGrad和RMSProp两种优化器的优点。
其对梯度的一阶矩估计°(First Moment Estimation,即梯度的均值)和二阶矩估计(Second Moment Estimation,即梯度的未心化的方差)进行综合考虑,计算出更新步长。
2.原因解释
可以看出来,Adam算法“本质是牛顿下降法“的一个迭代逼近。
整个过程看上去是很优美的,但收敛过程并没有想象中顺利。
我们来预设一个理想的ut更新参数的变化趋势:
在t=1的初始状态时,u1集中在+1,-1附近:
训练到最后时,模型会收敛到某个最优点,此时un“集中在0附近。
也就是说,更新参数变化过程可以想象成一个下端(非稳态°)向中间(稳态)收拢的过程。
这里需要补充两个点:
为什么小模型不会出现这种情况?
小模型函数空间°小,无法捕获样本的分布变化,越大规模的模型对样本之间不同维度的特征分布变化越敏感。
为什么更换样本重新训练有可能会减少Lossspike的出现频率?
本质上就是选择分布变化较小的样本,减小浅层梯度变换幅度
这个阶段模型处于非稳态,梯度变化幅度较大,每一次的梯度变化和更新参数变化事件之间又出现了一定的独立性,因此经过一定的时间之后模型有可能再次进入稳态,loss再次回到之前的状态,也可能直接飞了再也无法收敛。
最后我们用比较简单的话总结一下:
loss spike本质原因是梯度变化以及更新参数变化并不能特别好的满足独立性,导致随机事件的叠加难以按照理想状态进入单峰的正态分布
三、大模型训练出现loss 突刺怎么解决?
这里给一些参考,大家也可以再自己发挥想一想。
1.更换batch样本: 常规方法,但是成本比较高
2.减小learning rate: 治标不治本,对更新参数的非稳态没有做改进
3.重新定义在vt=0时候的值
根据公式
可以减小ε大小,或者直接设置ε为0
4.把浅层梯度直接乘一个缩放系数来减小浅层梯度更新值
如何学习大模型
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
![](https://img-blog.csdnimg.cn/img_convert/1eab95b07e8ad2e7080279aeacce2f03.png)
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍
四、AI大模型各大场景实战案例
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。