添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
想旅行的松球  ·  什么是m3u8格式? ...·  1 年前    · 
逼格高的仙人掌  ·  qt - How to style the ...·  1 年前    · 
GLM: 自回归空白填充的通用语言模型预训练

GLM: 自回归空白填充的通用语言模型预训练

原文: GLM: General Language Model Pretraining with Autoregressive Blank Infilling

作者: Zhengxiao Du∗1,2 Yujie Qian∗3 Xiao Liu1,2 Ming Ding1,2

代码: github.com/THUDM/GLM-13

一、简介
二、GLM预训练框架
---- 2.1 训练前的目标
------------ 2.1.1 自回归的空白填充
------------ 2.1.2 多任务预训练
------------ 2.2.1 二维位置编码
---- 2.3 微调GLM
---- 2.4 讨论和分析
三、实验
---- 3.1 预训练设置
---- 3.2 超级GLUE
---- 3.3 多任务预训练
---- 3.4 消融研究
四、相关工作
五、结论

一、简介

已经有各种类型的预训练架构,包括自编码模型(如BERT),自回归模型(如GPT),以及编码器-解码器模型(如T5)。然而,没有一个预训练框架对包括自然语言理解(NLU)、无条件生成和有条件生成在内的三个主要类别的所有任务表现最好。我们提出了一个基于自回归空白填充的通用语言模型(GLM)来解决这一挑战。GLM通过增加二维位置编码和允许任意顺序预测跨度来改进空白填充预训练,这使得NLU任务上的性能比BERT和T5有所提高。同时,GLM可以通过改变空白的数量和长度对不同类型的任务进行预训练。在横跨NLU、条件和无条件生成的广泛任务上,GLM在相同的模型大小和数据条件下优于BERT、T5和GPT,并从单一预训练模型中获得了BERTLarge的1.25个参数的最佳性能,证明了其对不同下游任务的通用性。

在无标签文本上预训练语言模型大大推进了各种NLP任务的技术水平,从自然语言理解(NLU)到文本生成(Radford等人,2018a;Devlin等人,2019;Yang等人,2019;Radford等人,2018b;Raffel等人,2020;刘易斯等人,2019;布朗等人,2020)。在过去的几年里,下游的任务表现以及参数的规模也不断增加。

一般来说,现有的预训练框架可以分为三个系列:自回归、自编码和编码器-解码器模型。自回归模型,如GPT(Radford等人,2018a),学习从左到右的语言模型。虽然它们在长文生成方面很成功,并且在扩展到数十亿个参数时显示出少许的学习能力(Radford等人,2018b;Brown等人,2020),但其固有的缺点是单向的注意力机制,不能完全捕捉NLU任务中上下文词之间的依赖关系。自编码模型,如BERT(Devlin等人,2019年),通过降噪目标学习双向上下文编码器,如mask语言模型(MLM)。编码器产生适合自然语言理解任务的上下文表示,但不能直接应用于文本生成。编码器-解码器模型对编码器采用双向注意,对解码器采用单向注意,以及它们之间的交叉注意力(Song等人,2019;Bi等人,2020;Lewis等人,2019)。它们通常被部署在条件生成任务中,如文本摘要和回应生成。T5(Raffel等人,2020)通过编码器-解码器模型统一了NLU和条件生成,但需要更多的参数来匹配基于BRET的模型的性能,如RoBERTa(刘等人,2019)和DeBERTa(何等人,2021)。

这些预训练框架都不够灵活,无法在所有的NLP任务中发挥竞争优势。以前的工作曾试图通过多任务学习将不同的框架的目标结合起来,从而实现统一(Dong等人,2019;Bao等人,2020)。然而,由于自编码和自回归目标的性质不同,简单的统一不能完全继承两个框架的优势。

在本文中,我们提出了一个名为GLM(通用语言模型)的预训练框架,基于自回归空白填充。我们按照自编码的思路,从输入文本中随机地空白出连续的跨度的token,并按照自回归预训练的思路,训练模型来依次重建这些跨度(见图1)。虽然空白填充已经在T5(Raffel等人,2020)中用于文本到文本的预训练,但我们提出了两项改进,即跨度打乱和2D位置编码。经验表明,在参数量和计算成本相同的情况下,GLM在SuperGLUE基准上以4.6%-5.0%的较大优势明显优于BERT,并且在对类似大小的语料库(158GB)进行预训练时,GLM优于RoBERTa和BART。在参数和数据较少的NLU和生成任务上,GLM也明显优于T5。

