目录
介绍
RoBERTa(稳健优化的 BERT 预训练方法)代表了语言模型预训练方法的一个重大改进。RoBERTa 由 Facebook AI 和华盛顿大学的研究人员开发,表明可以通过仔细优化预训练过程,而不是通过架构更改,来大幅提高 BERT 的性能。
该论文解决了 NLP 研究领域中的一个关键挑战:由于训练数据、计算资源和超参数设置的差异,难以公平地比较不同的预训练方法。通过对 BERT 进行系统的复制研究,作者识别并优化了影响模型性能的关键因素,最终创建了一个模型,该模型在发布时达到或超过了最先进的结果。
背景与动机
在 RoBERTa 之前,像 ELMo、GPT、BERT、XLM 和 XLNet 这样的自监督学习模型已经通过在大量未标记文本上进行预训练,在 NLP 基准测试中显示出令人印象深刻的结果。其中,BERT(来自 Transformers 的双向编码器表示)特别具有影响力,它引入了一个掩码语言建模(MLM)目标,使模型能够学习双向表示。
然而,RoBERTa 的作者假设 BERT“训练不足”,其全部潜力尚未实现。这促使他们进行了复制研究,旨在:
- 评估各种超参数选择和训练数据特征如何影响 BERT 预训练
- 开发一种改进的 BERT 模型训练方法
- 证明 BERT 的掩码语言模型目标仍然与更新的替代方案具有竞争力
鉴于像 XLNet 这样的替代方法的出现,该研究尤为重要,XLNet 声称可以解决 BERT 的一些局限性,但引入了重大的架构更改。
对 BERT 的关键修改
RoBERTa 对 BERT 的预训练方法进行了几项关键修改:
-
动态掩码:虽然原始 BERT 使用静态掩码(在整个训练周期中应用相同的掩码),但 RoBERTa 实现了动态掩码,其中每次将序列馈送到模型时都会生成掩码模式。这确保了模型看到同一序列的不同掩码,从而增加了训练多样性。
-
删除下一句预测(NSP):原始 BERT 使用两个目标:掩码语言建模(MLM)和下一句预测(NSP)。RoBERTa 在实验表明 NSP 目标要么没有影响,要么略微降低性能后,消除了 NSP 目标。
-
更大的批次大小:与 BERT 的 256 相比,RoBERTa 使用明显更大的批次大小(最多 8K 个示例),这提高了优化稳定性,并允许更好地利用现代硬件。
-
字节级 BPE:RoBERTa 使用具有 50K 个子词单元的字节级 BPE 词汇表,而不是字符级 BPE,这允许模型处理任何输入文本,而不会引入“未知”标记。
-
更多的训练数据:RoBERTa 在大量数据上进行训练,包括 CC-NEWS(作者收集的新数据集),以及 BookCorpus、Wikipedia、Stories 和 CommonCrawl 数据。
训练方法
作者在 FAIRSEQ 框架中重新实现了 BERT,以系统地探索不同的训练配置。他们测试了各种输入格式和文档连接策略:
-
SEGMENT-PAIR+NSP: 原始 BERT 方法,使用来自相同或不同文档的片段对和 NSP 目标。
-
SENTENCE-PAIR+NSP: 类似于上面,但使用单个句子而不是更长的片段。
-
FULL-SENTENCES: 将来自一个或多个文档的完整句子打包到序列中,没有 NSP 目标。
-
DOC-SENTENCES: 类似于 FULL-SENTENCES,但确保所有句子都来自同一个文档。
实验表明,使用没有 NSP 的 FULL-SENTENCES 格式进行训练会产生最佳结果。作者还发现,更长时间(更多步数)和更多数据上的训练可以显著提高性能。
对于最终的 RoBERTa 模型,作者使用了以下配置:
- BERT-large 架构(3.55 亿个参数)
- 来自不同来源的 160GB 文本
- 批量大小为 8K
- 峰值学习率为 0.0004
- 500K 训练步数
- 字节级 BPE,词汇量为 50K
性能结果
RoBERTa 在多个基准测试中取得了最先进的结果:
-
GLUE 基准测试:RoBERTa 在所有任务中都优于 BERT-large,并且达到或超过了 XLNet 的性能。值得注意的是,RoBERTa 在没有多任务微调的情况下取得了这些结果。
-
SQuAD 问答:在 SQuAD v1.1 开发集上,RoBERTa 与经过专门针对问答进行额外数据训练的 BERT-large 的性能相匹配。
-
RACE 阅读理解:RoBERTa 在这个具有挑战性的多项选择阅读理解数据集上显著优于之前的系统。
这些结果表明,原始 BERT 架构在预训练期间得到适当优化后,仍然具有很强的竞争力。
技术见解
该研究提供了关于语言模型预训练的几个有价值的技术见解:
-
动态 vs. 静态 Masking:动态 masking 至少与静态 masking 一样有效。由于每个序列每次都看到不同的 masking 模式,因此模型在相同数量的训练步骤中遇到更多的 masking 模式。
-
NSP 的影响:与最初的假设相反,下一个句子预测目标并不能持续提高性能,有时甚至可能是有害的。这一发现挑战了之前认为 NSP 是 BERT 成功的关键组成部分的观点。
-
批量大小效应:使用更大的批量(8K vs. 256)进行训练可以提高困惑度(语言建模性能)和下游任务准确性。这对于现代硬件上的分布式训练尤其重要。
-
训练时长:作者发现 BERT 在其原始实现中明显训练不足,而继续训练可以带来更好的性能。
-
数据大小和多样性:增加预训练数据的数量和多样性可以显著提高性能,突出了自监督学习中数据管理的重要性。
更广泛的影响
RoBERTa 的贡献超出了其直接的性能提升。该研究:
-
建立了更好的可重复性:通过仔细记录他们的方法并发布代码,作者提高了 NLP 研究的透明度。
-
提供优化指导:该论文为优化语言模型预训练提供了实用建议,这有利于更广泛的研究社区。
-
验证了 masked 语言建模:RoBERTa 证明了相对简单的 masked 语言建模方法仍然有效,从而减少了开发越来越复杂的预训练目标的压力。
-
强调训练方法:这项工作将重点从架构创新转移到训练方法,作为模型性能的关键因素。
-
创建了更强的基线:RoBERTa 为评估未来语言模型预训练的改进提供了更强大的基线。
结论
RoBERTa 表明,对预训练过程进行仔细的优化可以在不改变架构的情况下带来显著的性能提升。通过系统地研究诸如动态掩码、移除 NSP、更大的批量大小以及更多的训练数据等因素,作者从原始 BERT 架构中提取了显著更高的性能。
该研究还提供了关于语言模型预训练中不同设计选择的相对重要性的宝贵见解。例如,它挑战了 NSP 目标的必要性,并强调了使用更多数据进行更长时间训练的价值。
RoBERTa 的成功凸显了 NLP 研究中重复研究的重要性,并强调了掩码语言建模作为预训练目标的潜力。这项工作通过建立更强的基线并强调训练方法与架构创新同等重要的作用,影响了后续的研究。
相关引用
Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of deep bidirectional transformers for language understanding. InNorth American Association for Computational Linguistics (NAACL).
- 这是最初介绍 BERT 的论文,RoBERTa 是建立在其之上的模型。该论文讨论了 BERT 的架构、训练目标和实验结果。
Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, and Quoc V Le. 2019. Xlnet: Generalized autoregressive pretraining for language understanding.arXiv preprint arXiv:1906.08237.
- XLNet 是一种用于语言理解的广义自回归预训练方法。RoBERTa 与 XLNet 进行了比较,并通过使用改进的训练程序声称可以匹配或超过 XLNet 的结果。
Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, and Ilya Sutskever. 2019. Language models are unsupervised multitask learners. Technical report, OpenAI.
- 这项工作介绍了一个大型语言模型,并探索了其作为无监督多任务学习器的能力。本文使用字节级 BPE 作为编码方案,RoBERTa 采用了这种方案,并展示了更大训练数据集的优势。
Alex Wang, Amanpreet Singh, Julian Michael, Felix Hill, Omer Levy, and Samuel R. Bowman. 2019b. GLUE: A multi-task benchmark and analysis platform for natural language understanding. InInternational Conference on Learning Representations (ICLR).
- GLUE 基准是一个用于训练、评估和分析自然语言理解系统的资源集合。RoBERTa 广泛使用此基准来报告其结果并展示其最先进的性能。
所有评论(0)