1. 目标函数
1.1 只包含解码器(Decoder-only)的模型:
计算单向上下文嵌入(contextual embeddings),一次生成一个token。自回归语言模型算是一种常见的Decoder-only模型,自回归语言模型通过定义条件分布 p ( x i ∣ x 1 : i − 1 ) p(x_i|x_{1:i-1}) p(xi∣x1:i−1)来计算每一个token所出现的概率。同时可以利用最大似然法对于上述的定义的条件分布进行优化。
1.2只包含编码器(Encoder-only)的模型
计算双向上下文嵌入。具体以BERT模型为例,BERT模型的目标函数分为两个部分:掩码语言模型(Masked language modeling)、下一句预测(Next sentence prediction)。其主要思想是利用已经预设的加噪的实例句子对于下一句的连续性进行预测,BERT显示了深度双向上下文嵌入的重要性。RoBERTa对于BERT的目标函数、数据集大小以及训练时长上进行优化,结果显示。RoBERTa在各种基准上显著提高了BERT的准确性。
1.3编码器解码器(Encoder-decoder)
模型编码输入,解码输出。BART (Bidirectional Auto-Regressive Transformers)是基于Transformer的编码器-解码器模型。BART使用与RoBERTa相同的编码器架构(12层,隐藏维度1024)并且使用与RoBERTa相同的数据进行训练(160GB文本)。BART使用了变换 A ( x ~ 1 : L ∣ x 1 : L ) A(\tilde x_{1:L} \mid x_{1:L}) A(x~1:L∣x1:L)而且基于BERT进行以下微调:掩码文档中30%的token、将所有字句打乱。如此微调BART在分类和生成任务上都展示了强大的效果。T5是另一种基于Transformer的编码器-解码器模型。T5通过随机分割给定文本形成输入和输出,将分类任务转化为自然语言生成。
2. 优化算法
2.1随机梯度下降(SGD)
使用小批量进行随机梯度下降,希望参数可以快速收敛的同时优化在数值上是稳定的、模型内存是高效的。
2.2 Adam(adaptive moment estimation)
Adam在SGD的基础上通过引入动量并且赋予参数 θ 0 \theta_{0} θ0的每个维度都有一个自适应的步长,但是Adam将模型的内存扩大。
2.3 AdaFactor
AdaFactor是一种为减少存储占用的优化算法,其将模型中存储的矩阵形式转化为行和列的和 O ( m + n ) O(m+n) O(m+n)并重构矩阵,并且去除了动量。但是其缺点为回事训练变得十分困难。
2.4 混合精度训练
混合精度训练时另外一种减少存储的方法
2.5 学习率
一般情况下学习率会随着时间的推移而衰减,在Transformer模型中通过预热(warmup)来提高学习率。
2.6 初始化
通过对于不同的大语言模型的参数进行初始化可以大大提高模型的训练精度。
2.7 优化算法小结:
针对于不同领域的优化可以从几个层次进行:
- 针对经典优化:二阶方法、约束优化
- 针对机器学习:随即方法、隐式正则化+早停法
- 针对深度学习:初始化、归一化(更改模型架构)
- 针对大语言模型:利用学习率与进行优化具有一定的可行度,但大部分内容还是比较特殊。
总结
本次任务主要讨论关于大语言模型的模型结构,主要分为目标函数和优化算法两个方面的内容。
目标函数主要分为三类:
- 只包含解码器(Decoder-only)的模型:计算单向上下文嵌入(contextual embeddings),一次生成一个token。自回归语言模型算是一种常见的Decoder-only模型,自回归语言模型通过定义条件分布 p ( x i ∣ x 1 : i − 1 ) p(x_i|x_{1:i-1}) p(xi∣x1:i−1)来计算每一个token所出现的概率。同时可以利用最大似然法对于上述的定义的条件分布进行优化。
- 只包含编码器(Encoder-only)的模型:计算双向上下文嵌入。具体以BERT模型为例,BERT模型的目标函数分为两个部分:掩码语言模型(Masked language modeling)、下一句预测(Next sentence prediction)。其主要思想是利用已经预设的加噪的实例句子对于下一句的连续性进行预测,BERT显示了深度双向上下文嵌入的重要性。RoBERTa对于BERT的目标函数、数据集大小以及训练时长上进行优化,结果显示。RoBERTa在各种基准上显著提高了BERT的准确性。
- 编码器解码器(Encoder-decoder)模型:编码输入,解码输出。BART (Bidirectional Auto-Regressive Transformers)是基于Transformer的编码器-解码器模型。BART使用与RoBERTa相同的编码器架构(12层,隐藏维度1024)并且使用与RoBERTa相同的数据进行训练(160GB文本)。BART使用了变换 A ( x ~ 1 : L ∣ x 1 : L ) A(\tilde x_{1:L} \mid x_{1:L}) A(x~1:L∣x1:L)而且基于BERT进行以下微调:掩码文档中30%的token、将所有字句打乱。如此微调BART在分类和生成任务上都展示了强大的效果。T5是另一种基于Transformer的编码器-解码器模型。T5通过随机分割给定文本形成输入和输出,将分类任务转化为自然语言生成。
优化算法主要包含以下六个方面的内容:
- 随机梯度下降(SGD):使用小批量进行随机梯度下降,希望参数可以快速收敛的同时优化在数值上是稳定的、模型内存是高效的。
- Adam(adaptive moment estimation):Adam在SGD的基础上通过引入动量并且赋予参数 θ 0 \theta_{0} θ0的每个维度都有一个自适应的步长,但是Adam将模型的内存扩大。
- AdaFactor:AdaFactor是一种为减少存储占用的优化算法,其将模型中存储的矩阵形式转化为行和列的和 O ( m + n ) O(m+n) O(m+n)并重构矩阵,并且去除了动量。但是其缺点为回事训练变得十分困难。
- 混合精度训练:混合精度训练时另外一种减少存储的方法
- 学习率:一般情况下学习率会随着时间的推移而衰减,在Transformer模型中通过预热(warmup)来提高学习率。
- 初始化:通过对于不同的大语言模型的参数进行初始化可以大大提高模型的训练精度。
针对于不同领域的优化可以从几个层次进行:
- 针对经典优化:二阶方法、约束优化
- 针对机器学习:随即方法、隐式正则化+早停法
- 针对深度学习:初始化、归一化(更改模型架构)
- 针对大语言模型:利用学习率与进行优化具有一定的可行度,但大部分内容还是比较特殊。
参考资料
- so-large-llm 第六章:模型训练