问题

为什么大模型训练都需要 warm up?

答案

深度学习刚出来那一阵子,是完全没有 warm up 阶段的。因为那个时候模型都比较小,数据也不多,训练时间很短。大家只需要做一个调参侠,把各种超参数都 grid search 下,最优好的结果就出来了。

后来随着模型越来越大,数据越来越丰富,发现 grid search 的成本太高了,而且训练变得不稳定了,经常出现训练无法收敛的情况。

这个时候大家开始从影响模型训练稳定性和最终效果的超参数开始研究,比如 learning rate。

learning rate 如果选的太大,模型可能会无法收敛,而选的过小不仅训练速度慢,而且容易陷入到局部最优里面。

比如最早用 warm up 的可能是 Resnet 。当 Resnet 层数到一定程度后,发现 0.1 作为初始化的学习率明显太大了,模型会收敛到错误率 < 90%,但是基本就止步于此了。

所以当时何凯明先用 0.01 的学习率学了 400 步,然后再换成 0.1 的学习率。

大家通过各种实验都有一个共同的结论,那就是学习率对模型的效果影响巨大,而且比较大的模型(Resnet之后的规模),刚开始的学习率不能太大。

为什么训练初始阶段的学习率不能太大呢?

关于这个原因,有很多研究,下面列举几个比较主流和直观的观点。

比如 RAdam 的这篇论文发现,其根本问题在于自适应学习率的优化器,训练早期的方差太大,而在数据有限的情况下,就可能做出错误优化方向,更容易陷入局部最优。

通俗点来讲,就是假努力:方向不对,一切白费。

此时梯度的变化是很剧烈的,可以看下图,10步后梯度的分布就有明显的变化。

图片

而小的学习率可以降低优化器方差较大的影响。虽然刚开始的方向是错的,但是错的不要太多,随着数据的积累慢慢的把方向调整到正确的方向。

在《On Layer Normalization in the Transformer ArchitectureDownload》的论文中,则讨论了 Post-Norm 的架构下,层数越高,FNN 参数的梯度越大。这个时候大的梯度加上大的学习率就很容易发散。

在 《Why Warmup the Learning Rate? Underlying Mechanisms and Improvements》这篇文章中,则继续强调了 learning rate 对模型最终的结果影响巨大。

同时研究了 尖锐度(Sharpness,指损失函数Hessian矩阵的最大特征值)与稳定性阈值的关系。证明了当学习率超过一定的阈值,就会出现 loss spike 。

图片

如上图所说,随着 warmup,学习率增大导致尖锐度超过了稳定性阈值(右图 d 虚线),这时候就出现了 loss spike(左图c)。从图 c 中可以看到,warm up 越长,loss spike 出现的就越晚。

出现 loss spike 后,随着时间的增加,loss 依然会降,尖锐度也会下降,会慢慢小于稳定性的阈值。这个时候可以说模型被救过来了。

但是如果没有 warmup,loss 在开始阶段就发散了(蓝色线)。

当然 loss spike 的原因很多,这只是其中一种角度,通常被称作 catapults 。是特指在特定优化算法(如带动量的SGD)中,由学习率超调和动量效应引发的特殊类型损失尖峰。

— END —

 如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。


👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。


1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