大模型面经:大模型训练中出现的问题及详解

本篇主要介绍大模型训练时出现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大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

### 关于大模型训练试经验 #### 技术基础知识的重要性 在涉及大模型训练试过程中,技术基础知识占据了非常重要的地位。这不仅包括机器学习的核心概念,还涵盖了深度学习框架的应用以及分布式计算的相关知识[^2]。 #### 思维能力与潜力评估 除了扎实的技术基础外,候选人的思维能力和潜在发展可能性也是考核的重点之一。这类问题通常通过设计开放性或逻辑推理类题目来实现,旨在测试候选人解决复杂问题的能力及其创新意识。 #### 实际项目经验和编码技巧 实际操作层的经验同样不可忽视。许多公司会安排多轮次的技术试环节,在这些环节里,应聘者会被要求完成具体的编程任务或是讨论他们过去参与过的相关项目细节。例如某知名科技企业就强调其招聘流程中对于代码编写技能的高度关注,并提到即使对不太理想的初次交流情况也依然坚持高标准筛选原则[^1]。 #### 常见的大规模预训练模型知识点回顾 针对具体领域内的专业知识点复习必不可少。以下是几个可能涉及到的关键方: - **数据处理**:如何高效清洗、标注海量原始素材;怎样构建适合特定应用场景的数据集。 - **算法优化**:掌握各种正则化方法论以防止过拟合现象发生;理解不同损失函数的选择依据及其影响因素。 - **硬件资源管理**:熟悉GPU/CPU集群配置方案;能够合理分配计算节点从而加速整个迭代过程。 ```python import torch from transformers import AutoTokenizer, AutoModelForCausalLM def load_model(model_name="bigscience/bloom"): tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) return tokenizer, model tokenizer, model = load_model() input_text = "This is a test sentence." inputs = tokenizer(input_text, return_tensors="pt") outputs = model.generate(**inputs, max_length=50) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` 上述代码片段展示了加载并运行大型语言模型的一个简单例子,这对于准备有关大规模预训练模型的实际应用问题是很有帮助的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值