前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【LLM系列之GLM】GLM: General Language Model Pretraining with Autoregressive Blank Infilling

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

作者头像
致Great
发布2023-08-25 14:49:05
1.2K0
发布2023-08-25 14:49:05
举报
文章被收录于专栏:程序生活程序生活
代码语言:javascript
复制
论文题目:《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 ]

,对多个文本跨度

\{ s_1, …, s_m \}

进行采样,其中每个跨度

s_i

对应于一系列连续的标记

[ s_i ,1;… ; s_i , 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任务中优于先前的方法,并且可以有效地共享参数以用于不同的任务。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • 1 GLM预训练
    • 1.1. 自回归空白填充
      • 1.2 多任务预训练
      • 2 GLM模型架构
        • 2.1 模型结构
          • 2.2. 二维位置编码
            • 2.3. 微调GLM
            • 3 实验结果
              • 3.1 SuperGLUE
                • 3.2. 序列到序列
                  • 3.3. 文字填充
                    • 3.4. 语言建模
                      • 4 结论
                      相关产品与服务
                      NLP 服务
                      NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档