RoBERTa、ERNIE2和BERT-wwm-ext

RoBERTa、ERNIE2和BERT-wwm-ext

对于NLP来说,这两天又是一个热闹的日子,几大预训练模型轮番上阵,真是你方唱罢我登场。从7月26号的RoBERTa到7月29号的ERNIE2,再到7月30号的BERT-wwm-ext,其中RoBERTa引起大家的热论。下面尝试将一一解析下这几个模型,下面所讲纯属个人思考,眼光有限,错误难免,谨慎参考。


  • RoBERTa


从模型上来说,RoBERTa基本没有什么太大创新,主要是在BERT基础上做了几点调整:1)训练时间更长,batch size更大,训练数据更多;2)移除了next predict loss;3)训练序列更长;4)动态调整Masking机制。从实验效果来看,干过了bert和XLNet。个人觉得这篇文章的针对意义还是比较强的,主要是针对那些宣称干过BERT的模型,如GPT-2和XLNet,说得BERT及其掩码机制好像完全不行了,可以看文章“XLNet团队:只要公平对比,BERT毫无还手之力”。这点从摘要的表述可以看出“We find that BERT was significantly undertrained, and can match or exceed the performance of every model published after it”(潜台词是不是我不行,是我根本没发力而已)。


先探索了BERT几个因素对结果的影响:1)动态Masking,相比于静态,动态Masking是每次输入到序列的Masking都不一样;2)移除next predict loss,相比于BERT,采用了连续的full-sentences和doc-sentences作为输入(长度最多为512);3)更大batch size,batch size更大,training step减少,实验效果相当或者更好些;4)text encoding,基于bytes的编码可以有效防止unknown问题。另外,预训练数据集从16G增加到了160G,训练轮数比BERT有所增加。在GLUE上的结果如图1。

图1


为什么RoBERTa会比BERT、GPT-2和XLNet好?首先本文通过实验结果说明BERT及其掩码机制还是老当益壮,你们这些后辈少在我面前嘚瑟。其次GPT-2和XLNet或多或少都反映了BERT某些方面的不足,不过这些对BERT都是非致命的。比如,GPT-2中看到了更多数据的威力(BERT的训练数据远未饱和),XLNet中看到next prediction loss非必须,batch size可以设置更大。


  • ERNIE2


ERNIE2是百度在ERNIE1基础上的一个升级版,不过这次升级幅度比较大,提出了一个持续学习的机制(continual learning)。这个机制比较有意思,有点模仿人学习的形式。我们人是在不断学习,并且是多种任务不停交叉学习。有人觉得工作后就不用学习了,但其实工作才是真正学习的开始。上学期间你可能只是单纯地学习,但在工作中需要快速边做边学(learning by doing,不知道这种机制能否引入到AI中),这时候更能体现一个人的快速学习能力。稍微扯远了,回归下正题。持续学习包括持续构建预训练任务和增量多任务学习两个部分,具体下图2。

图2


不同于ERNIE1仅有词级别的Pretraining Task,ERNIE2考虑了词级别、结构级别和语义级别3类Pretraining Task,词级别包括Knowledge Masking(短语Masking)、Capitalization Prediction(大写预测)和Token-Document Relation Prediction(词是否会出现在文档其他地方)三个任务,结构级别包括Sentence Reordering(句子排序分类)和Sentence Distance(句子距离分类)两个任务,语义级别包括Discourse Relation(句子语义关系)和IR Relevance(句子检索相关性)两个任务。三者关系如图3。

图3


就pre-train的多任务loss而言,个人觉得已经考虑很全了,并且个人之前也比较看好pre-train multi-task学习方向。BERT某种程度上也是一个multi-task学习,包含两个loss。虽然RoBERTa和其他一些文章说next prediction loss已是非必须,但multi-task始终是一个可以前进的方向,尤其是在数据和模型结构不变的情况下,使用multi-task理论上会有些提升。当然multi-task的不足在于如何有效训练多任务,ERNIE2采用了持续学习的机制,多个任务轮番学习,这有点类似于我们人上学,这节课学语文,下节课学数学,再下节课学英语。预训练数据相比BERT来说有所增加,英文约增加了2倍,中文约增加了1倍多。实验结果如图4(英文GLUE)和图5(中文任务上)。

图4
图5


从实验结果来看,ERNIE2要优于BERT和XLNet。但也有两点疑惑:1)作者为什么不再探索下多任务带来的效果到底有多少,可以在定量分析下。要不然现在的结果到底多少是数据带来的,多少是多任务带来的,其实并不清楚,multi-task这条路到底能走多远没有给出答案;2)RoBERTa与ERNIE2相比,RoBERTa英文数据增加了10倍,ERNIE2数据应该是增加两倍,但做了很多模型loss上的增加,从GLUE效果上看,显然RoBERTa要比ERNIE2好一些,这是不是反映模型改进提升有限,当前还是多增加预训练数据效果来得更快些。


  • BERT-wwm-ext


BERT-wwm-ext是由哈工大讯飞联合实验室发布的中文预训练语言模型,是BERT-wwm的一个升级版。之前在文章“XLNet中文预训练和阅读理解应用”中提到BERT-wwm发布时间不凑巧,正好赶上XLNet发布,并没有产生大的热论,这次感觉也比较悲催,遇到了RoBERTa。就中文而言,BERT-wwm-ext还是挺有意义的,毕竟专门就中文做了改进和提升。虽然ERNIE2也有中文,但由于是基于PaddlePaddle,影响力相对要弱些。

BERT-wwm-ext主要是有两点改进:1)预训练数据集做了增加,次数达到5.4B;2)训练步数增大,训练第一阶段1M步,训练第二阶段400K步。在一些中文任务上效果稍微有提升,具体见图6、图7和图8。这也验证了RoBERTa的观点(不是BERT不行,是潜力没发挥而已)。

图6 CMRC 2018
图7 DRCD
图8 XLNI


与ERNIE2类似,BERT-wwm-ext也没有把增加和增大训练步数的效果贴出来,也就区分不了到底是哪个带来了影响。


  • 思考与总结


RoBERTa与ERNIE2的对比可以看到,现阶段改模型不如加数据,那有几个问题:1)数据量的底,就BERT-Large模型结构而言,到底多少才会趋于饱和;2)预训练数据种类是否有关,比如我是不停地加新闻类数据就可以还是需要均衡新闻、小说、问答等各类数据;3)如果拿同等的训练数据,RoBERTa与ERNIE2不知是哪种模式的训练效果会好些。


参考文献

RoBERTa

ERNIE2

BERT-wwm-ext

XLNet团队:只要公平对比,BERT毫无还手之力

XLNet中文预训练和阅读理解应用

发布于 2019-07-31 15:08