前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >乘风破浪的PTM:预训练的发动机

乘风破浪的PTM:预训练的发动机

作者头像
炼丹笔记
发布2021-07-16 12:13:19
6930
发布2021-07-16 12:13:19
举报
文章被收录于专栏:炼丹笔记炼丹笔记

《乘风破浪的PTM》系列,讲述两年来预训练模型(Pre-Training Model, PTM)的技术进展,本篇主要整理预训练模型中的发动机:模型结构。错过前文的小伙伴可以通过?以下链接直接阅读哦~

背景

Bert模型自18年10月推出,到目前为止快两年了。它卜一问世即引起轰动,之后,各种改进版本的预训练模型(Pre-Training Model, PTM)与应用如过江之鲫,层出不穷。Bert及它的继任者们,确实也不负众望,在NLP各个领域攻城略地,所向披靡,多种NLP数据集竞赛榜单,连续多年被各种新出现的预训练模型霸榜,有些榜单,个别模型已经把指标刷到超过人类。

那么,在近两年的时间里,诸多改进模型中,有哪些令人印象深刻的新模型?

在那些表现突出的新模型中,是哪些因素导致它们的良好表现?

预训练模型技术本身有重大的改动或创新么?

或者,关于预训练模型,目前有哪些相对明确的结论?

根据目前的技术发展水准,如何根据现有结论,来打造最强的预训练模型?

本文通过梳理现有技术文献,试图来回答上述一系列问题。本文的数据都客观有出处,但是对数据的解读,带有严重的个人色彩,偏颇难免,还请谨慎参考

预训练的发动机:模型结构

对于预训练模型来说,目前的主流模型大都采用Transformer作为特征抽取器,现阶段看,Transformer的潜力仍然没有被充分挖掘,还有很大潜力可挖,意思是,Transformer效果足够好,而且还可以更好,貌似改进Transformer并非当务之急的事情。

预训练模型的知识,是通过Transformer在训练迭代中从数据中不断学习,并以模型参数的形式编码到模型中的。虽然,大家都是用的Transformer,但是怎么用它搭建模型结构学习效率更高?这是一个问题。

所谓学习效率高,就是给定相同大小规模的训练数据,它能编码更多的知识到模型里,这就意味着它的学习效率更高。不同的Transformer用法,会产生不同的模型结构,就会导致不同结构的差异化的学习效率。

本节我们归纳下目前能得到的,关于模型结构的现有研究结论,会介绍常见的五种模型结构。当然,这里用模型结构来表达不足够确切,因为除了模型结构外,一般还包含自监督的学习方法,常见的学习方法包括AutoEncoding(简称AE)和AutoRegressive(简称AR)。AE即我们常说的双向语言模型,而AR则代表从左到右的单向语言模型。

Encoder-AE结构

Encoder-AE结构如上图所示。这其实是包括原始版本Bert在内的,大多数后续改进模型采取的结构。整个结构就是一个标准的Transformer,在语言模型预训练的时候,采用AE方法。

也就是说,输入句中的未被Mask的任意单词两两可见,但是被Mask掉的单词之间都相互独立,互不可见。在预测某个被Mask掉的单词的时候,所有其它被Mask的单词都不起作用,但是句内未被Mask掉的所有单词,都可以参与当前单词的预测。可以看出,Encoder-AE是个采用双向语言模型的单Transformer结构。

模型结构比较(From BART)

模型结构比较(From Google T5)

从目前对比实验看(上面两图),除了下文要讲述的Encoder-Decoder结构外,貌似对于语言理解类的NLP任务,这种结构都是效果最好的,但是对于语言生成类的任务,这种结构效果相对很差。也就是说,这种结构比较适合做语言理解类的任务。

Decoder-AR结构

Decoder-AR结构如上图所示。它和Encoder-AE结构相同,都是采用单个的标准Transformer,主要区别在于:语言模型预训练的时候,采用AR方法,就是从左到右逐个生成单词,第i个单词Wi只能看到它之前的第1到第(i-1)个单词 Wi-1 ,不能看到后面的单词。采用这种结构的典型模型就是GPT1、GPT2、GPT3系列了。GPT3在文本生成任务方面的表现,确实是出乎意料地好。当然,这不能仅仅归功于这个结构本身,更复杂的模型和更大量的数据可能是主因。可以看出,Decoder-AR结构是个单向语言模型的单Transformer结构。

