专栏首页朴素人工智能[预训练语言模型专题] RoBERTa: 捍卫BERT的尊严

[预训练语言模型专题] RoBERTa: 捍卫BERT的尊严

本文为预训练语言模型专题的第15篇。

快速传送门

1-4:[萌芽时代][风起云涌][文本分类通用技巧] [GPT家族]

5-8:[BERT来临][浅析BERT代码][ERNIE合集]、[MT-DNN(KD)]

9-12:[Transformer][Transformer-XL][UniLM][Mass-Bart]

13-14:[跨语种模型][XLNet]

感谢清华大学自然语言处理实验室对预训练语言模型架构的梳理,我们将沿此脉络前行,探索预训练语言模型的前沿技术,红框中为已介绍的文章,绿框中为本期介绍的模型,欢迎大家留言讨论交流。

RoBERTa: A Robustly Optimized BERT Pretraining Approach(2019)

众所周知,BERT对NLP领域的发展产生了极大的影响,刚一出现,它在当时的不少榜单上,都取得了压倒性的优势。在那之后,预训练语言模型领域有了蓬勃的发展,各种模型百花齐放,其中有一些还在各排行榜上超越了BERT,成为了当时的state-of-art。

而本文是对BERT预训练语言模型进行了一个重复性的研究。作者认为BERT实际上是大大地被undertrained了,将之充分地训练以后可以反超在它之后发布的所有模型的效果。同时,在GLUE,RACE,SQuAD等数据集上,作者进行了实验,确实又夺得了state-of-art的效果。作者认为,这显示人们以前忽略了设计选择的重要性,同时对最近的一些报告上,模型效果提升的来源(是否是结构导致的提升)提出了疑问。

大量的预训练模型如ELMo,GPT,BERT,XLM,XLNet等都给下游的任务带来了很大的收益,但是很难去确定这些收益来源于哪里,因为语言模型的预训练是很昂贵的。作者对BERT的预训练进行了仔细的评估,包括超参数和训练集大小的配置,发现BERT其实没有很充分地训练,从而提出了更好地训练BERT的方法,称为RoBERTa,它超过了在BERT之后发表的所有post-BERT方法的效果。

方法其实很简单:

  1. 更长的时间更大的batch size更多的数据进行训练
  2. 去掉BERT中的NSP目标(next sentence prediction)
  3. 更长的句子上进行训练
  4. 根据训练数据动态地改变mask的模式

同时作者总结了一下文章的主要贡献:

  • 展示了一组重要的BERT的设计选择和新的训练策略,使模型在下游任务上取得更好的效果。
  • 使用了新的dataset,CC-News,并确认了更多的数据预训练能给下游任务带来更好的效果
  • 证明了在合适的设计选择下,masked language model(BERT)是和所有最新发布的模型相比都是极具竞争力的

模型细节

RoBERTa同样使用了Adam,β1为0.9,β2为0.999,ε=1e-6,L2 weight decay为0.01,全部层的dropout为0.1,线性激活为GELU。和BERT不同的是,其warmup的步数,以及warmup到达的最大学习率会根据设置而进行finetune,而且RoBERTa所有的训练样本几乎都是全长512的序列,这与BERT先通过小的序列长度进行训练不同。

数据

BERT类的模型依赖于大规模的文本进行训练,RoBERTa的训练样本就比BERT更多而且更有多样性。最后使用了BOOKCORPUS(16GB),CC-NEWS(76GB),OPENWEBTEXT(38GB),STORIES(31GB) 总共160GB左右的数据,BOOKCORPUS是BERT原始的训练数据,可以看到,RoBERTA数据量多了10倍

模型通过混合精度在8 * 32GB的V100上进行训练。

动态掩码(Dynamic Masking)

BERT的masking是在预处理时进行的,导致这种Masking是静态的,每个epoch的masking结果一致。原本的BERT为了避免这种情况,把数据复制了十份,然后进行了十种不同的静态masking。这样在40个epochs的训练中,同样masking的数据会在整个训练中出现四次。

而RoBERTa中使用Dynamic Masking,只是在序列送入模型中的时候才去进行动态的masking,这样在更大的数据集上或者更多步数的训练上会表现更好。

输入形式与NSP任务

作者比较了几种输入方式

  • SEGMENT-PAIR+NSP 首先模型输入为包括两个segment的SEGMENT PAIR,其中每个segment可以包含多个句子,用[SEP]分割,这和BERT本来的输入方式相同,并且包含NSP任务。
  • SENTENCE-PAIR+NSP 模型输入为包含两个句子的SENTENCE-PAIR,用[SEP]分割,这会导致序列的长度远小于512,同样保持了NSP任务。
  • FULL-SENTENCES 模型输入为全量的句子,填满512的长度,采集样本的时候可以跨越文章的界限,去除了NSP loss
  • DOC-SENTENCES 模型输入和FULL-SENTENCE类似,但是一个样本不能跨越两个document