图1: GLM的插图。我们把文本跨度(绿色部分)清空,并以自回归方式生成。(一些注意的边缘被省略了;参考图2)。

受Pattern-Exploiting Training(PET)(Schick和Schütze,2020a)的启发,我们将NLU任务重新表述为模仿人类语言的手工编制的cloze问题。与PET使用的基于BERT的模型不同,GLM可以通过自回归填空自然地处理对cloze问题的多token答案。

此外,我们表明,通过改变缺失跨度的数量和长度,自回归填空目标可以为有条件和无条件的生成预训练语言模型。通过对不同预训练目标的多任务学习,单一的GLM可以在NLU和(有条件和无条件的)文本生成方面表现出色。根据经验,与独立的基线相比,具有多任务预训练的GLM通过共享参数,在无法律约束力、有条件文本生成和语言模型任务中都取得了改进。

二、GLM预训练框架

我们提出了一个通用的预训练框架GLM,它基于一个新颖的自回归空白填充目标。GLM将NLU任务制定为包含任务描述的cloze问题,这些问题可以通过自回归生成来回答。

2.1 训练前的目标

2.1.1 自回归的空白填充

GLM是通过优化自回归空白填充目标来训练的。给定一个输入文本x = [x1, , xn],多个文本跨度 { s1, .., sm}被采样,其中每个跨度si对应于x中一系列连续的token[si,1, , si,li]。 该模型以自回归的方式预测被破坏的文本中缺少的token,这意味着当预测一个跨度中缺少的token时,该模型可以访问被破坏的文本和以前预测的跨度。为了充分捕捉不同跨度之间的相互依存关系,我们随机排列跨度的顺序,类似于排列语言模型(Yang等人,2019)。形式上,让Zm是长度为m的索引序列[1, 2, , m]的所有可能的排序的集合,sz<i是[sz1, , szi·1],我们定义预训练目标为

我们总是按照从左到右的顺序生成每个空白处的标记,也就是说,生成跨度si的概率被分解为:

我们通过以下技术实现自回归空白填补目标。输入的x被分为两部分。A部分是被破坏的文本x_corrupt,B部分由被mask的跨度组成。A部分的token可以互相照应,但不能照应B部分的任何token;B部分的token可以照应A部分和B部分的前因,但不能照应B部分的任何后续token。为了使自回归生成,每个跨度都用特殊token[START]和[END]填充,用于输入和输出,在这种方式下,我们的模型自动学习一个双向编码器和一个单向解码器在一个统一的模型中。GLM的实现方式见图2。

图2:GLM预训练,原始text是x1到x6,2个跨度x3和x5,x6被采样,A部分替换采样的跨度为M,B部分打乱跨度,GLM自回归的方式生成B部分,每个跨度预先使用S和E包围,2D的位置编码表示跨度内和跨度间位置,自注意力mask,灰色部分,A部分的token可以互相关注,B部分不可以,B部分可以注意A和B的前因。

我们随机对跨度的长度采样,采样分布属于泊松分布,其中 λ =3,直到至少15%的原始token被mask。根据经验,我们发现,15%的比例对于下游NLU任务的良好表现至关重要。

2.1.2 多任务预训练

在上一节中,GLM掩盖了短跨度,适用于NLU任务。然而,我们对预训练一个能同时处理NLU和文本生成的单一模型感兴趣。然后,我们研究了一个多任务预训练的设置,在这个设置中,生成较长文本的第二个目标与空白填充目标共同优化。我们考虑以下两个目标。

- 文档级。 我们对单一跨度进行采样,其长度从原始长度的50%-100%的均匀分布中抽出。该目标旨在生成长文本。

- 句子层面。 我们限制被mask的跨度必须是完整的句子。多个跨度(句子)被取样,以覆盖15%的原始token。这一目标是针对seq2seq任务,其预测往往是完整的句子或段落。

这两个新目标的定义与原目标相同,即公式1。唯一不同的是的跨度数量和跨度长度。

2.2 模型结构

