介绍
RoBERTa作为BERT的改进版本,本文主要介绍RoBERTa和BERT的区别,论文具体见《RoBERTa: A Robustly Optimized BERT Pretraining Approach》
RoBERTa VS BERT
Our modifications are simple, they include: (1) training the model longer, with bigger batches, over more data; (2) removing the next sentence prediction objective; (3) training on longer sequences; and (4) dynamically changing the masking pattern applied to the training data.
训练数据和参数上
RoBERTa引入了更多的训练数据,除了BERT所使用的Book-Corpus和Wikipedia(16G), 增加了160G的其他数据包括(CC-NEWS, OPENWEBTEXT, STORIES), 预训练数据相比BERT增加了10倍,随之训练时间也更长。
Past work in Neural Machine Translation has shown that training with very large mini-batches can both improve optimization speed and end-task performance when the learning rate is increased appropriately
同时借鉴机器翻译,增大mini-batch的大小,提升优化速度和性能
动态掩码 Dynamic Masking
回顾BERT使用的是静态掩码,即在训练前就对训练数据的句子随机sample好了要mask的token,训练的时候不变。RoBERTa的做法是将训练数据复制10份,每份采用不同的随机挑选token进行mask,训练40个epoch,即训练的时候相同的mask会出现4次
Model Input Format and Next Sentence Prediction
实验表明去除nsp任务效果更好
Text Encoding
采用更大的byte-level BPE(Byte-Pair Encoding)词典,从BERT原始的30k增大到50k
总结
RoBERTa的贡献主要在于,只要训练的好,效果还有提升空间。相比BERT,主要有以下几个改进点:更多的预训练数据,更大的mini-batch, 更长的预训练时间,静态编码改成动态,取消NSP损失,更大的BPE词典。最终达到了超越BERT的性能。