雷锋网 AI 科技评论按,去年 10 月,被誉为「最强 NLP 预训练模型」的 Bert 问世,横扫 11 项 NLP 任务记录。随后问世的 XLNet 打破了这些记录,在 20 项任务上全面超越 BERT。然而,不久前,Facebook 的最新成果,BERT 改进版本——RoBERTa 打败 XLNet 登上了 GLUE 排行榜榜首。
相关论文地址:https://arxiv.org/pdf/1907.11692.pdf
GitHub 地址:https://github.com/pytorch/fairseq/tree/master/examples/roberta
论文由 Facebook AI 和华盛顿大学共同完成,其摘要如下:
语言模型的预训练已经带来了显著的性能提升,但是仔细比较不同的方法是具有挑战性的。训练的计算代价很高,通常在不同的私有数据集上进行,我们将表明尺寸和超参数的选择对最终结果有重大影响。我们提出了对 BERT 预训练的复制研究,该研究仔细测量了许多关键超参数和训练数据大小对结果的影响。我们发现 BERT 明显缺乏训练,并且可以匹配或超过在此之后发布的每个模型的性能。我们最好的模型在 GLUE, RACE 和 SQuAD 上取得了最先进的成果。这些结果突出了以前被忽视的设计选择的重要性,并对最近报道的结果进步的来源提出了疑问。我们公布了我们的模型和代码。
论文的主要贡献是:
提出了一套重要的 BERT 设计选择和训练策略及其介绍;
使用了一个新的数据集 CCNEWS,并确认使用更多的数据进行预训练可以进一步提高下游任务的性能
文中的训练改进表明,在设计选择正确的情况下,遮蔽语言模型与所有其它最近提出的方法相比非常具有竞争力。
改进版 BERT,即 RoBERTa(Robustly Optimized BERT approach)重复了 BERT 的预训练过程,它和 BERT 的区别有以下几点:
训练模型的时间更长
对更多的数据进行更大的批处理
删除下一句预测目标
训练更长的序列
以及动态地更改应用于训练数据的 masking 模式
如前文所述,该模型在 GLUE, RACE 和 SQuAD 上取得了最先进的成果。在参数 L = 24,
H = 1024, A = 16, 355M 的情况下,作者在 BERT-large 结构上训练 RoBERTa,结果如下图所示:
在控制训练数据,可以观察到 RoBERTa 比最初报告的 BERT-large 的结果大大提升,这再次证明了设计选择的重要性。
然后,将此数据与另外三个附加数据集相结合,采用的训练步骤数量与之前相同(100k),总共预处理的文本超过 160GB。所有下游任务的提升,验证了预训练中的数据规模和多样性。
作者对 RoBERTa 进行了大量的预处理,将预训练的步骤数量从 100K 增加到 300K,然后再增加到 500K。可以看到下游任务的显著性能提升,在大多数任务中,300k 和 500k 训练步骤的模型优于 XLNetLarge。
还可以注意到的是,即便训练的时间再长也不会产生过拟合,而是可能会受益于额外的训练。作者发现模型训练的时间越长,性能就可以大大提高。
目前,他们还使用了一个新的数据集,并发布相关模型和预训练微调代码,可以点击以下网址查看 https://github.com/pytorch/fairseq。
想了解更多细节,可以阅读论文原文,还可以参考雷锋网之前的文章「XLNet团队:公平对比,BERT才会知道差距!」。
雷锋网雷锋网