文献记录-RoBERTa: A Robustly Optimized BERT Pretraining Approach

文献地址:

https://arxiv.org/pdf/1907.11692.pdf

摘要:

本文对BERT模型中的超参数进行研究,对超参数和预训练的数据量上进行了优化.


简介:

研究内容:
(1)更大的模型,更多的训练批次,更多的训练数据
(2)删除了预训练过程中"下一句预测"的任务
(3)训练更长的序列(data)
(4)改变掩码模型


背景:

bert的优化算法中Adam中,β1=0.9, β2=0.999,epsilon = 1e-6
预训练数据是用的英文的维基百科做的无监督学习训练的


实验:

研究了学习率,预热步骤,Adam epsilon参数的影响
数据方面使用更合适的预训练数据集的质量和数量


分析:

1:静态和动态mask

在原始的bert中,mask的方式是通过选出随机的15%的输入token去mask,这15%的token中又有80%的的token会被替换为 “[MASK]”, 10%替换为随机token,另外10保持不变.

但是原始的mask只在训练开始之前mask了一次,并在训练期间保存.这会导致一个问题,所谓的随机选择是不是对所有的token都进行了一个研究,还是之研究了部分的token(只有4个epochs的情况下)

本文把原始的mask方式称为静态mask (Static )

为了减弱这个问题,本文对所有数据复制了10次,这样对同一个序列去mask的时候就会有10种mask的方式,这样就可以尽可能的涵盖所有的mask方式,从而捕捉序列的大部分信息.

文献记录-RoBERTa: A Robustly Optimized BERT Pretraining Approach_第1张图片从上图的实验结果来看"稍稍提升",后面的实验都会使用动态掩码(dynamic mask)

2: 模型输入格式和NSP

原始的BERT的句子对(有50%是真的,有50%是假的)是来自与同一个文本或者不同的文本中采样的,除了MLM任务外,还训练了模型去预测NSP的任务,去预测句子对中的下一句是否是下一句.

预训练中NSP损失是否真的有效需要研究,具体如下:

SEGMENT-PAIR+NSP:每个输入样例是一对段落对,每个段落对由多个自然句组成
SENTENCE-PAIR+NSP:每个输入样例是一对句子对,并增大了BATCH
FULL-SENTENCES:每个输入样例是512个token(可跨文本),并取消了NSP的LOSS
DOC-SENTENCES:和FULL-SENTENCES大部分一样,只是不会去跨文本取样,所以一个样板可能会少于512个token.

文献记录-RoBERTa: A Robustly Optimized BERT Pretraining Approach_第2张图片对比SEGMENT-PAIR 和 SENTENCE-PAIR,后者的下游任务性能降低,可能是因为单句对无法学习到远程依赖.

而去除了NSP损失之后,下游任务的效果提升了

对比跨文档取样和单文档取样的文档训练结果,单文档会略优,但是区别不大

3:用更大的BATCH去训练

文献记录-RoBERTa: A Robustly Optimized BERT Pretraining Approach_第3张图片
更大的bsz对下游任务有一点点提升,本文后面的工作是用8K的bsz.

4:Encoding

在原有的词语基础上对原有的词语提取subword


ROBERTA

文献记录-RoBERTa: A Robustly Optimized BERT Pretraining Approach_第4张图片
可以看到在增加预训练数据,增大BATCH_SIZE,增加训练步数的情况下,下游任务性能有明显的提高.

你可能感兴趣的:(文献记录)