GLM使用单一的Transformer,并对架构进行了一些修改:(1)我们重新安排了层的归一化和残差连接的顺序,这已被证明对大规模语言模型避免数字错误至关重要(Shoeybi等人,2019);(2)我们使用单一的线性层进行输出token预测;(3)我们用GeLU替换ReLU激活函数(Hendrycks和Gimpel,2016)。

2.2.1 二维位置编码

自回归空白填充任务的挑战之一是如何对位置信息进行编码。transformer依靠位置编码来注入token的绝对和相对位置。我们提出了二维位置编码来解决这一挑战。具体来说,每个token都有两个位置标识编码。第一个位置标识代表在被破坏文本x_corrupt中的位置。对于被mask的跨度,它是相应的[MASK] token的位置。第二个位置标识 代表跨度内的位置 。对于A部分的token,它们的第二个位置标识是0;对于B部分的token,它们的跨度是从1到跨度的长度。这两个位置标识通过可学习的嵌入表被投射到两个向量中,这两个向量都被添加到输入的token嵌入中。

我们的编码方法确保了模型在重建时不知道被mask的跨度的长度。与其他模型相比,这是一个重要的区别。例如,XLNet(Yang等人,2019年)对原始位置进行编码,以便它能感知缺失的token数量,SpanBERT(Joshi等人,2020年)用多个[MASK]token替换跨度并保持长度不变。我们的设计适合下游任务,因为通常生成文本的长度事先是未知的。

2.3 微调GLM

通常,对于下游的NLU任务,线性分类器将预训练模型产生的序列或标注的表示作为输入,并预测出正确的标签。这些做法与生成性预训练任务不同,导致预训练和微调之间的不一致。

相反,我们按照PET(Schick和Schütze,2020a),将NLU分类任务重新表述为空白填充的生成任务。具体来说,给定一个标注的例子(x,y),我们通过一个包含单一mask标注的模式将输入文本x转换成一个填空题c(x)。该模式是用自然语言编写的,以代表任务的语义。例如,一个情感分类任务可以被表述为"{SENTENCE}. 这确实是[MASK]"。候选标签y是∈Y也被映射为cloze的答案,称为verbalizer v(y)。在情感分类中,"正面 "和 "负面 "的标签被映射到 "好 "和 "坏 "的词上。给定x,预测y的条件概率为

其中是标签集。 因此,该句子是正面或负面的概率Y与预测空白处的 "好 "或 "坏 "成正比。然后我们用交叉熵损失对GLM进行微调(见图3)。

图3: 将情感分类任务表述为用GLM填补空白。

对于文本生成任务,给定的上下文构成了输入的A部分,并在最后附加了一个masktoken。该模型以自回归方式生成B部分的文本。我们可以直接将预训练的GLM用于无条件生成,或者在下游的条件生成任务中对其进行微调。

2.4 讨论和分析

在这一节中,我们讨论GLM和其他预训练模型之间的区别。我们主要关注的是如何将它们适应于下游的空白填充任务。

与BERT(Devlin等人,2019)比较。 正如(Yang et al., 2019)所指出的,由于MLM的独立性假设,BERT无法捕捉到被masked的token的相互依赖性。BERT的另一个缺点是,它不能正确填补多个token的空白。为了推理长度为l的答案的概率,BERT需要连续进行l次预测。如果长度l未知,我们可能需要列举所有可能的长度,因为BERT需要根据长度来改变[MASK]token的数量。

与XLNet(Yang等人,2019)比较。 GLM和XLNet都是用自回归目标进行预训练,但它们之间有两个区别。首先,XLNet在损坏前使用原始位置编码。在推理过程中,我们需要知道或列举出答案的长度,这与BERT的问题相同。第二,XLNet使用了双流的self-attention机制,而不是右移,以避免Transformer内部的信息泄露。这使预训练的时间成本增加了一倍。

与T5比较(Raffel等人,2020)。 T5提出了一个类似的空白填充目标,以预训练一个编码器-解码器transformer。T5对编码器和解码器使用独立的位置编码,并依靠多个占位token来区分被mask的跨度。在下游任务中,只使用其中一个占位token,导致模型容量的浪费以及预训练和微调之间的不一致。此外,T5总是以固定的从左到右的顺序预测跨度。因此,如第3.2和3.3节所述,在参数和数据较少的情况下,GLM在NLU和seq2seq任务上的表现可以明显优于T5。

