admin管理员组

文章数量:1652190

1 简介

本文根据2019年《RoBERTa: A Robustly Optimized BERT Pretraining Approach》翻译总结的。
RoBERTa:稳健优化BERT方法。对BERT进行了优化。

RoBERTa :Robustly optimized BERT approach.

RoBERTa包括:

  1. 采用动态mask;
  2. 采用FULL-SENTENCES without NSP loss;没有使用NSP,NSP作用不大。
  3. large mini-batches;采用更大的batch。
  4. a larger byte-level BPE。BPE 指Byte-Pair Encoding 。

此外,
1) 训练更长的时间也可以改进RoBERTa。
2) 使用更多额外的数据,可以改进模型对下游任务的表现。

实验结果主要和BERT、XLNet进行了比较,好于它们。

2 Static vs. Dynamic Masking

BERT默认是静态mask(在数据预处理时表现一次)。我们改成动态的,可以看到表现有提升。动态mask指在每次将序列输入到模型时生成mask,

3 FULL-SENTENCES without NSP loss

SEGMENT-PAIR:BERT中采用的。有NSP。

SENTENCE-PAIR+NSP:将segment换成sentence(句子)。

FULL-SENTENCES:每个输入是连续从一个文档或者多个文档中提取的,总长度至少512个token。输入可能跨文档,即当我们在一个文档采样完后,长度不够时,我们继续在下一个文档中采样,在他们中间会添加个额外的分割token。没有NSP。

DOC-SENTENCES:类似FULL-SENTENCES,只是不跨文档,所以可能不够512个token。我们采用动态创建batch size方法。没有NSP。

如下表,虽然DOC-SENTENCES效果好点,但因为其batchsize在变化,故为了简化与其他模型的比较,我们用的FULL-SENTENCES。

4 大batch的训练

如下表,可以看到2K的batchsize好于BERT的256.

5 BPE

Byte-Pair Encoding (BPE)是介于character-和word-level之间的混合,可以处理在自然语言中普遍存在的大量词汇。BFE不是依靠整个词语,而是采用子词语。

BPE的词汇大小一般是10K到100K个子词。但是unicode 字符占据了相当大一部分。Radford et al. (2019)引入一种新的方式,用bytes代替unicode字符。使用bytes可以学习一个的大小适中50K的子词表,可以编码任何文本,不用引入任何未知token。

原始的BERT使用的是字符水平的BPE,大小30K,是在用启发式tokenization处理后再被学习的。

我们用一个更大的50K子词的byte-level BPE代替BERT中的,不用任何额外的处理或者输入的tokenization。不过这增加了BERTBASE 和BERTLARGE分别15M、20M的参数量。

不过也有研究说BPE可能轻损害某些任务的表现。但是我们认为一个广泛使用的编码胜过表现上轻微的损失。这部分可以进一步研究下。

6 实验结果

GLUE上的实验结果:

SQuAD实验结果:

RACE实验结果:

本文标签: optimizedRobustlyRoBERTaApproachPretraining