RoBERTa: A Robustly Optimized BERT Pretraining Approach

下载 PDF

RoBERTa: A Robustly Optimized BERT Pretraining Approach - 中文验证版

英文原文卡片:roberta_2019.md

状态:已翻译。

元数据

  • Slug: roberta_2019
  • 年份: 2019
  • 会议: arXiv
  • 作者: Yinhan Liu et al.
  • 阅读状态: read complete
  • 计算范式: TPU、加速器与 Transformer 时代
  • 主要来源: PDF抽取文本

计算设置

论文明确给出了训练硬件和精度范式。RoBERTa 使用混合精度浮点算术在 DGX-1 机器上训练,每台机器配备 8 块 32GB NVIDIA V100 GPUs,通过 InfiniBand 互联。对于最终的大型预训练配置,论文说明它使用 1024 块 V100 GPUs 训练约一天。这是一个清晰的 Volta 时代多节点 GPU 结果:tensor-core 友好的混合精度、大数据并行 batch 和 InfiniBand 通信是方法的一部分,而非附带的基础设施。

架构被刻意保持接近 BERTLARGE:24 层、hidden size 1024、16 个注意力头、约 355M 参数。计算变化在于围绕该架构的配方:完整长度的 512-token 序列、后续实验中使用 8K 序列的大 batch、dynamic masking、无 next-sentence prediction 目标,以及 160GB 未压缩文本。最强的 Table 4 行在 160GB 混合语料上以 batch size 8K 训练 500K steps。

瓶颈

论文的核心瓶颈主张是 BERT 相对于可用的 2019 年 GPU 集群范式而言是 undertrained 的。约束不再仅仅是 Transformer 编码器是否能装入;BERTLARGE 规模的模型可以装入多 GPU 系统。真正的瓶颈是有用的 token 吞吐量、大 batch 优化、上下文利用以及避免重复暴露于相同的 static masks。

Static masking 在更长时间训练时会浪费数据多样性,因为每个序列只被看到有限的 mask 集合。短序列课程减少了每步处理的 512-token 上下文数量。next-sentence prediction 损失约束了输入打包,在这些实验中并没有明确的下游收益。较小的 batch 降低了分布式 GPU 利用率,并且对于相同数量的序列需要多得多的优化器步骤。RoBERTa 将这些视为计算结构低效。

方法适配

RoBERTa 将 BERT 适配到更大的 GPU 训练预算,而不改变核心 Transformer 编码器。dynamic masking 在序列输入模型时生成 mask 模式,因此更长时间的训练可以看到更多 masked-token prediction 变体,而非重复相同的静态损坏。FULL-SENTENCES 打包不含 NSP,允许模型使用更长的连续文本块,最多 512 个 tokens,同时避免了在他们的控制比较中没有帮助的 sentence-pair 机制。

大 batch 训练是最显式的设备适配。论文观察到 BERTBASE 以 batch size 256 训练 1M steps,在计算上等价于通过累积以 2K 序列训练 125K steps 或 8K 序列训练 31K steps。更大的 batch 更容易通过分布式数据并行训练进行并行化,而后续的 RoBERTa 实验使用 8K 序列。V100 上的混合精度降低了内存压力并提高了吞吐量。结果是一个将 V100 集群用于更多数据和更长训练而非新架构的配方。

数据混合也是计算感知的。从 16GB 移动到 160GB 随着步骤增加减少了过拟合风险。论文指出即使训练最长的模型也没有表现出过拟合迹象,并且可能会从额外训练中受益。

证据

Table 3 中的大 batch 实验在 BooksCorpus 和 Wikipedia 上比较了 BERTBASE 计算匹配范式。Batch 256 训练 1M steps 得到保留 MLM perplexity 3.99、MNLI-m 84.7、SST-2 92.7。Batch 2K 训练 125K steps 将 perplexity 改善至 3.68、MNLI-m 至 85.2、SST-2 至 92.9。Batch 8K 训练 31K steps 得到 perplexity 3.77、MNLI-m 84.6、SST-2 92.8。该表支持了论文的主张,即更大的 batch 可以在保持或改善质量的同时更好地映射到分布式硬件。

Table 4 显示了主要的缩放证据。RoBERTa 在 Books+Wiki、batch 8K、100K steps 下得到 SQuAD 1.1/2.0 为 93.6/87.3、MNLI-m 89.0、SST-2 95.3。将数据增加到 160GB 且在相同 100K steps 下,改善至 94.0/87.7、89.3、95.6。在 300K steps 下训练更长得到 94.4/88.7、90.0、96.1。在 500K steps 下训练更长得 94.6/89.4、90.2、96.4。BERTLARGE 参考行为 90.9/81.8、86.6、93.7。

最终的 GLUE 结果也是配方驱动的:RoBERTa 在公开 GLUE 排行榜上达到 88.5 的平均分,并在 9 个 GLUE 任务中的 4 个上报告了 state of the art,同时使用相同的 masked-language-modeling 目标和 BERTLARGE 架构家族。

历史影响

RoBERTa 将 2019 年 NLP 进展重新定义为计算配方的故事。它没有提出新的预训练目标,而是表明 BERT 留下了未使用的性能,因为原始配方并不匹配当时可用的大型 V100 集群预算。这使得“用更多数据训练更久、使用更大 batch、并移除不必要的目标复杂度”成为后续 Transformer 工作的默认基线。

对于本历史记录,该卡片将方法选择直接绑定到设备结构。V100 内存和混合精度使得 512-token、大 batch 训练变得可行;InfiniBand 互联的 DGX-1 集群使 8K 序列数据并行变得可行;dynamic masking 和更多数据使得增加的步骤有用而非重复。

局限

该结果在 2019 年学术标准下是昂贵的:1024 块 V100 GPUs 训练约一天远在单工作站范式之外。论文也有意让架构基本保持不变,因此它并未回答不同的编码器架构是否会更好地利用相同的计算。数据和训练时长维度部分混杂;作者指出他们的实验未完全分离规模与多样性。选择 byte-level BPE 是为了通用性,尽管早期实验显示在某些端任务上有轻微下降。一些排行榜设置使用集成和任务特定的微调调整,因此预训练计算故事在受控的开发集表格中最为清晰。

链接