与UniLM(Dong等人,2019)比较。 UniLM在自编码框架下,通过在双向、单向和交叉注意力中改变注意力mask,结合了不同的预训练目标。然而,UniLM总是用[MASK]token替换被masked的跨度,这限制了它对被masked的跨度和它们的上下文之间的依赖关系进行建模的能力。GLM输入前一个token并自动生成下一个token。在下游生成任务上对UniLM进行微调,也依赖于mask的语言模型,其效率较低。UniLMv2(Bao等人,2020)对生成任务采用了部分自回归建模,同时对NLU任务采用自编码目标。相反,GLM将NLU和生成任务与自回归预训练统一起来。

三、实验

现在我们描述一下我们的预训练设置和对下游任务的评估。

3.1 预训练设置

为了与BERT(Devlin等人,2019)进行公平的比较,我们使用BooksCorpus(Zhu等人,2015)和英语维基百科作为我们的预训练数据。我们使用BERT的不加引号的词条tokenizer,单词表量为30k。我们用与BERTBase和BERTLarge相同的架构来训练GLMBase和GLMLarge,分别包含110M和340M的参数。

对于多任务预训练,我们用空白填充目标和文档级或句子级目标的混合训练两个Largesized模型,表示为GLMDoc和GLMSent。此外,我们还训练了两个较大的GLM模型,分别为410M(30层,隐藏层大小1024,16个注意力头)和515M(30层,隐藏层大小1152,18个注意力头)参数的文档级多任务预训练,记为GLM410M和GLM515M。

为了与SOTA模型进行比较,我们还用与RoBERTa(Liu等人,2019)相同的数据、tokenization和超参数来训练一个Large-size模型,表示为GLMRoBERTa。由于资源限制,我们只对模型进行了25万步的预训练,这是RoBERTa和BART训练步骤的一半,在训练的token数量上接近T5。更多的实验细节可以在附录A中找到。

3.2 SuperGLUE

为了评估我们预训练的GLM模型,我们在SuperGLUE基准(Wang等人,2019)上进行了实验,并报告了标准指标。SuperGLUE由8个具有挑战性的NLU任务组成。我们按照PET(Schick和Schütze,2020b)的方法,将分类任务重新表述为用人类精心设计的cloze问题填补空白。然后,如第2.3节所述,我们对每个任务的预训练的GLM模型进行微调。完形填空问题和其他细节可以在附录B.1中找到。

为了与GLMBase和GLMLarge进行公平的比较,我们选择BERTBase和BERTLarge作为我们的基线,它们在相同的语料库上进行了预训练,并且时间相近。我们报告了标准微调的性能(即对[CLS]token表示法的分类)。第3.4节报告了BERT与cloze问题的性能。为了与GLM RoBERTa进行比较,我们选择T5、BARTLarge和RoBERTa Large作为我们的基线。T5在参数量上与BERTLarge没有直接的匹配,所以我们同时展示了T5Base(220M参数)和T5Large(770M参数)的结果。所有其他的基线都与BERTLarge的规模相似。

表1显示了结果。 在相同的训练数据量下,GLM在大多数任务中的基础或大型架构上始终优于BERT。唯一的例外是WiC(词义歧义)。平均而言,GLMBase的得分比BERTBase高4.6%,GLMLarge的得分比BERTLarge高5.0%。这清楚地表明了我们的方法在NLU任务中的优势。在RoBERTa Large的设置中,GLM RoBERTa仍然可以实现对基线的改进,但幅度较小。具体来说,GLM RoBERTa优于T5Large,但规模只有其一半。我们还发现,BART在具有挑战性的SuperGLUE基准上表现不佳。我们猜测这可能是由于编码器-解码器架构的低参数效率和降噪的序列对序列目标造成的。

表1: SuperGLUE测试集上的结果。

3.3 多任务预训练

然后我们评估GLM在多任务设置中的表现(第2.1节)。在一个训练批次中,我们以相同的机会对短跨度和长跨度(文档级或句子级)进行采样。我们对多任务模型进行评估,包括NLU、seq2seq、空白填充和zero-shot语言模型。