比较了SEGMENT-PAIR和SENTENCE-PAIR后,作者发现,使用单个句子相比使用句子组成的Segment会降低下游任务的结果。

比较了SEGMENT-PAIR和DOC-SENTENCES两个模式后,作者发现没有NSP,下游任务的效果更好。

最后,作者比较DOC-SENTENCES和FULL-SENTENCES,作者结论是不跨越document进行取样效果更好。

文本编码方式

Byte-Pair Encoding(BPE)是一种介于字级别和词级别之间的编码表示,基于subwords units。BPE的字典一般从10K-100K的范围内,随着语料而变化。但有一种聪明的做法是利用bytes来替代subword中的unicode字符,这样就可以用一个不太大的(50Kunit)的字典来对任意的输入进行编码而不引入未知的token。虽然相比于BERT使用30K的字符BPE的字典,Roberta会在Embedding层额外引入15M到20M的参数量,但是用一个固定的词典,相比而言是比较好的,而两者在性能上几乎没有区别。

效果比较

从上图中可以看到,数据增多,训练更长时间都能带来收益,和XLNET的比较中,RoBERTa并没有落于下风。

在GLUE,RACE等数据集上,也比当时的state-of-art,XLNet更好。

最后总结下,提高BERT模型下游任务上性能的方法有,用更多数据集以更大的batch size来训练更多的时间,去掉NSP任务目标,在更长的句子上预训练,动态地改变masking等。经过这些操作的RoBERTa,在各排行榜上都取得了state-of-art的效果。附上工程链接 https://github.com/pytorch/fairseq

未完待续

本文分享自微信公众号 - 朴素人工智能(sunnyday_no1),作者:管扬

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从BERT、XLNet到MPNet,细看NLP预训练模型发展变迁史

    来自 | 知乎 地址 | https://zhuanlan.zhihu.com/p/146325984

    朴素人工智能
  • 跨模态语言模型

    今天聊一聊近年来挺火的“多模态”任务。其实这不是我们第一次聊到多模态了,之前发的Kaggle PetFinder比赛方案其实就在解决一个多模态预测的问题。准确地...

    朴素人工智能
  • Kaggle TensorFlow 2.0 Question Answering 16名复盘

    这是Kaggle春节前结束的一个阅读理解的比赛[1],我和管老师曹老师最终获得16/1233的成绩。成绩来自于管老师的提交,我自己的最好成绩大概排在23名的样子...

    朴素人工智能
  • 独家 | 谷歌发布NLP最先进预训练模型:开源BERT

    作者:Jacob Devlin and Ming-Wei Chang, Research Scientists, Google AI Language

    数据派THU
  • 业界 | 如期而至!谷歌开源 BERT 模型源代码

    AI 科技评论按:自上个月谷歌公开 BERT 模型以来,BERT 模型以其双向、深层等特点,成功在 11 项 NLP 任务中取得 state of the ar...

    AI科技评论
  • 博客 | 如期而至!谷歌开源 BERT 模型源代码

    雷锋网 AI 科技评论按:自上个月谷歌公开 BERT 模型以来,BERT 模型以其双向、深层等特点,成功在 11 项 NLP 任务中取得 state of th...

    AI研习社
  • WSDM Cup 2019自然语言推理任务获奖解题思路

    美美导读:美团团队在刚刚结束的WSDM Cup 2019比赛“真假新闻甄别任务”中获得了第二名的好成绩。本文将详细介绍他们本次获奖的解决方案,里面用到了很多黑科...

    美团技术团队
  • 【NLP应用之智能司法】最强之谷歌BERT模型在智能司法领域的实践浅谈

    知乎链接:https://zhuanlan.zhihu.com/p/54934304

    zenRRan
  • BERT总结:最先进的NLP预训练技术

    BERT(Bidirectional Encoder Representations from Transformers)是谷歌AI研究人员最近发表的一篇论文:...

    Bo_hemian
  • 美团BERT的探索和实践

    他山之石,可以攻玉。美团点评NLP团队一直紧跟业界前沿技术,开展了基于美团点评业务数据的预训练研究工作,训练了更适配美团点评业务场景的MT-BERT模型,通过微...

    美团技术团队

扫码关注云+社区

领取腾讯云代金券