从目前对比实验看(参考Encoder-AE小节的两张效果对比图),除了Encoder-Decoder结构外,貌似对于语言生成类的任务,这种结构是效果最好的结构之一。但是相应的,语言理解类的任务,采用这种结构,效果比Encoder-AE结构差距非常明显,这也好理解,因为只看到上文看不到下文,对于很多语言理解类任务而言,信息损失很大,所以效果不好也在情理之中。也就是说,这种结构比较适合做语言生成类的任务。

Encoder-Decoder结构

既然Encoder-AE比较适合做语言理解类的任务,Encoder-AR比较适合做语言生成类的任务。那么,我们能否结合两者的优势,使得预训练模型既能做好生成类NLP任务,又能做好理解类任务呢?这是个很自然的想法,而Encoder-Decoder结构就是如此将两者结合的。最早明确提出使用Encoder-Decoder结构做通用领域预训练的,应该是微软提出的MASS模型,不过和这里介绍的做法有差异。

Encoder-Decoder结构如上图所示。这种结构在Encoder侧,单独使用一个Transformer,采用了Encoder-AE的结构。也就是说,编码阶段采用双向语言模型,任意两个单词两两可见,以更充分地编码输入信息;而在Decoder侧,使用另外一个Transformer,采用了Decoder-AR结构,从左到右逐个生成单词。

在进行预训练的时候,Encoder和Decoder会同时对不同Mask部分进行预测:Encoder侧双向语言模型生成被随机Mask掉的部分单词;Decoder侧单向语言模型从左到右生成被Mask掉的一部分连续片断。两个任务联合训练,这样Encoder和Decoder两侧都可以得到比较充分地训练。

Prefix LM

Prefix LM结构是Google T5论文中给出的叫法,这种结构最早由UniLM模型提出,我们沿用Google T5的这种称谓。如果深入分析的话,Prefix LM其实是Encoder-Decoder模型的变体:标准的Encoder-Decoder模型,Encoder和Decoder各自使用一个独立的Transformer;而Prefix LM,相当于Encoder和Decoder通过分割的方式,分享了同一个Transformer结构,Encoder部分占用左部,Decoder部分占用右部,这种分割占用是通过在Transformer内部使用Attention Mask来实现的。与标准Encoder-Decoder类似,Prefix LM在Encoder部分采用AE模式,就是任意两个单词都相互可见,Decoder部分采用AR模式,即待生成的单词可以见到Encoder侧所有单词和Decoder侧已经生成的单词,但是不能看未来尚未产生的单词,就是说是从左到右生成。

Permuted Language Model(PLM)

PLM一样采用单个Transformer模型作为主干结构,但是从训练方法上来说,是个很另类也很有创意的做法,是种“形为AR,实为AE”的做法。在语言模型预训练过程中,它看上去遵循AR从左到右的输入过程,这符合一般生成任务的外在表现形式,但是在内部通过Attention Mask,实际做法其实是AE的做法,无非是把AE的做法隐藏在Transformer内部。

总结

上面内容简述了常见的五种预训练模型结构,如果总结一下的话:

首先,从模型效果来看,Encoder-Decoder结构无论在语言理解类还是语言生成类任务中,都是效果最好的。当然,效果好的原因很可能在于模型参数多,模型容量大,而不一定是自身结构带来的优势。它的优点一个是效果好,一个是能够将理解和生成任务统一在一个框架下;缺点是参数多计算多,所以模型比较重。采用这个结构的代表模型包括Google T5和BART。

其次,因为Encoder-Decoder模型比较重,所以,如果从相对轻量结构里进行选择的话,对于语言理解类任务,Encoder-AE结构相对而言效果较好,代表模型很多,典型的比如ALBert、RoBERTa;对于语言生成类任务,Decoder-AR结构和Prefix LM结构相对而言效果较好,都可考虑,Decoder-AR的代表模型是GPT系列,Prefix LM的代表模型是UniLM。语言理解类任务应该用AE任务,语言生成类任务应该用AR任务,这点也很明确了。

谈完了模型结构,下面我们来盘点下表现比较好的预训练模型,并分析下效果好背后的原因。

参考资料

  • https://zhuanlan.zhihu.com/p/141517705

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 炼丹笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档