SuperGLUE。 对于NLU任务,我们在SuperGLUE基准上评估模型。结果也显示在表1中。我们观察到,在多任务预训练中,GLMDoc和GLMSent的表现比GLMLarge略差,但仍然优于BERTLarge和UniLMLarge。在多任务模型中,GLMSent的表现平均比GLMDoc好1.1%。将GLMDoc的参数增加到410M(1.25 BERTLarge)会导致比GLMLarge更好的×性能。具有515M参数(1.5 BERTLarge)的GLM可以表现得更好。

seq2seq。 考虑到现有的基线结果,我们使用Gigaword数据集(Rush等人,2015年)进行抽象概括,使用SQuAD 1.1数据集(Rajpurkar等人,2016年)进行问题生成(Du等人,2017年)作为在BookCorpus和Wikipedia上预训练的模型的基准。此外,我们使用CNN/DailyMail(See等人,2017)和XSum(Narayan等人,2018)数据集进行抽象化总结,作为在更大的语料库上预训练的模型的基准。

在BookCorpus和Wikipedia上训练的模型的结果显示在表3和表4。我们观察到,GLMLarge可以在这两个生成任务上取得与其他预训练模型相匹配的性能。GLMSent可以比GLMLarge表现得更好,而GLMDoc的表现比GLMLarge略差。这表明文档级的目标,即教导模型扩展给定的上下文,对条件生成的帮助较小,而条件生成的目的是从上下文中提取有用信息。将GLMDoc的参数增加到410M,在这两项任务上都能获得最佳性能。在较大的语料库上训练的模型的结果见表2。GLM RoBERTa可以达到与seq2seq BART模型相匹配的性能,并且超过了T5和UniLMv2。

表2: 在CNN/DailyMail和XSum测试集上的抽象化总结结果。
表5:雅虎文本填充的BLEU分数。 表示来自(Shen等人,2020)的结果。
表4: 关于SQuAD问题生成的结果。
表3: 关于Gigaword总结的结果。

文本填充。 文本填充是根据 周围上下文预测缺失的文本跨度(Zhu等人,2019;Donahue等人,2020;Shen等人,2020) GLM是用自回归空白填充目标训练的,因此可以直接解决这个任务。我们在雅虎答案数据集(Yang等人,2017)上评估了GLM,并与空白语言模型(BLM)(Shen等人,2020)进行了比较,后者是专门为文本填充设计的模型。从表5的结果来看,GLM以较大的优势(1.3到3.9 BLEU)超过了以前的方法,在这个数据集上取得了最先进的结果。我们注意到,GLMDoc的表现略逊于GLMLarge,这与我们在seq2seq实验中的观察结果一致。

语言模型。 大多数语言模型数据集,如WikiText103,是由维基百科文档构建的,而我们的预训练数据集已经包含了这些文档。因此,我们在预训练数据集的一个测试集上评估语言模型的困惑,该测试集包含大约2000万个token,表示为BookWiki。我们还在LAMBADA数据集(Paperno等人,2016)上评估了GLM,该数据集测试了系统对文本中长距离依赖关系的建模能力。其任务是预测一段话的最后一个字。作为基线,我们用与GLMLarge相同的数据和tokenization来训练一个GPTLarge模型(Radford等人,2018b;Brown等人,2020)。

结果显示在图4中。 所有的模型都是在zero-shot的情况下进行评估的。由于GLM学习的是双向注意力,我们也在上下文被双向注意编码的情况下评估GLM。在预训练期间没有生成目标,GLMLarge不能完成语言模型任务,困惑度大于100。在参数量相同的情况下,GLMDoc的表现比GPTLarge差。这是预期的,因为GLMDoc也优化了空白填充目标。将模型的参数增加到410M(1.25 × GPTLarge)导致性能接近GPTLarge。GLM515M(GPTLarge的1.5)可以进一步超过GPTLarge。在参数量相同的情况下,用双向注意力对上下文进行编码可以提高语言模型的性能。在这种设定下,GLM410M的性能优于GPTLarge。这就是GLM相对于单向GPT的优势。我们还研究了二维位置编码对长文本生成的贡献。我们发现,去除二维位置编码会导致语言模型的准确率降低和复杂度提高。

图4: zero-shot语言模型结果。

总结: 最重要的是,我们得出结论,GLM在自然语言理解和生成任务中有效地共享模型参数,比独立的BERT、编码器-解码器或GPT模型取得更好的性能。

3.4 消融研究

