PTM|乘风破浪的 PTM,深度解读预训练模型的进展( 四 )
文章地址:https://zhuanlan.zhihu.com/p/70257427
PLM 一样采用单个 Transformer 模型作为主干结构,但是从训练方法上来说,是个很另类也很有创意的做法,是种 "形为 AR,实为 AE" 的做法。在语言模型预训练过程中,它看上去遵循 AR 从左到右的输入过程,这符合一般生成任务的外在表现形式,但是在内部通过 Attention Mask,实际做法其实是 AE 的做法,无非是把 AE 的做法隐藏在 Transformer 内部。它和 AE 从细节来说,主要有两个区别:首先,预训练过程中,输入句子去掉了 Mask 标记,改为内部 Attention Mask,以保持预训练过程和下游任务 Fine-tuning 的一致性。关于这一点,目前有实验证明这个虽然有积极影响,但是影响不大(ELECTRA 针对预训练过程是否带 Mask 标记做了效果对比,带 Mask 标记的 Bert 模型 GLUE 得分 82.2,去掉 Mask 标记利用其它单词代替的对比模型 GLUE 得分 82.4);其次,也是它和 AE 的最主要区别,PLM 认为被 Mask 掉的单词之间是相互有影响的,先产生的被 Mask 掉的单词,应该对后生成的被 Mask 掉的单词,在预测的时候发生作用,而标准的 AE 则认为被 Mask 掉的单词是相互独立的,相互之间不产生作用。
文章图片
其实, 如果你仔细分析下 PLM 的预训练过程,会发现本质上 PLM 是 Prefix LM 的一种变体。上图给出了个例子来说明这种情况,对于某个输入句子,PLM 首先会进行单词顺序随机变换,然后选定变换后句子的末尾一部分单词进行 Mask,被 Mask 的单词预测顺序是有序的,按照变换后在句中先后顺序来预测,上面例子中会先预测,然后再预测。在预测的时候,未被 Mask 的上下文会对预测有帮助;假设已经预测并输出了,在预测的时候,未被 Mask 掉的上下文,以及刚预测出的,会对预测有帮助。其实你想,这等价于什么?等价于以作为边界切割开的 Prefix LM 模型,Encoder 端包含,Decoder 侧包含,在预测的时候,不仅能看到 Encoder 侧的所有输入,也能看到 Decoder 侧之前的输出。当然,因为每个输入句子的长度各异,被 Mask 掉的单词个数也不固定,所以看上去 Encoder 和 Decoder 的边界根据输入句子,边界是在动态变化的。所以,PLM 其实是一种边界变化的 Prefix LM 变体结构。当然,上面纯属个人推理过程,不保证正确性,谨慎参考。如果不考虑 XLNet 里的其它因素,单纯看 PLM 结构的话,目前有些对比实验,貌似 PLM 在语言理解类任务中,效果不及 Encoder-AE(参考 UniLM v2 论文中的对比实验,未在本文列出,可参考论文);在语言生成类任务中,效果略微优于 Encoder-AE,但是距离 Decoder-AR 差距较大(参考 Encoder-AE 描述部分 BART 的对比实验)。在两类任务中,都有点上不着村,下不着店的感觉,就是都还可以,但都不够好的感觉。XLNet 效果确实是很好的,但是,这说明 XLNet 效果好,真正起作用的貌似不是 PLM,而是其它因素。
上面内容简述了常见的五种预训练模型结构,如果总结一下的话:
首先,从模型效果来看,Encoder-Decoder 结构无论在语言理解类还是语言生成类任务中,都是效果最好的。当然,效果好的原因很可能在于模型参数多,模型容量大,而不一定是自身结构带来的优势。它的优点一个是效果好,一个是能够将理解和生成任务统一在一个框架下;缺点是参数多计算多,所以模型比较重。采用这个结构的代表模型包括 Google T5 和 BART。
其次,因为 Encoder-Decoder 模型比较重,所以,如果从相对轻量结构里进行选择的话,对于语言理解类任务,Encoder-AE 结构相对而言效果较好,代表模型很多,典型的比如 ALBert、RoBERTa;对于语言生成类任务,Decoder-AR 结构和 Prefix LM 结构相对而言效果较好,都可考虑,Decoder-AR 的代表模型是 GPT 系列,Prefix LM 的代表模型是 UniLM。语言理解类任务应该用 AE 任务,语言生成类任务应该用 AR 任务,这点也很明确了。
谈完了模型结构,下面我们来盘点下表现比较好的预训练模型,并分析下效果好背后的原因。
强者的狂欢:为什么有些模型表现这么好
目前 Bert 的改进模型有很多,有的表现非常突出,有的表现一般。我的主要目的是想找出那些表现好的模型,并分析下,到底是哪些因素导致这些模型效果超群的。
首先,我们需要先找出那些表现特别好的模型出来,我这里说的表现好,主要是从模型效果角度来说的,就是那些在公开数据集上指标比较高的模型。一种比较简单的方法就是:找 GLUE、SuperGLUE、SQuAD 2.0 这几个大规模 NLP 数据上,那些打榜模型中排名前列的。你可以看一下,自从 Bert 出现后,这几个榜单,都长年被预训练模型霸榜,指标在被各种新的预训练模型快速刷高,直到超过人类的水准。一般而言,能够打榜把指标刷到前列的,都是好模型,说明这些模型真的能打(插句闲话,这点其实特别值得推荐领域借鉴,就是有个大规模高难度数据集,供各种模型长年刷榜,这其实是促进领域技术进步很好的手段)。
当然,也有一些新模型,可能未必会去打榜,所以作为补充措施,我又从比较新的文献中,找出一些模型,前提是它在文献中报道的效果要比 RoBERTa 好。
推荐阅读
- 队友|沈梦辰曝光队友“丑照”,但显示出良好的人气
- 公演|《乘风破浪的姐姐》,第五次公演现场,李斯丹妮组《情人》太惊艳
- 缺位|《乘风破浪的姐姐》,青春从来不缺位,也不让位,而是自信归位
- 时尚狂想曲|《乘风破浪的姐姐》录制团综,张雨绮站C位,简约衬衣罕见秀知性
- 归位|《乘风破浪的姐姐》,青春从来不缺位,也不让位,而是自信归位
- 10月|印度发生5.1级地震,震源深度40千米
- 陈赫|《乘风破浪的姐姐》成团夜请了17位男嘉宾,陈赫惹来一片争议
- 节目组|孟佳,别挣扎了,《乘风破浪》节目组明摆着想把你淘汰
- 宁静|《乘风破浪的姐姐》录团综,宁静万茜破不和传闻,路演视频欢乐多
- 消息资讯|乘风破浪 | 变革转型:人才培养——企业转型与创新的核心驱动力
