当前位置:   article > 正文

【斯坦福cs324w】中译版 大模型学习笔记六 LLM的模型训练_decoder-only模型训练时,如何计算模型的损失

decoder-only模型训练时,如何计算模型的损失


模型训练介绍分为目标函数和优化算法两个部分

目标函数

不同语言模型使用不同种类的目标函数
讨论Decoder-only、Encoder-only、Encoder-Decoder三种模型的目标函数

Decoder-only模型

特点
计算token的单向上下文嵌入,即定义了一个条件分布 p ( x i ∣ x 1 : i − 1 ) p(x_i|x_{1:i-1}) p(xix1:i1)
具体而言
image.png
训练思想
使用最大似然原理进行训练,负对数似然目标函数定义如下
image.png

Encoder-only模型

以BERT模型为例
它的目标函数包括两个部分,掩码语⾔模型(Masked language modeling)和下⼀句预测(Next sentence prediction)
BERT模型架构
image.png
说明:input序列里面有两个特殊的token,[CLS][SEP]
分别为用于驱动分类任务的嵌入和分隔input序列的嵌入

掩码语言模型

使用的是自监督学习的思想:通过加噪然后预测来进⾏训练,即通过映射有噪声不完整版本input序列到原始input序列,即
image.png
举个例子
image.png
建模
使用带噪的input序列学习到原始token
image.png
掩码
使用噪声函数 A ( x ~ 1 : L ∣ x 1 : L ) A(\widetilde{x}_{1:L}|x_{1:L}) A(x 1:Lx1:L)
image.png
给一个噪声函数A的示例
image.png
减少分布偏移
分布偏移的问题在于若训练期间输入的全为带[MASK]的序列,而测试期间的input序列中是不会有[MASK]作为掩码的,这将导致分布发生变化
解决办法:如上面的噪声函数定义所示,在在20%的时间内使用真实单词

下一句预测

任务介绍
输入两个拼接好的成对句子,预测第二句是否跟随第一句。本质即为一个二分类任务
举个例子
image.png
image.png

数据集

训练数据的构建
image.png

训练目标

image.png
解释:将两个部分的最大似然进行加和,将数据集中每一个序列的损失进行加和,最小化此目标函数

值得一提的是RoBERT模型的训练在此基础上进行了改进
image.png
训练结果:RoBERTa在各种基准上显著提⾼了BERT的准确性

Encoder-Decoder模型

结合两个BART和T5两个模型进行具体说明

BART模型

Bidirectional Auto-Regressive Transformers 双向自回归模

image.png

加入噪声部分
image.png

模型变换部分包括掩码⽂档中30%的token和将所有⼦句打乱等操作

T5模型

Text-to-Text Transfer Transformer
Text-to-Text模型
将所有经典的NLP任务放在一个统一的框架中
image.png
预训练目标
在多种无监督目标中进行测试选择了效果最好的“i.i.d. noise, replace spans”的加噪方式
image.png

优化算法

这里以自回归模型中目标函数最大似然的一部分为例
image.png
优化关键点
参数快速收敛
数值稳定的优化
内存高效的优化
这些关键点往往相互矛盾
常用策略
在经典优化中使用⼆阶⽅法、约束优化
在机器学习中使用随机⽅法、隐式正则化+早停法
在深度学习考虑初始化、归⼀化(更改模型架构)
针对llm,考虑学习率等

数值稳定介绍
产生原因:llm的训练数据和模型参数庞大
具体表现:梯度爆炸或梯度消失
解决办法
梯度裁剪:限制梯度的范数来避免梯度爆炸
权重初始化:合适的权重初始化方法来避免梯度消失
学习率调整:动态调整学习率来避免优化算法过快或过慢的收敛

随机梯度下降(SGD)

算法步骤
image.png

Adam

adaptive moment estimation
创新点
引入动量,使得参数 θ \theta θ在更新过程中有一个自适应的步长,提供了避免陷入local minimum的可能性
步骤
image.png
更新参数包括计算梯度->更新一阶、二阶动量->修正偏差->更新参数
计算梯度:使用与SGD相同的方式
image.png

更新一阶、二阶动量
image.png
修正偏差
image.png
更新参数
image.png
评估
Adam方法中使用了三个超参数进行参数更新
将存储从2倍的模型参数( θ t , g t \theta_t, g_t θt,gt)增加到了4倍( θ t , g t , m t , v t \theta_t, g_t, m_t, v_t θt,gt,mt,vt

AdaFactor

算法思路
为减少存储占用
image.png
应用
被用于训练T5模型
问题
训练的困难程度加大

混合精度训练

算法思路
减少存储占用
image.png
示意图
image.png

学习率

通常情况下,学习率会随着时间的推移⽽衰减
在Transformer模型中加入预热(warmup)步骤提高学习率

初始化

初始化策略
image.png
GPT3的参数设置情况
image.png

参考资料

  1. 大语言模型的预训练
  2. datawhale的so-large-lm学习资料
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/363040
推荐阅读
相关标签
  

闽ICP备14008679号