表6显示了我们对GLM的消融分析。 首先,为了提供与BERT的比较,我们用我们的实现、数据和超参数训练了一个BERTLarge模型(第2行)。其性能比官方的BERTLarge略差,比GLMLarge明显差。它证实了GLM在NLU任务上比Masked LM预训练的优越性。其次,我们展示了作为序列分类器的GLM微调的SuperGLUE性能(第5行)和带有cloze-style微调的BERT(第3行)。与BERT的cloze式微调相比,GLM得益于自回归预训练。特别是在ReCoRD和WSC上,verbalizer由多个token组成,GLM一直优于BERT。这证明了GLM在处理可变长度的空白方面的优势。另一个观察结果是,cloze表述对于GLM在NLU任务中的表现至关重要。对于大型模型,cloze-style的微调可以提高7个点的性能。最后,我们用不同的预训练设计来比较GLM的变体,以了解其重要性。第6行显示,去除跨度打乱(总是从左到右预测被mask的跨度)会导致SuperGLUE的性能严重下降。第7行使用不同的占位token,而不是单一的[MASK]token来代表不同的masked跨度。该模型的表现比标准GLM更差。我们假设,它浪费了一些建模能力来学习不同的占位token,而这些占位token在只有一个空白的下游任务中没有使用。在图4中,我们显示,去除二维位置编码的第二维,损害了长文本生成的性能。

表6: 对SuperGLUE测试集的消融研究。(T5 GLM - 打乱跨度+占位token。)

我们注意到,T5是以类似的空白填充目标进行预训练的。GLM在三个方面有所不同:(1)GLM由一个编码器组成,(2)GLM对mask的跨度进行打乱,以及(3)GLM使用一个[MASK]而不是多个占位token。虽然由于训练数据和参数量的不同,我们不能直接比较GLM和T5,但表1和表6的结果已经证明了GLM的优势。

四、相关工作

预训练语言模型。 预训练大规模的语言模型可以显著提高下游任务的性能。有三种类型的预训练模型。首先,自编码模型通过降噪目标学习双向上下文编码器,用于自然语言理解(Devlin等人,2019;Joshi等人,2020;Yang等人,2019;Liu等人,2019;Lan等人,2020;Clark等人,2020)。第二,自回归模型的训练是以从左到右的语言模型为目标(Radford等人,2018a,b;Brown等人,2020)。第三,编码器-解码器模型针对seq2seq的任务进行预训练(Song等人,2019;Lewis等人,2019;Bi等人,2020;Zhang等人,2020)。

在编码器-解码器模型中,BART(Lewis等人,2019)通过向编码器和解码器输入相同的输入,并采取解码器的最终隐藏状态来进行NLU任务。相反,T5(Raffel等人,2020)在文本到文本框架中制定了大多数语言任务。然而,这两个模型都需要更多的参数来超越自编码模型,如RoBERTa(Liu等人,2019)。UniLM(Dong等人,2019年;Bao等人,2020年)在masked的语言模型目标下统一了三个预训练模型,有不同的注意力masked。

NLU作为生成。 此前,预训练语言模型通过对所学表示的线性分类器完成NLU的分类任务。GPT-2(Radford等人,2018b)和GPT-3(Brown等人,2020)表明,生成式语言模型可以通过直接预测正确答案而不进行微调来完成NLU任务,如问答,给定任务 表明或一些标注的例子。然而,由于单向注意力的限制,生成式模型需要更多的参数来工作。最近,PET(Schick和Schütze,2020a,b)提出将输入的例子重新表述为cloze问题,其模式与预训练语料库中的few-shot相似。研究表明,与基于梯度的微调相结合,PET在几张照片的设置中可以达到比GPT-3更好的性能,而只需要0.1%的参数。同样,Athiwaratkun等人(2020)和Paolini等人(2020)将结构化预测任务,如序列标注和关系抽取,转换为序列生成任务。

空白语言模型。 Donahue等人(2020)和Shen等人(2020)也研究了空白填充模型。与他们的工作不同,我们用空白填充目标预训练语言模型,并评估它们在下游NLU和生成任务中的表现。

五、结论

GLM是一个用于自然语言理解和生成的通用预训练框架。我们表明,NLU任务可以被表述为条件生成任务,因此可以通过自回归模型来解决。GLM将不同任务的预训练目标统一为自回归空白填充、混合注意力mask和新的二维位置编码。经验表明,GLM在NLU任务中的表现优于以前的方法,并且可以有效地共享不同任务的参数。

