这是大模型论文系列第一篇博客,后续会阅读其他文章。
摘要
首先提到目前三大预训练架构:自动编码模型-如Bert、自回归模型-如GPT以及编码器-解码器架构-如T5,以及三个主要任务:自然语言理解、单向生成和双向生成。现有的架构无法再所有任务中都表现优秀。于是本文提出解决方法:GLM,一个通用语言模型。
GLM通过2D位置编码提升空白填充预训练,可以改变预测跨度与空格长度。
`
一、介绍
讲了点基础知识:
GPT:参数量大之后,在长文本生成,以及few-shot学习能力上表现都很突出。但单向生成导致不能更好地利用上下文信息。(解码器输入是token)
BERT:通过去噪目标学习上下文编码器,编码器适合文本理解任务,不能直接用于文本生成。(编码器输入时句子)
T5:使用编码器-解码器架构,统一理解与生成任务,参数量会在BERT基础上更大。
发现:这些预训练架构都不够灵活,简单的统一编码器-解码器不能完美利用架构优点。
本文:提出一个通用语言模型GLM,从输入文本随机删除连续的token,遵循自回归预训练思想。在T5的空白填充基础上,创新了片段洗牌和二维位置编码。在文本理解任务上,与BERT不同的是,是一种自回归完形填空。同时证明,改变缺失跨度的数量与长度,能实现单向和双向生成,做到多任务学习。
(BERT和GLM训练机制:BERT采用掩码语言模型(MLM)和下一句预测(NSP)这两种预训练任务。在MLM中,BERT随机遮住一定比例的输入数据中的token,然后预测这些遮住的token。NSP任务是预测给定的两个句子是否是紧接着的连续文本。BERT使用这种双向的预训练方法来理解语言的上下文。
GLM则采用自回归式空白填充框架,它随机挖掉文本中的连续的词语片段,并训练模型顺序重建这些片段,这类似于自编码任务,同时融入了自回归预训练的概念。)
二、GLM预训练架构
1.预训练目标
自回归空白填充:优化目标。给定文本一系列span,每个长度未必相同,被[MASK]标记替换,模型自回归预测这些缺失的token,这些span被随机排列。
优化目标为:最大化恢复文本概率。Szi是长度为i的span ,也就是说预测下一个span时,前面的span是已知的,索引来自Zm集合。
每个空缺处的token总是按照从左到右的顺序产生。生成span si的概率可以分解为:给定已混淆文本xcorrupt和先前生成的文本序列sz<i时,连续生成跨度si中的每个token si,j的概率的乘积。
预训练过程如图:
实现自回归的方法:将输入文本分为A(损坏文本)与B(对应的span)组成,B部分随机排列。A部分的tokens可以互注意,Part B中的token可以参考Part A以及Part B中在它们之前的token,但是不能参考在它们之后的token。每个span都有特殊token:[start]和[end].模型自动学习一个双向encoder作用于A,一个单向decoder作用于B。2D位置编码分别表示span内部位置以及span之间的位置(原始对应文本部分的位置),(d)灰色区域是不允许被其他token参考的部分(看query,列)。
2.多任务预训练
为了第二目标:文本生成
- 长文本生成:从原始长度的50%-100%进行采样
- 句子生成:限制span必须是完整的句子,多个句子总采样超过15%长度
三、模型架构
在单个transformer的基础上进行改进。
2D位置编码
transformers依赖位置编码标记绝对位置与相对位置,故提出此方法,每个token都有两个位置编码:损坏文本编码与span内部编码,其中span内部编码中损坏文本部分对应都是0。两个位置向量都被加到输入里。 这种方法能保证模型在重建时不知道span的长度,如果只对原始位置编码,能知道缺失的span数。
四、模型微调
为了保证下游任务执行时与训练之间的一致性,将自然语言理解分类任务定义为空白填充生成任务。给定一个标记的例子(x,y),通过包含单个掩码标记的模式将输入文本x转换为完形填空题c(x)。比如情感任务不再是:积极,消极;而是它真的太(积极)了…然后(积极)被映射为(好)。然后用交叉熵损失微调GLM。
五、分析讨论
这部分是GLM和其他大模型的比较
与BERT:BERT受限于MLM的独立性假设无法获得masked tokens之间的联系,同时无法正确填充多个空白token,且如果答案长度未知,推理时间可能会很长(可能需要枚举所有可能)。
与XLNet:XLNet使用对文本进行空白操作前的原始位置编码,需要知道答案长度。且使用双向注意力机制,使预训练时间成本增加。
与T5:对于编码器和解码器使用独立位置编码,依赖多个token来区分不同的masked span,这与下游任务不一致。且总是固定从左到右预测。
六、实验
基本与BERT设置相同,参考BERT模型设计,模型参数量<=340M。
多任务预训练时训练两个较大模型,参数量<=515M。
实验的benchmark为SuperGLUE。
(具体实验结果不想写,如图,能看出很优秀)
七、总结
GLM是一个用于自然语言理解和生成的通用预训练框架。本文证明,NLU任务可以变成双向生成任务,因此可通过自回归模型求解。GLM统一了不同任务的预训练目标,如自回归空白填充,混合注意掩码和新颖的2D位置编码。GLM优于以前的方法,NLU任务,可以有效地共享不同的任务的参数。