最近在arxiv上又看到了一篇论文,出自清华大学。题目为:All NLP Tasks Are Generation Tasks: A General Pretraining Framework。
0.摘要
NLP任务分为分类或者说是阅读理解任务(NLU)、无条件生成任务、有条件生成任务;预训练模型分为自编码、自回归、编码解码。三种训练模型分别在前面三种任务中表现良好。本文中提出一个通用的预训练模型,在三种任务中都能做到良好表现。
注:✅表示擅长,❌表示无法直接应用,—表示可以做
该文的创新点:
1.单个预训练模型在分类任务,生成任务上表现优异。
2.在分类任务优于bert类模型,因为它的训练-微调一致性。
3.可变长度的空白填充对于下游任务更重要。
1.介绍
自回归,GPT,从左往右学习的模型,在长文本的生成以及少样本学习能力很强(参数量大);缺点就是单向的注意力机制不能完全捕捉token的内在联系。
自编吗,BERT,双向的transformer作为编码器+去噪目标,在语言理解相关的文本表示效果很好。缺点是不能直接用于文本生成。
编码解码,T5,编码器使用双向注意力,解码器使用单向注意力,并且有交叉注意力连接两者,在有条件生成任务中表现良好(文本摘要,回答生成)。
所以三者各有优缺点;可以使用多任务学习的方式通过结合训练目标来结合不同框架的优点。但是毕竟两者的本质不同,简单的统一不一定能完全继承他们的优点。
本文的GLM
基于自回归的空白填充。
随机清空输入中连续跨度的token。 --自编码
训练模型来重构跨度。--自回归
在单一的框架中,需要学习双向和单向的注意力机制,将输入分为掩码token和非掩码token,非掩码token可以互相看到(attention),掩码的不能看到后面的。
关于位置编码也使用了2维的编码技术,来表示跨间和跨内信息。
在下游任务中,GLM也可以适配NLU和生成的任务。
2.GLM框架
2.1.模型结构
与BERT相似,有两个修改--重新安排了归一化和残差的顺序,在largeBERT模型中有效;替换前馈网络为线性网络。
2.2自回归空白填充
清空输入中的多个跨度,为了捕捉跨度之间的内在联系,随机交换跨度的顺序。
与spanBERT的区别:跨度的个数是不知道的;跨度的预测是自回归的。
输入分为了AB两部分:A为mask的文本,B为被mask的token。A之间能相互见到,B能见到A,但不能见到B后面的token。
2.2.1.2D的位置编码
经过上面的输入调整后怎么定义输入位置。位置编码1:A 正常的顺序,B 跨度在A中的位置,位置编码2:A全是0,B是0到跨度长度。
2.3预训练目标函数
跨度的长度服从泊松分布(λ=3),与BART一样。重复采样,直到15%的token被mask。
跨度覆盖后50%-100%的原始token,长度采样至均匀分布。
2.4微调GLM
对于下游任务,分类就使用输入的表示来预测正确答案,对于token分类,就使用目标token的表示;对于序列分类那就是使用cls的表示。
这种方法不同于之前的预训练方法,预训练与微调的目标的不一致。
分类和生成都可以变成生成的任务。 GLM打破了bert不知道mask数量和位置的问题,并且假设mask之间是相关的,这样可以捕捉更多的依赖关系。
2.5讨论分析
BERT | XLNET | Encoder-Decoder | UniLM |
BERT中不能很好处理连续的多个token; mask token是独立的,不能捕捉mask token之间的依赖关系。 | xlnet使用了双流的注意力机制,改变了transformer的结构,增加了耗时。 | 使用了两个transformer模型实现了单向和双向注意力,加入token来识别mask span,浪费模型能力;训练和微调不一致。 | 在自编码框架下使用了mask来统一单双向的注意力。对于生成任务来说,还是不够高效。 |
2.5.1与bert对比
bert是自编码模型。来预测mask的字符。因为模型中的mask token是独立的,bert不能捕捉mask token之间的依赖性。
bert的另一个缺点是不能处理多个连续的mask token。
2.5.2与xlnet的对比
都是自回归的模型。
xlnet需要知道预测token的长度;使用双流注意力机制解决了信息泄漏的问题,改变了transfomer的结构,增加了耗时;xlnet决定一个token是否被独立预测。
2.5.3与编码解码模型对比
T5也是处理的空白填充的任务目标,但是GLM使用了单个的transformer编码器学习单向和双向的注意力。通过共享参数使参数比编码解码模型更有效。
T5在编码和解码阶段使用不同的位置编码,使用哨兵标记来识别不同的mask跨度,哨兵标记造成了模型能力的浪费和预训练微调的不一致性。
2.5.4与UniLM对比
UniLM是通过在自编码框架下改变在双向,单向,互相之间的attention mask来统一预训练目标;由于自编码模型的独立假设,自回归模型不能完全捕捉当前token对于前面token的依赖。
对于微调下游任务来说,自编码会比自回归更加低效。
3.实验
NLU实验
有条件生成
无条件生成
GLM模型在NLU、有条件生成和无条件生成三个任务上都有很好的效果,使用1.25倍的GLM首次同时在三种任务上取得最优,之前都是需要训练三种不同的模型实现。
消融实验
根据Table5可以看出GLM训练范式上对于结果的提升是最有效,另外shuffle spans也有一定的提升,sentinel token会降低模型效果,而上面的Table4中可以得出二维的位置表示对模型效果也有一定提升。
4.最近工作
略
5.结论
通用语言模型,结合了自然语言理解+生成+seq2seq;
证明了NLU任务可以表示为条件生成任务,因此可以用自回归模型求解。
GLM将不同任务的预训练目标统一为自回归填空、混合注意掩模和新颖的二维位置编码
论文:https://arxiv.org/abs/2103.10360
ppt:好像无法上穿