附录

一、数据集

为了训练GLMBase和GLMLarge,我们使用BookCorpus(Zhu等人,2015)和BERT(Devlin等人,2019)使用的维基百科。

为了训练GLMRoBERTa,我们遵循RoBERTa(Liu等人,2019)的预训练数据集,其中包括BookCorups(Zhu等人。2015)、维基百科(16GB)、CC-新闻(CommonCrawl新闻数据集3的英文部分,76GB)、OpenWebText(从Reddit上分享的至少有三个upvotes的URL中提取的网络内容(Gokaslan和Cohen,2019),38GB)和Stories(CommonCrawl数据的子集,经过过滤以符合Winograd模式的故事风格(Trinh和Le,2019),31GB)。Stories数据集已不再公开提供。因此,我们删除了Stories数据集,用OpenWebText25(66GB)取代OpenWebText。CC-新闻数据集已不公开,我们使用Mackenzie等人发布的CC-新闻-en(2020)。所有使用的数据集共有158GB的未压缩文本,与RoBERTa的160GB数据集大小接近。

二、超参数

GLMBase和GLMLarge的超参数与BERT使用的参数相似。 为了权衡训练速度和与BERT的公平比较(批次大小为256,训练步数为1,000,000),我们对GLMLarge使用批次大小为1024,训练步数为20万。由于GLMBase较小,我们将训练步数减少到120,000步,以加快预训练速度。GLMDoc和GLMSent的超参数与GLMLarge的参数相同。除了GLM410M和GLM515M的Transformer架构外,其他的超参数与GLMLarge相同。这些模型在64个V100 GPU上进行了200K步的训练,批次大小为1024,最大序列长度为512,这对GLMLarge来说需要2.5天。

包括。 (1) 由于资源限制,我们只对GLM RoBERTa进行了250,000步的预训练,这是RoBERTa和BART训练步数的一半,在训练token的数量上接近T5。 (2) 我们使用余弦衰减而不是线性衰减来进行学习率调度 (3) 我们额外应用梯度剪切,值为1.0。

表7中总结了所有预训练设置的超参数。

表7: 预训练的超参数

三、实施

我们的预训练实现是基于Megatron-LM(Shoeybi等人,2019)和DeepSpeed(Rasley等人,2020)。我们在补充材料中包括我们的代码。由于补充材料的大小限制,我们不能包括预训练的模型,但将来会把它们公开。

四 下游任务

4.1、SuperGLUE

SuperGLUE基准由8个NLU任务组成。 我们按照(Schick and Schütze, 2020b)将它们制定为填空任务。表8显示了我们在实验中使用的填空题和口头语。对于3个任务(ReCoRD、COPA和WSC),答案可能由多个token组成,而对于其他5个任务,答案总是一个token。

在对SuperGLUE任务的GLM进行微调时,我们使用表8中的cloze问题来构建输入,并用[MASK]token来替换空白部分。然后,我们计算生成每个候选答案的分数。对于5个单token任务,分数被定义为verbalizerstoken的对数值。对于3个多token任务,我们使用verbalizertoken的对数概率之和。由于我们提出的自回归空白填充机制,我们可以一次性获得所有对数概率。然后,我们使用真实标签计算交叉熵损失并更新模型参数。

对于基线分类器,我们遵循标准的做法,将每个任务的输入部分(如文本含意的前提和假设,或ReCORD和MultiRC的段落、问题和答案)拼接起来,并在[CLS]token表示之上添加一个分类层。我们还对其他预训练的模型实施了cloze-style微调,但性能通常与标准分类器相似,正如我们在消融研究中所显示的。以填补空白为目标的模型,如T5和我们的GLM,从将NLU任务转换为cloze问题中获益更多。因此,对于T5和GLM,我们在主要结果中报告了这种转换后的性能。

表 8:在我们的实验中使用的8个SuperGLUE任务的Cloze问题和verbalizers。 表示答案包含多个tokens。

4.2 序列到序列

