大型语言模型:RoBERTa – 一种鲁棒优化的BERT方法

大型语言模型:RoBERTa - 鲁棒优化的BERT方法

了解BERT优化中使用的关键技术

简介

BERT模型的出现在自然语言处理领域取得了显著的进展。BERT的架构来自于Transformer,在语言建模、下一个句子预测、问答、命名实体识别等各种下游任务上取得了最先进的结果。

大型语言模型: BERT – 来自Transformer的双向编码器表示

了解BERT构建最先进的嵌入表示的方法

towardsdatascience.com

尽管BERT表现出色,但研究人员仍在尝试不同的配置以获得更好的指标。幸运的是,他们成功了,并提出了一个新模型称为RoBERTa – 稳健优化的BERT方法。

在本文中,我们将引用包含该模型详细信息的官方RoBERTa论文。简单来说,RoBERTa在原始BERT模型的基础上进行了几个独立的改进 – 包括架构在内的所有原则保持不变。本文将介绍和解释所有这些改进。

1. 动态遮盖

从BERT的架构中我们了解到,在预训练过程中,BERT通过尝试预测一定比例的遮盖标记来进行语言建模。原始实现的问题是,在不同批次中,对于给定的文本序列,选择的遮盖标记有时是相同的。

更准确地说,训练数据集被复制了10次,因此每个序列仅以10种不同的方式进行遮盖。考虑到BERT运行40个训练时期,每个具有相同遮盖的序列将被传递给BERT四次。研究人员发现,更好的方法是使用动态遮盖,这意味着每次传递序列给BERT时,都会生成独特的遮盖。总体而言,这样的训练结果中减少了重复的数据,使模型能够处理更多样的数据和遮盖模式。

Static masking vs Dynamic masking

2. 下一个句子预测

该论文的作者进行了关于如何模拟下一个句子预测任务的研究。因此,他们得出了几个有价值的见解:

  • 去除下一个句子预测损失会带来稍微更好的性能。
  • 与传递单个自然句子到BERT输入相比,传递由多个句子组成的序列会降低性能。解释这一现象的最有可能的假设之一是,模型仅依靠单个句子学习长程依赖关系的困难。
  • 从单个文档中连续采样句子构建输入序列比从多个文档中采样更有益。通常,序列总是从单个文档中连续的完整句子构建,使得总长度最多为512个标记。当我们到达文档的末尾时,就会出现问题。在这方面,研究人员比较了停止为这样的序列采样句子是否值得,或者是否还要额外采样下一个文档的前几个句子(并在文档之间添加相应的分隔符标记)。结果显示第一种选择更好。

最终,对于RoBERTa的最终实现,作者选择保留前两个方面,而忽略第三个方面。尽管观察到第三个见解背后的改进,研究人员没有继续使用它,因为否则,将使先前实现之间的比较更加困难。这是因为达到文档边界并在那里停止意味着输入序列将包含少于512个标记。为了在所有批次中拥有相似数量的标记,这种情况下的批次大小需要增加。这导致批次大小可变和更复杂的比较,而研究人员希望避免这种情况。

3. 增大批次大小

NLP的最新进展表明,适当减小学习率和训练步数的同时增大批次大小通常能提高模型的性能。

作为提醒,BERT基础模型是在批次大小为256个序列,训练了一百万步。作者尝试了在批次大小为2K和8K时训练BERT,而后者的值被选择用于训练RoBERTa。相应的训练步数和学习率分别变为31K和1e-3。

还要注意,增大批次大小会通过一种特殊的技术称为“梯度累积”使并行化变得更容易。

4. 字节文本编码

NLP中存在三种主要类型的文本标记化:

  • 字符级标记化
  • 子词级标记化
  • 词级标记化

原始的BERT使用子词级标记化,词汇大小为30K,这是在输入预处理和使用几种启发式方法后学习得到的。RoBERTa使用字节而不是Unicode字符作为子词的基础,并将词汇大小扩展到50K,无需任何预处理或输入标记化。这导致BERT基础模型和BERT大模型分别增加了15M和20M个额外的参数。RoBERTa中引入的编码版本显示出稍微较差的结果。

然而,在RoBERTa中词汇大小的增长使其能够编码几乎任何单词或子词,而无需使用未知标记,相比之下,这给RoBERTa带来了明显的优势,因为该模型现在可以更完全地理解包含罕见单词的复杂文本。

预训练

除此之外,RoBERTa使用与BERT大模型相同的架构参数应用了上述四个方面。RoBERTa的参数总数为355M。

RoBERTa在组合了五个大规模数据集的基础上进行了预训练,总共包含160 GB的文本数据。相比之下,BERT大模型仅在13 GB的数据上进行了预训练。最后,作者将训练步数从100K增加到了500K。

结果,RoBERTa在最流行的基准测试中表现优于BERT大模型和XLNet大模型。

RoBERTa版本

与BERT类似,研究人员开发了RoBERTa的两个版本。基础版本和大版本中的大部分超参数相同。下图展示了它们的主要区别:

RoBERTa中的微调过程与BERT类似。

结论

在本文中,我们探讨了BERT的改进版本,通过引入以下几个方面修改了原始的训练过程:

  • 动态掩码
  • 省略下一句预测目标
  • 对更长的句子进行训练
  • 增大词汇大小
  • 使用更大的批次进行更长时间的训练

最终的RoBERTa模型在顶级基准测试中表现优于其前辈。尽管配置更复杂,RoBERTa仅增加了15M个额外的参数,但推理速度与BERT相当。

资源

  • RoBERTa: 一种经过优化的鲁棒性BERT预训练方法

除非另有说明,所有图片均为作者所创作