赞
踩
不同语言模型使用不同种类的目标函数
讨论Decoder-only、Encoder-only、Encoder-Decoder三种模型的目标函数
特点
计算token的单向上下文嵌入,即定义了一个条件分布
p
(
x
i
∣
x
1
:
i
−
1
)
p(x_i|x_{1:i-1})
p(xi∣x1:i−1)
具体而言
训练思想
使用最大似然原理进行训练,负对数似然目标函数定义如下
以BERT模型为例
它的目标函数包括两个部分,掩码语⾔模型(Masked language modeling)和下⼀句预测(Next sentence prediction)
BERT模型架构
说明:input序列里面有两个特殊的token,[CLS]
和[SEP]
分别为用于驱动分类任务的嵌入和分隔input序列的嵌入
使用的是自监督学习的思想:通过加噪然后预测来进⾏训练,即通过映射有噪声不完整版本input序列到原始input序列,即
举个例子
建模
使用带噪的input序列学习到原始token
掩码
使用噪声函数
A
(
x
~
1
:
L
∣
x
1
:
L
)
A(\widetilde{x}_{1:L}|x_{1:L})
A(x
1:L∣x1:L)
给一个噪声函数A的示例
减少分布偏移
分布偏移的问题在于若训练期间输入的全为带[MASK]
的序列,而测试期间的input序列中是不会有[MASK]
作为掩码的,这将导致分布发生变化
解决办法:如上面的噪声函数定义所示,在在20%的时间内使用真实单词
任务介绍
输入两个拼接好的成对句子,预测第二句是否跟随第一句。本质即为一个二分类任务
举个例子
训练数据的构建
解释:将两个部分的最大似然进行加和,将数据集中每一个序列的损失进行加和,最小化此目标函数
值得一提的是RoBERT模型的训练在此基础上进行了改进
训练结果:RoBERTa在各种基准上显著提⾼了BERT的准确性
结合两个BART和T5两个模型进行具体说明
Bidirectional Auto-Regressive Transformers 双向自回归模
型
加入噪声部分
模型变换部分包括掩码⽂档中30%的token和将所有⼦句打乱等操作
Text-to-Text Transfer Transformer
Text-to-Text模型
将所有经典的NLP任务放在一个统一的框架中
预训练目标
在多种无监督目标中进行测试选择了效果最好的“i.i.d. noise, replace spans”的加噪方式
这里以自回归模型中目标函数最大似然的一部分为例
优化关键点
参数快速收敛
数值稳定的优化
内存高效的优化
这些关键点往往相互矛盾
常用策略
在经典优化中使用⼆阶⽅法、约束优化
在机器学习中使用随机⽅法、隐式正则化+早停法
在深度学习考虑初始化、归⼀化(更改模型架构)
针对llm,考虑学习率等
数值稳定介绍
产生原因:llm的训练数据和模型参数庞大
具体表现:梯度爆炸或梯度消失
解决办法:
梯度裁剪:限制梯度的范数来避免梯度爆炸
权重初始化:合适的权重初始化方法来避免梯度消失
学习率调整:动态调整学习率来避免优化算法过快或过慢的收敛
算法步骤
adaptive moment estimation
创新点
引入动量,使得参数
θ
\theta
θ在更新过程中有一个自适应的步长,提供了避免陷入local minimum的可能性
步骤
更新参数包括计算梯度->更新一阶、二阶动量->修正偏差->更新参数
计算梯度:使用与SGD相同的方式
更新一阶、二阶动量
修正偏差
更新参数
评估
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)
算法思路
为减少存储占用
应用
被用于训练T5模型
问题
训练的困难程度加大
算法思路
减少存储占用
示意图
通常情况下,学习率会随着时间的推移⽽衰减
在Transformer模型中加入预热(warmup)步骤提高学习率
初始化策略
GPT3的参数设置情况
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。