对于文本摘要任务,我们使用数据集Gigaword(Rush等人,2015)来进行模型微调和评估。我们在训练集上用AdamW优化器对GLMLARGE进行了4个epoch的微调。学习率的峰值为3e-5,在6%的训练步骤中进行预热,并有线性衰减。我们还使用标签平滑率为0.1(Pereyra等人,2017)。最大文档长度为192,最大摘要长度为32。在解码过程中,我们使用beam search,beam大小为5,并删除重复的三叉星。我们对开发集的长度惩罚值进行了调整。评估指标是Rouge-1、Rouge-2和Rouge-L(Lin,2004)在测试集上的F1 Score。

对于问题生成任务,我们使用SQuAD 1.1数据集(Rajpurkar等人,2016)并遵循(Du等人,2017)的数据集分割。优化器的超参数与抽象概括的参数相同。最大段落长度为464,最大问题长度为48。在解码过程中,我们使用beam大小为5的beam search,并对开发集的长度惩罚值进行调整。评估指标是BLEU-1、BLEU-2、BLEU-3、BLEU4(Papineni等人,2002)、METEOR(Denkowski和Lavie,2014)和Rouge-L(Lin,2004)的得分。

T5Large在XSum上的结果是通过运行Huggingface transformers提供的总结脚本获得的。所有其他基线在seq2seq任务上的结果都是从相应的论文中获得的。

4.3、文本填充

我们遵循(Shen等人,2020),在雅虎答案数据集(Yang等人,2017)上评估文本填充性能,其中包含100K/10K/10K文档,分别用于训练/验证/测试。文档的平均长度为78个字。为了构建文本填充任务,我们随机mask了一个给定的ra·tio r 10%的每个文档的tokens∈{ · · },并且将连续的masktokens折叠成一个空白。我们在训练集上对GLMLarge进行了5次动态mask的微调,也就是说,空白是在训练时随机产生的。与seq2seq的实验类似,我们使用AdamW优化器,其峰值学习率为1e-5,6%的预热线性调度器。

为了与以前的工作进行比较,我们使用了由(Shen et al., 2020)构建的相同的测试集。评估指标是填充文本与原始文档的BLEU得分。我们与两个基线进行比较:(1)BERT,它学习一个从左到右的语言模型,在空白表示的基础上生成被masked的token,以及(2)由(Shen等人,2020)提出的BLM,它可以用任意的轨迹填充空白。

4.4、语言模型

我们通过对BookWiki的plexity和LAMBDA数据集(Paperno等人,2016)的准确性来评估该模型的语言模型能力。复杂度是一个已经被充分研究的语言模型的评估标准。复杂度是语料库的平均交叉熵的指数。

其中x<t = [x0, , xt·1]。 由于transformer······只能在固定的输入尺寸w的窗口上操作,我们不能完全计算p(xt x<t),只能|计算p(xt xt·w:t-1)。即使对每个token计算这个值也是非常昂贵的,因为我们需要对w大小的上下文进行T次评估。为了提高评估效率,我们采用了重叠评估,即每次将滑动窗口提前一些重叠o,只计算窗口的最后o个token的交叉熵损失。在我们的实验中,我们为所有的模型设置了o = 256。

LAMBDA是一个cloze-style数据集,用于测试长距离依赖性建模的能力。每个例子都是一个由4-5个句子组成的段落,最后一个词缺失,模型需要预测该段落的最后一个词。由于我们使用了WordPiece tokenization,一个词可以被分割成几个子词单元。我们使用教师强迫法,只有当所有预测的token都正确时,才认为预测正确。

五、在其他NLU基准上的结果

GLUE(Wang等人,2018)是另一个广泛使用的NLU基准,包括单句任务(如情感分析(Socher等人,2013))和句对任务(如文本相似性(Cer等人,2017)和自然语言推理(Williams等人,2018;Dagan等人,2005))。该基准通常被认为比SuperGLUE的挑战小。SQuAD(Rajpurkar等人,2016,2018)是一个提取性问答基准。我们在这两个基准上进一步比较GLM和BERT

在GLUE和SQuAD上的结果显示在表9和表10中。 在这两个基准上,GLM仍然可以在参数量相同的情况下胜过BERT,但幅度较小。

表9: GLUE测试集的结果。

六、 文本生成样本

我们展示了GLMDoc在从测试集中随机抽取的未见过的上下文下生成的文本。我们使用k=40的top-k随机抽样来生成,并将最大序列长度设置为512。有些文本被剪短了。

编辑于 2022-09-02 17:53

文章被以下专栏收录