RoBERTa:稳健优化的BERT预训练方法

RoBERTa进行了一项关于BERT预训练的复现研究,该研究仔细衡量了许多关键超参数和训练数据规模的影响。研究发现,BERT的训练明显不足,并且它能够达到甚至超越在其之后发布的每个模型的性能。

RoBERTa主要遵循原始BERT的优化超参数,但峰值学习率和热身步数除外,这两个参数会针对每种设置分别进行调整。

此外还发现,训练对Adam优化器中的ε项高度敏感。在某些情况下,调整该项后可获得更好的性能或更高的稳定性。同样,研究发现,在使用大批量数据进行训练时,将β₂设置为0.98可以增强稳定性。预训练使用长度最多为T = 512个标记的序列。

数据

RoBERTa研究了五个不同规模和领域的英语语料库,这些语料库未压缩文本总量超过160GB:

  • BOOKCORPUS和英文维基百科。这是最初用于训练BERT的数据(16GB)。
  • CC-NEWS,从CommonCrawl News数据集中的英文部分收集而来。该数据包含2016年9月至2019年2月期间抓取的6300万篇英文新闻文章(过滤后为76GB) 。
  • OPENWEBTEXT,是WebText语料库的开源复刻版本。其文本是从Reddit上获得至少三个点赞的分享链接中提取的网页内容(38GB)。
  • STORIES,是一个数据集,包含从CommonCrawl数据中筛选出的子集,筛选标准是使其风格与Winograd模式中的故事风格相匹配(31GB)。

训练过程分析

静态掩码与动态掩码

原始BERT的实现是在数据预处理期间进行一次掩码操作,从而生成一个单一的静态掩码。

为了避免在每个训练周期中,每个训练实例都使用相同的掩码,训练数据被复制了10次,这样在40个训练周期中,每个序列都会以10种不同的方式进行掩码。

RoBERTa将这种策略与动态掩码进行了比较,动态掩码是指每次将序列输入模型时都生成掩码模式。

大批量训练

BERTBASE模型训练100万步,批次大小为256个序列。通过梯度累积,这在计算成本上等同于以2000个序列的批次大小训练12.5万步,或以8000个序列的批次大小训练3.1万步。

RoBERTa观察到,使用大批量训练可以降低掩码语言建模目标的困惑度,同时提高最终任务的准确率。

文本编码

原始BERT的实现使用大小为30K的字符级字节对编码(BPE)词汇表,该词汇表是在使用启发式分词规则对输入进行预处理后学习得到的。

RoBERTa则考虑使用包含50K个子词单元的更大的字节级BPE词汇表来训练BERT,并且不对输入进行任何额外的预处理或分词操作。

这分别为BERTBASE和BERTLARGE增加了大约1500万和2000万个额外参数。

所有这些改进都进行了汇总,并评估了它们的综合影响,这种配置被称为RoBERTa,即稳健优化的BERT方法。

结果

论文:RoBERTa: A Robustly Optimized BERT Pretraining Approach

本文由mdnice多平台发布


柏企科技圈
23 声望5 粉丝