datawhale 大模型学习 第五章-模型训练

一、目标函数

今天要讨论的是以下三种模型结构:
Decoder-only模型:例如,GPT-3,单向上下文嵌入,在生成文本时一次生成一个token
Encoder-only模型:例如,BERT,利用双向上下文注意力生成embeding
Encoder-decoder模型:例如,T5,利用双向上下文编码,利用单向上下文生成文本

最终结果就是将token序列映射为一个Embedding向量

\sigma :V^{L}\rightarrow R^{d*L}

其中:
 L :代表文本长度
 d:代表embeding向量的维度

1.1 Decoder-only 模型

自回归语言模型预测是一个条件分布:即根据1,2,。。。i-1个词语,去预测第1个词语是什么

公式为:P(X_{i}:X_{1:i-1}) =softmax(Embedding(1:i-1))

那格局最大似然原理(通俗点讲就是,找到一个参数,是的概率最大),定义以下负对数似然目标函数:
O(\theta ) =\sum_{x\in D}-logP(x)= \sum_{x\in D}^{}\sum_{i\in L}^{L}-logP(X_{i}:X_{1:i-1})

1.2 Encoder-only模型

Decoder-only模型,它会产生(单向)上下文嵌入,更适合文本生成任务

Encoder-only模型,他是双向上下文嵌入,更适合分类任务

1.2.1 Bert 模型

BERT的目标函数,它包含以下两个部分:

  • 掩码语言模型(Masked language modeling)
  • 下一句预测(Next sentence prediction)

其中有两个特殊的token:

  • [CLS] :包含用于驱动分类任务的嵌入,即Next sentence prediction 任务
  • [SEP] :用于告诉模型区分第一个序列(例如,前提)与第二个序列(例如,假设)。
1.2.1.1 掩码语言模型

基本思想是通过加噪然后预测来进行训练:

[the,[MASK],ate,[MASK],cheese]   ⇒    [the,mouse,ate,the,cheese]
需要模型把[MASK]位置的词语给预测出来

噪声函数的定义:

  • 假设 I⊂{1,…,L} 代表所有位置中随机的15%。
  • 对于每个 i∈I,(x~i 代表需要mask的位置):
    • 以0.8的概率, x~i​←[MASK]
    • 以0.1的概率, x~i​←xi​
    • 以0.1的概率, x~i​←random word from V
1.2.2 RoBERTa

RoBERTa对BERT进行了以下改进:

  • 删除了下一句预测这一目标函数(发现它没有帮助)。
  • 使用更多数据训练(16GB文本 ⇒⇒ 160GB文本 )。
  • 训练时间更长。
  • RoBERTa在各种基准上显著提高了BERT的准确性(例如,在SQuAD上由81.8到89.4)。

1.3 Encoder-Decoder模型:

  • 首先像BERT一样对输入进行双向编码。
  • 然后像GPT-2一样对输出进行自回归解码。
1.3.1 BART(Bidirectional Auto-Regressive Transformers)

BART (Lewis et al. 2019)是基于Transformer的编码器-解码器模型。

  • 使用与RoBERTa相同的编码器架构(12层,隐藏维度1024)。
  • 使用与RoBERTa相同的数据进行训练(160GB文本)。

datawhale 大模型学习 第五章-模型训练_第1张图片

基于BERT的实验,最终模型进行以下了变换:

  • 掩码文档中30%的token
  • 将所有子句打乱

最后,通过微调,BART在分类和生成任务上都展示了强大的效果。

1.3.2 T5(Text-to-Text Tranfer Transformer)

训练过程:给定一段文本,在随机位置将其分割为输入和输出:

T= {the,mouse ,ate ,the ,cheese}
X1 = {the}   Y1 = {mouse,ate,the,cheese}
X2 = {the,mouse} Y2=  {ate,the,cheese}
X3 = {the ,mouse,ate} Y3= {the,cheese}
 

差异:

  • BERT使用 [CLS][CLS] 的嵌入来预测。
  • T5、GPT-2、GPT-3等(生成模型)将分类任务转换成自然语言生成。

二、大模型参数优化算法

2.1 随机梯度下降 (SGD)

datawhale 大模型学习 第五章-模型训练_第2张图片

2.2 Adam( adaptive moment estimation)

引入了一阶动量和二阶动量的概念

参数跟新过程:

datawhale 大模型学习 第五章-模型训练_第3张图片

说明:

学习率\alpha 
一阶指数移动平滑加权  m_{t}
二阶指数移动平滑加权  v_{t}
一阶指数移动加权衰减系数 \beta 1
二阶指数皮冻加权衰减系数 \beta 2

内存占用:
之前SGD训练时只需要保存 (\theta _{t},g_{t})  是模型参数的2倍
现在Adam训练要保存(\theta _{t},g_{t}m_{t},v_{t}) 是模型参数的4倍

2.3 混合半精度训练

datawhale 大模型学习 第五章-模型训练_第4张图片

简单理解就是:
训练的时候用F16,跟新模型参数的时候用F32

2.4 学习率

  • 训练过程中使用衰减学习率
  • 对于Tranformer模型,还需要增加一个(warmup)学习率

2.5 参数初始化

  • 给定矩阵W∈Rm×n ,标准初始化(即,xavier初始化)为 Wij​∼N(0,1/n) 。
  • GPT-2和GPT-3通过额外的 1/N​ 缩放权重,其中 N 是残差层的数量。
  • T5将注意力矩阵增加一个1/d​ (代码)。

以GPT-3为例,使用的参数如下:

  • Adam参数: 1=0.9,2=0.95,8β1​=0.9,β2​=0.95,ϵ=10−8
  • 批量小:320万个token(约1500个序列)
  • 使用梯度剪裁(t​←gt​/min(1,∥g∥2​) )
  • 线性学习率预热(前3.75亿个token)
  • 余弦学习率衰减到10%
  • 逐渐增加批大小
  • 权重衰减设为0.1

你可能感兴趣的:(学习,大模型)