PTM|乘风破浪的 PTM,深度解读预训练模型的进展

机器之心转载
来源:知乎
作者:张俊林
自谷歌 2018 年 10 月推出 BERT 模型以来,各式各样的改进版预训练模型(Pre-Training Model, PTM)层出不穷,为 NLP 领域持续赋能。在近两年的时间里,出现了哪些令人印象深刻的新模型呢?又如何打造最强的预训练模型呢?近日,中科院软件所博士、新浪微博 AI Lab 担任资深算法专家张俊林以现有技术文献为基础,试图回答预训练模型相关的一系列问题。
以下是张俊林的原帖内容:
Bert 模型自 18 年 10 月推出,到目前为止快两年了。它卜一问世即引起轰动,之后,各种改进版本的预训练模型(Pre-Training Model, PTM)与应用如过江之鲫,层出不穷。Bert 及它的继任者们,确实也不孚众望,在 NLP 各个领域攻城略地,所向披靡,多种 NLP 数据集竞赛榜单,连续多年被各种新出现的预训练模型霸榜,有些榜单,个别模型已经把指标刷到超过人类。
那么,在近两年的时间里,诸多改进模型中,有哪些令人印象深刻的新模型?在那些表现突出的新模型中,是哪些因素导致它们的良好表现?预训练模型技术本身有重大的改动或创新么?或者,关于预训练模型,目前有哪些相对明确的结论?根据目前的技术发展水准,如何根据现有结论,来打造最强的预训练模型?本文通过梳理现有技术文献,试图来回答上述一系列问题。本文的数据都客观有出处,但是对数据的解读,带有严重的个人色彩,偏颇难免,还请谨慎参考。另外,如要透彻理解本文,需要有关于预训练模型的先导基础知识,对这个不太了解的同学,建议先阅读下文打个基础。
文章地址:https://zhuanlan.zhihu.com/p/49271699
我们知道,在预训练模型框架下,解决 NLP 问题,会划分为序列进行的两阶段:第一阶段是预训练阶段,然后是 Fine-tuning 阶段,本文集中在预训练阶段。
 PTM|乘风破浪的 PTM,深度解读预训练模型的进展
文章图片
如果我们一句话宏观地归纳预训练模型要做的事情(参考上图),其实很好理解,就是下面这句话:在 Transformer 作为特征抽取器基础上,选定合适的模型结构,通过某种自监督学习任务,逼迫 Transformer 从大量无标注的自由文本中学习语言知识。这些语言知识以模型参数的方式,存储在 Transformer 结构中,以供下游任务使用。
我们见到的形形色色的预训练模型,无非就是,实现上述思路的具体做法而已。你可以换个模型结构,可以换个学习任务,也可以换个其它的部件,无非就是各种试,当然,有些做法相对有效,有些做法效果差些。一般而言,通常所说的预训练模型,都是从自由文本中学习语言知识,很明显,我们可以引入新型的知识或数据,比如人类已经挖掘好的结构化知识、多模态数据、多语言数据等,引入这些知识来促进模型理解语言,或者解决特殊类型的任务。
后文会先介绍预训练模型中常见的几种模型结构,并给出目前能得出的结论。然后,我们会找出目前表现比较好的那些预训练模型,并分析它们起作用的主要因素是什么。接下来,会简要介绍几种非自由文本类知识学习的预训练基本方法。
在谈这些之前,我们先从 RoBERTa 讲起。如果时光倒退半年多,你会发现,这是一个价值被严重低估的模型,其实,它很重要。
预训练模型中的强基准:RoBERTa
严格来说,原始的 Bert 模型是个未完成的半成品,而 RoBERTa 才是遵循 Bert 思路的完成品,或者说,Bert 是进行时中的 RoBERTa,也就是说下列等式成立 Bert=RoBERTing。为什么这么说呢?因为,我们可以把 RoBERTa 看作是得到充分训练的 Bert 模型,而原始版本的 Bert 模型训练不够充分,这种模型是否得到充分训练的微小差异,能够极大提升原始版本 Bert 模型的效果。
 PTM|乘风破浪的 PTM,深度解读预训练模型的进展
文章图片
在原始 Bert 模型的基础上,RoBERTa 通过实验,证明了如下几点:进一步增加预训练数据数量,能够改善模型效果;
延长预训练时间或增加预训练步数,能够改善模型效果;
急剧放大预训练的每个 Batch 的 Batch Size,能够明显改善模型效果;
拿掉预训练任务中的 Next Sentence Prediction 子任务,它不必要存在;
输入文本的动态 Masking 策略有帮助。
上面列出的五项改进中,第四项和第五项改动,对最终的模型效果影响不大,暂时可忽略。第一点改进增加预训练数据对模型效果有帮助,这个符合直觉。第二项和第三项则涉及到模型是否得到充分训练,本质上这两项相结合,代表了更充分训练的 Bert 模型。如上面的性能对比图所示,如果以 Bert Large 作为对比基准,可以发现:仅仅将 Batch Size 放大,三个数据集上的效果就获得了明显提升,如果再加入新的数据,以及不断增加训练步数,还能持续获得效果的进一步提升。可以看出,RoBERTa 效果明显比 Bert large 好,在相同数据情况下,甚至超过了知名度很高的 XLNet。这主要归功于数据规模的增加,以及更充分的训练过程,其中更充分的训练过程发挥的作用更大些。这是为何说 RoBERTa 在某种意义上,其实是一个完成版本或者加强版本的 Bert 模型。


推荐阅读