【LLM系列之GLM】GLM: General Language Model Pretraining with Autoregressive Blank Infilling

14 篇文章 2 订阅
GLM是一种通用语言模型,结合自回归和完形填空预训练方法,适用于NLU和生成任务。通过改进的空白填充和二维位置编码,GLM在多个任务上超越了BERT、GPT和T5。此外,GLM支持多任务预训练,能处理不同长度和类型的跨度,展示出对不同下游任务的适应性。
摘要由CSDN通过智能技术生成
论文题目:《GLM: General Language Model Pretraining
with Autoregressive Blank Infilling》
论文链接:https://arxiv.org/pdf/2103.10360.pdf
github链接1:https://github.com/THUDM/GLM;
github链接2:https://github.com/THUDM/ChatGLM-6B
huggingface链接:https://huggingface.co/THUDM/chatglm-6b

摘要

目前,已经有各种类型的预训练架构,包括自编码模型(例如BERT),自回归模型(例如GPT)和编码器-解码器模型(例如T5)。然而,没有一个预训练框架对三个主要类别的所有任务(自然语言理解(NLU),无条件生成和有条件生成)都表现最佳。
本文主要贡献:

  • 提出了一种基于自回归空白填充的通用语言模型(GLM)来应对上述三种任务。
  • GLM通过添加2D位置编码并允许任意顺序预测跨度来改进空白填充预训练,从而在NLU任务上比BERT和T5获得了性能提升。
  • 通过变化空白数量和长度,可以针对不同类型的任务对GLM进行预训练。
  • 在跨NLU、有条件和无条件生成的广泛任务范围内,GLM在相同的模型大小和数据情况下优于BERT、T5和GPT,并且使用BERTLarge的1.25×参数的单个预训练模型实现了最佳性能,展示了其对不同下游任务的通用性。

1 GLM预训练


GLM 将 NLU 任务制定为包含任务描述的完形填空问题,这些问题可以通过自回归生成来回答。

1.1. 自回归空白填充

GLM通过优化自回归空白填充目标进行训练。

给定输入文本 x = [ x 1 , … , x n ] x =[ x_1, …, x_n ] x=[x1,,xn],对多个文本跨度 { s 1 , … , s m } \{ s_1, …, s_m \} {s1,,sm} 进行采样,其中每个跨度 s i s_i si对应于一系列连续的标记 [ s i , 1 ; … ; s i , l i ] [ s_i ,1;… ; s_i , li ] [si,1;;si,li]在x中。每个跨度都被单个 [MASK] 标记替换,形成损坏的文本xcorrupt。

上图意思是原文为[x1, x2, x3, x4, x5, x6]。两个跨度 [x3] 和 [x5; x6] 被采样。

模型通过自回归方式从损坏的文本中预测跨度中缺失的标记,这意味着当预测跨度中缺失的标记时,模型可以访问损坏的文本和之前预测的跨度。为了完全捕捉不同跨度之间的相互依赖关系,我们随机排列跨度的顺序,类似于置换语言模型

跨度的顺序是随机排列的,类似于排列语言模型 ( XLNet )。形式上,令Zm为长度为m 的索引序列 [1, 2, , …, m ] 的所有可能排列的集合,并且s_z < i为 [s_z1, …, s _ zi -1],预训练目标为定义为:


每个空格中的标记始终按照从左到右的顺序生成,即生成跨度si的概率被分解为:


输入x分为两部分:A 部分是损坏的文本xcorrupt,B 部分由屏蔽的 span组成。

GLM 自回归生成 B 部分。每个跨度都以 [S] 作为输入,并附加 [E] 作为输出。二维位置编码表示跨度间和跨度内位置。[M] := [掩码],[S] := [开始],[E] := [结束]


Self-Attention Mask矩阵:灰色区域被遮蔽了。A 部分文本可以关注它们自己(蓝框)但不能关注 B。B 部分文本可以关注 A 及其在 B 中的前文(黄色和绿色框对应于两个跨度)。[M] := [掩码],[S] := [开始],[E] := [结束]。

为了启用自回归生成,每个跨度都用特殊标记 [START] 和 [END] 填充,分别用于输入和输出。通过这种方式,GLM在统一模型中自动学习双向编码器(对于 A 部分)和单向解码器(对于 B 部分) 。

从λ =3的泊松分布中随机抽取长度跨度。新的跨度被重复采样,直到至少 15% 的原始标记被屏蔽。根据经验,15% 的比率对于下游 NLU 任务的良好性能至关重要。

1.2 多任务预训练

在前面的部分中,GLM掩蔽短跨度,并适用于NLU任务。然而,我们有兴趣预训练一个单一模型,可以处理NLU和文本生成。我们研究了一个多任务预训练设置,其中第二个目标是与空白填充目标联合优化的长文本生成任务。我们考虑以下两个目标:

• 文档级别。我们随机抽样一个跨度,其长度从原始长度的50%到100%的均匀分布中抽样。该目标旨在进行长文本生成。

