PTM|乘风破浪的 PTM,深度解读预训练模型的进展( 二 )
纵观目前公开的预训练模型,我们可以发现,RoBERTa 是其中一个效果非常好的超强基准模型。这句话有几个意思:
首先,尽管看上去 RoBERTa 也没做啥技术或者模型改进,只是把 Bert 模型训练得更充分了一些,但是,它的效果是非常好的。目前为止,效果能够明显超过它的模型很少,屈指可数,这个"屈指可数",不是虚指,是它的字面含义。这个事实,其实隐含了很大的信息量,它说明了一个什么问题呢?您可以想一想,我的看法在后面小节内容会提到。
其次,对于一个改进模型来说,理论上都应该引入 RoBERTa 作为对比 Baseline,而改进模型的效果,如果不能具备说服力地超过 RoBERTa 的话,那么这种改进的有效性,多少是成问题的,除非你强调改进模型的优势不在效果好,而在其它方面,比如更小更快等。
再次,后续的改进预训练模型,从策略角度讲,应该在设计之初,就站在 RoBERTa 的巨人肩膀上,就是说在增加一定数据量的前提下,增大 Batch Size,加长预训练时间,让模型得到充分训练。因为,如果你不这么做,大概率你的效果是很难比过 RoBERTa 的,而目前我们能够见到的效果很突出的模型,你如果细究,会发现其实都已经引入了 RoBERTa 的关键要素了,关于这一点,在后面小节我们会做分析。
还有,对于追求落地效果的人来说,比如公司里做业务的同学,建议以 RoBERTa 为基础模型来做应用。
预训练的发动机:模型结构
对于预训练模型来说,目前的主流模型大都采用 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 个单词 [公式] 只能看到它之前的第 1 到第(i-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 模型,不过和这里介绍的做法有差异。
推荐阅读
- 队友|沈梦辰曝光队友“丑照”,但显示出良好的人气
- 公演|《乘风破浪的姐姐》,第五次公演现场,李斯丹妮组《情人》太惊艳
- 缺位|《乘风破浪的姐姐》,青春从来不缺位,也不让位,而是自信归位
- 时尚狂想曲|《乘风破浪的姐姐》录制团综,张雨绮站C位,简约衬衣罕见秀知性
- 归位|《乘风破浪的姐姐》,青春从来不缺位,也不让位,而是自信归位
- 10月|印度发生5.1级地震,震源深度40千米
- 陈赫|《乘风破浪的姐姐》成团夜请了17位男嘉宾,陈赫惹来一片争议
- 节目组|孟佳,别挣扎了,《乘风破浪》节目组明摆着想把你淘汰
- 宁静|《乘风破浪的姐姐》录团综,宁静万茜破不和传闻,路演视频欢乐多
- 消息资讯|乘风破浪 | 变革转型:人才培养——企业转型与创新的核心驱动力
