BERT重夺多项测试第一名,改进之后性能追上XLNet,现已开源预训练模型

NLP领域今年的竞争真可谓激烈。短短一个多月的时间,BERT又重新杀回GLUE测试排行榜第一名。

晓查 发自 凹非寺

量子位 出品 | 公众号 QbitAI

NLP领域今年的竞争真可谓激烈。短短一个多月的时间,BERT又重新杀回GLUE测试排行榜第一名。

今年6月,谷歌和CMU提出的NLP模型XLNet在20多项测试中排行第一,性能全面超越BERT。

然而就在XLNet“霸榜”一个月后,Facebook把BERT改进了一番,进一步“榨干”了BERT的性能,帮助它在GLUE和RACE测试中再次取得最优成绩,算是扳回一城。

这个改进版的BERT叫做RoBERTa,全名是Robustly Optimized BERT approach

Facebook不仅发布了文章,还迅速开源了预训练模型。在高于PyTorch 1.1版本中,你甚至可以使用官方的torch.hub直接导入模型。

测试得分

RoBERTa在9个GLUE中的4个基准任务测试实现了最先进的结果,总分数为88.5,与XLNet相同的整体GLUE任务性能,双方互有胜负。

在RACE测试中,RoBERTa已经全面超越XLNet。

与BERT的差别

Facebook的研究人员发现超参数选择对BERT的最终结果有重大影响,因此他们重新研究了BERT的预训练模型,测量了不同超参数和训练集大小的影响,结果发现BERT存在明显的训练不足。

经过调整后,BERT可以达到或超过其后发布的每个模型的性能,这些结果突出了之前被忽视的设计选择的重要性,

RoBERTa与BERT的不同之处在于,它依赖于预训练大量数据和改变训练数据的mask模式,而且RoBERTa删除了下一句预测(NSP)。

RoBERTa的修改很简单,包括:

  1. 更长时间的训练时间,更大的batch,更多的数据;
  2. 删除下一句预测(NSP)目标;
  3. 在较长序列上进行训练;
  4. 动态改变用于训练数据的mask模式。

RoBERTa的预训练时间要比BERT长得多,Facebook将预训练步数从100K增加到300K再增加到500K。当步数达到300K时,其性能已经超过了XLNet。

除了在模型上的调整,RoBERTa的训练数据集也比BERT大很多。

原始的BERT使用了13GB大小的数据集,内容来自英文维基百科和BookCorpus。但RoBERTa使用了包含6300万条英文新闻的160GB数据集。

最后,RoBERTa和BERT一样烧钱,研究人员使用1024Nvidia V100 GPU训练了大约一天时间。而BERT需要使用1024个谷歌TPU训练76分钟。

论文地址:

https://arxiv.org/abs/1907.11692

GitHub:

https://github.com/pytorch/fairseq/tree/master/examples/roberta

版权所有,未经授权不得以任何形式转载及使用,违者必究。