• 句子级别。我们限制掩蔽跨度必须是完整的句子。我们随机抽样多个跨度(句子)以覆盖15%的原始令牌。此目标旨在进行序列到序列任务,其预测通常为完整的句子或段落。

这两个新目标与原始目标相同,即Eq.1。唯一的区别在于跨度数量和跨度长度。

2 GLM模型架构

2.1 模型结构

GLM 使用单个Transformer ,并对架构进行了多项修改:
(1)Layer Normalization的顺序和残差连接被重新排列,这已被证明对于大规模语言模型避免数值错误至关重要(如Megatron-LM),之前应该是先残差,后层归一化

(2)用于输出标记预测的单个线性层;

(3) ReLU s替换为GELU s

ReLU 确定性地将输入乘以零或一,而Dropout随机地乘以零。

对GELU具体来说,神经元输入x可以乘以m~Bernoulli(Φ(x)),其中Φ(x) = P(X≤x);X~ N (0, 1)是标准正态分布的累积分布函数。选择此分布是因为神经元输入倾向于遵循正态分布,尤其是使用批归一化时。由于高斯的累积分布函数通常使用误差函数 计算,因此高斯误差线性单位 (GELU)定义为:

上面公式近似于:


GELU 非线性通过它们的值加权输入,而不是像 ReLU 中那样通过它们的符号来门控输入。 在所有考虑的计算机视觉、自然语言处理和语音任务中都获得了效果改进。

2.2. 二维位置编码

给定Input=[x1,x2,x3,x3,x5,x6],然后采样m个 spans。
把被采样的部分mask掉,得到Part A。
random 被采样的 spans,得到 PartB。
把PartA与PartB拼接成一个sequence,Part A部分采用双向注意力,PartB部分采样自回归预测。为了能够自回归生成,padded 【start】和【end】。

  • 每个令牌都用两个位置 ids编码。
  • 第一个位置 id 表示损坏的文本xcorrupt中的位置。对于掩码跨度,它是相应 [MASK] 令牌的位置。
  • 第二个位置 id 表示跨度内位置
  • 对于 A 部分中的字符,它们的第二个位置 id 为 0。对于 B 部分中的标记,它们的范围从 1 到跨度的长度。
  • 这两个位置 id通过可学习的嵌入表投影到两个向量中,这两个向量都被添加到输入标记嵌入中。

2.3. 微调GLM


使用 GLM 将情感分类任务制定为空白填充。
通常,对于下游 NLU 任务,会在模型之上添加线性分类器,从而导致预训练和微调之间的不一致。
在这里,NLU 分类任务被重新表述为空白填充的生成任务,如上所述。
具体来说,给定一个带标签的示例 ( x , y ),输入文本x通过包含单个掩码标记的模式转换为完形填空问题c ( x ) 。
给定x预测y 的条件概率为:

如图中的示例,标签“positive”和“negative”映射到单词“good”和“bad”。在这种情况下,GLM 使用交叉熵损失进行了微调。

3 实验结果

3.1 SuperGLUE

预训练的 GLM 模型针对每个任务进行了微调。
GLM在大多数具有基础架构或大型架构的任务上始终优于BERT。平均而言,GLMBase 得分比BERT Base 高 4.6%,GLMLarge 得分比BERT Large 高 5.0%。

  • 在RoBERTa Large的设置中,GLM RoBERTa仍然可以在 baselines 上实现改进,但 margin 较小。
  • 具体来说,GLM RoBERTa优于T5 Large,但只有它的一半大小。
  • 在多任务预训练中,在一个训练批次中,短跨度和长跨度(文档级或句子级)的采样机会均等。
    GLMDoc 和 GLMSent 的性能略低于 GLMLarge,但仍优于BERT Large 和UniLM Large。在多任务模型中, GLMSent平均比GLMDoc 高出1.1%。

3.2. 序列到序列


GLM RoBERTa可以实现匹配Seq2Seq BART模型的性能,并且优于T5和UniLMv2。


表 3 和表 4:GLMLarge 可以在二次生成任务上实现与其他预训练模型相匹配的性能。GLMSent 的性能优于 GLMLarge,而 GLMDoc 的性能略低于 GLMLarge。

3.3. 文字填充

表 5:GLM 大大优于以前的方法(1.3 到 3.9 BLEU),并在此数据集上取得了最先进的结果。

3.4. 语言建模

图 4:所有模型都在零样本设置中进行评估。
将模型的参数增加到 410M(GPT Large 的 1.25)导致性能接近GPT Large。
GLM515M ( GPT Large的 1.5 )可以进一步超越GPT Large。

4 结论

GLM是一种用于自然语言理解和生成的通用预训练框架。论文展示了NLU任务可以被形式化为条件生成任务,因此可以由自回归模型解决。GLM将不同任务的预训练目标统一为自回归空白填充,具有混合的注意力掩码和新颖的二维位置编码。我们的实验证明GLM在NLU任务中优于先前的方法,并且可以有效地共享参数以用于不同的任务。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值