当前位置:   article > 正文

RoBERTa:一种稳健优化的 BERT 预训练方法——中文翻译

RoBERTa:一种稳健优化的 BERT 预训练方法——中文翻译

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

0、摘要

语言模型预训练带来了显着的性能提升,但不同方法之间的仔细比较具有挑战性。 训练在计算上是昂贵的,通常在不同大小的私人数据集上进行,而且正如我们将要展示的那样,超参数的选择对最终结果有重大影响。 我们提出了 BERT 预训练的复制研究(Devlin et al., 2019 ),该研究仔细测量了许多关键超参数和训练数据大小的影响。 我们发现 BERT 明显训练不足,并且可以达到或超过其后发布的每个模型的性能。 我们最好的模型在 GLUE、RACE 和 SQuAD 上取得了最先进的结果。 这些结果突出了以前被忽视的设计选择的重要性,并对最近报告的改进来源提出了疑问。 我们发布了我们的模型和代码【1】。

1、介绍

自我训练方法,例如 ELMo(Peters et al., 2018 )、GPT(Radford et al., 2018 )、BERT(Devlin et al., 2019 )、XLM(Lample and Conneau et al., 2019 )和 XLNet(Yang et al., 2019) 带来了显着的性能提升,但要确定方法的哪些方面贡献最大可能具有挑战性。 训练在计算上是昂贵的,限制了可以完成的调整量,并且通常使用不同大小的私人训练数据来完成,限制了我们衡量建模进步效果的能力。
我们提出了 BERT 预训练的复制研究(Devlin 等人,2019 年),其中包括对超参数调整和训练集大小的影响的仔细评估。 我们发现 BERT 训练严重不足,并提出了一种改进的方法来训练 BERT 模型,我们称之为 RoBERTa,它可以达到或超过所有后 BERT 方法的性能。 我们的修改很简单,它们包括:(1)训练模型的时间更长,批次更大,数据更多; (2)去除下一句预测目标; (3) 较长序列的训练; (4) 动态改变应用于训练数据的掩蔽模式。 我们还收集了一个与其他私人使用的数据集大小相当的大型新数据集 (CC-NEWS),以更好地控制训练集大小的影响。

​ 在控制训练数据时,我们改进的训练程序改进了 GLUE 和 SQuAD 上已发布的 BERT 结果。 当对额外数据进行更长时间的训练时,我们的模型在公共 GLUE 排行榜上获得了 88.5 分,与( Yang et al., 2019)报告的 88.4 分相匹配。 我们的模型在 4/9 的 GLUE 任务上建立了新的最先进技术:MNLI、QNLI、RTE 和 STS-B。 我们还在 SQuAD 和 RACE 上匹配了最先进的结果。 总体而言,我们重新确定 BERT 的掩码语言模型训练目标与最近提出的其他训练目标(例如扰动自回归语言建模)相比具有竞争力(Yang et al., 2019)【2】。

​ 总之,本文的贡献是:(1)我们提出了一组重要的 BERT 设计选择和训练策略,并介绍了可以提高下游任务性能的替代方案; (2) 我们使用了一个新的数据集 CCNEWS,并确认使用更多的数据进行预训练可以进一步提高下游任务的性能; (3) 我们的训练改进表明,在正确的设计选择下,掩码语言模型预训练与所有其他最近发布的方法相比具有竞争力。 我们发布了在 PyTorch 中实现的模型、预训练和微调代码(Paszke et al., 2017 年)。

【1】Our models and code are available at: https://github.com/pytorch/fairseq

【2】It is possible that these other methods could also improve with more tuning. We leave this exploration to future work.

2、背景

在本节中,我们将简要概述 BERT(Devlin et al., 2019 年)预训练方法以及我们将在下一节中通过实验检验的一些训练选择。

2.1、设置

BERT 将两个片段(标记序列)的串联作为输入,x1, . . . , xN 和 y1, . . . , yM。 片段通常由多个自然句组成。 这两个片段作为单个输入序列呈现给 BERT,并用特殊标记分隔它们:[CLS], x1, . . . , xN , [SEP ], y1, . . . , yM , [EOS]。 M 和 N 受到约束,使得 M + N < T ,其中 T 是在训练期间控制最大序列长度的参数。

​ 该模型首先在大型未标记文本语料库上进行预训练,然后使用最终任务标记数据进行微调。

2.2、架构

BERT 使用现在无处不在的变压器架构(Vaswani et al., 2017 年),我们不会对其进行详细审查。 我们使用具有 L 层的变压器架构。 每个block使用A个self-attention heads和hidden dimension H。

2.3、训练目标

在预训练期间,BERT 使用两个目标:掩码语言建模和下一句预测。

Masked Language Model (MLM) 输入序列中标记的随机样本被选择并替换为特殊标记 [MASK]。 MLM 目标是预测屏蔽标记的交叉熵损失。 BERT 统一选择 15% 的输入 token 进行可能的替换。 在选定的标记中,80% 被替换为 [MASK ],10% 保持不变,10% 被随机选择的词汇标记替换。

​ 在最初的实现中,随机屏蔽和替换在开始时执行一次并在训练期间保存,尽管在实践中,数据是重复的,因此每个训练句子的屏蔽并不总是相同(参见第 4.1 节)。

Next Sentence Prediction (NSP) NSP 是一种二进制分类损失,用于预测原始文本中的两个片段是否相互跟随。 通过从文本语料库中提取连续的句子来创建正面示例。 负面示例是通过将来自不同文档的片段配对来创建的。 正例和负例以相等的概率采样。

​ NSP 目标旨在提高下游任务的性能,例如自然语言推理 (Bowman et al., 2015),这需要对句子对之间的关系进行推理。

2.4、优化

BERT 使用 Adam(Kingma and Ba et al., 2015 )使用以下参数进行了优化:β1 = 0.9,β2 = 0.999,ε = 1e-6 和 L2 权重衰减 0.01。 学习率在前 10,000 步预热到峰值 1e-4,然后线性衰减。 BERT 在所有层和注意力权重上以 0.1 的丢失率和 GELU 激活函数进行训练(Hendrycks 和 Gimpel,2016)。 模型针对 S = 1,000,000 次更新进行了预训练,小批量包含 B = 256 个最大长度 T = 512 个标记的序列。

2.5、数据

BERT 在 BOOKCORPUS(Zhu et al.,2015 年)和英语 WIKIPEDIA 的组合上进行训练,其未压缩文本总数为 16GB【3】。

【3】Yang et al. (2019) use the same dataset but report having only 13GB of text after data cleaning. This is most likely due to subtle differences in cleaning of the Wikipedia data.

3、实验设置

在本节中,我们描述了BERT复制研究的实验设置。

3.1、实验

我们在 FAIRSEQ 中重新实现了 BERT(Ott et al.,2019)。 我们主要遵循第 2 节中给出的原始 BERT 优化超参数,但峰值学习率和预热步骤数除外,它们针对每个设置单独调整。 我们还发现训练对 Adam epsilon 项非常敏感,在某些情况下,我们在调整后获得了更好的性能或更高的稳定性。 同样,我们发现设置 β2 = 0.98 可以提高大批量训练时的稳定性。

​ 我们使用最多 T = 512 个标记的序列进行预训练。 与 (Devlin et al.,2019)不同,我们不会随机注入短序列,我们不会为前 90% 的更新训练缩短的序列长度。 我们只训练全长序列。

​ 我们在 DGX-1 机器上使用混合精度浮点算法进行训练,每台机器都有 8×32GB Nvidia V100 GPU,通过 Infiniband 互连(Micikevicius et al.,2018 年)。

3.2、数据

BERT 式预训练关键依赖于大量文本。 巴耶夫斯基等人。 (2019) 证明增加数据量可以提高最终任务性能。 一些努力已经在比原始 BERT 更大、更多样化的数据集上进行了训练(Radford 等人,2019 年;Yang 等人,2019 年;Zellers 等人,2019 年)。 不幸的是,并非所有额外的数据集都可以公开发布。 对于我们的研究,我们专注于收集尽可能多的数据用于实验,使我们能够为每次比较匹配数据的整体质量和数量。 我们考虑了五个不同大小和领域的英语语料库,总计超过 160GB 的未压缩文本。 我们使用以下文本语料库:

  • BOOKCORPUS (Zhu et al., 2015) plus English WIKIPEDIA.这是用于BERT训练的原始数据(16GB)。
  • CC-NEWS,我们从 CommonCrawl 新闻数据集的英文部分收集(Nagel,2016)。 该数据包含 2016 年 9 月至 2019 年 2 月期间抓取的 6300 万篇英文新闻文章(过滤后 76GB)【4】。
  • OPENWEBTEXT(Gokaslan and Cohen,2019 ),Radford et al. (2019) 中描述的 WebText 语料库的开源再创作。该文本是从Reddit上共享的URL中提取的Web内容,至少有三个赞成票(38GB)【5】。

3.3、评估

在之前的工作之后,我们使用以下三个基准评估下游任务的预训练模型。

GLUE 通用语言理解评估 (GLUE) 基准(Wang et al.,2019b)是用于评估自然语言理解系统的 9 个数据集的集合【6】。 任务被框定为单句分类或句子对分类任务。GLUE组织者提供培训和开发数据拆分以及提交服务器和排行榜,允许参与者在私人保留的测试数据上评估和比较他们的系统。

​ 对于第 4 节中的复制研究,我们在相应的单任务训练数据(即没有多任务训练或集成)上微调预训练模型后,报告开发集的结果。我们的微调程序遵循原始的BERT论文(Devlin et al.,2019)。

​ 在第 5 节中,我们还报告了从公共排行榜获得的测试集结果。这些结果取决于几个特定于任务的修改,我们将在第 5.1 节中描述。

SQuAD 斯坦福问答数据集 (SQuAD) 提供了一段上下文和一个问题。任务是通过从上下文中提取相关跨度来回答问题。我们评估了SQuAD的两个版本:V1.1和V2.0(Rajpurkar et al,2016,2018)。在 V1.1 中,上下文始终包含答案,而在 V2.0 中,某些问题在提供的上下文中没有得到回答,这使得任务更具挑战性。

​ 对于SQuAD V1.1,我们采用与BERT相同的跨度预测方法(Devlin et al.,2019)。对于 SQuAD V2.0,我们添加了一个额外的二元分类器来预测问题是否可回答,我们通过对分类和跨度损失项求和来共同训练。在评估期间,我们仅预测被归类为可回答的对的跨度指数。

RACE The ReAding Comprehension from Exams (RACE) (Lai et al., 2017) 任务是一个大规模的阅读理解数据集,拥有超过 28,000 篇文章和近 100,000 个问题。该数据集收集自中国的英语考试,专为初中和高中学生设计。在RACE中,每个段落都与多个问题相关联。对于每个问题,任务是从四个选项中选择一个正确答案。与其他流行的阅读理解数据集相比,RACE具有明显更长的背景,并且需要推理的问题比例非常大。

【4】We use news-please (Hamborg et al., 2017) to collect and extract CC-NEWS. CC-NEWS is similar to the REALNEWS dataset described in Zellers et al. (2019).

【5】The authors and their affiliated institutions are not in any way affiliated with the creation of the OpenWebText dataset.

【6】The datasets are: CoLA (Warstadt et al., 2018), Stanford Sentiment Treebank (SST) (Socher et al., 2013), Microsoft Research Paragraph Corpus (MRPC) (Dolan and Brockett, 2005), Semantic Textual Similarity Benchmark (STS) (Agirre et al., 2007), Quora Question Pairs (QQP) (Iyer et al., 2016), MultiGenre NLI (MNLI) (Williams et al., 2018), Question NLI (QNLI) (Rajpurkar et al., 2016), Recognizing Textual Entailment (RTE) (Dagan et al., 2006; Bar-Haim et al., 2006; Giampiccolo et al., 2007; Bentivogli et al., 2009) and Winograd NLI (WNLI) (Levesque et al., 2011).

4、训练过程分析

本节探讨并量化哪些选择对于成功预训练 BERT 模型很重要。 我们保持模型架构固定【7】。具体来说,我们首先训练具有与 BERTBASE 相同配置的 BERT 模型(L = 12,H = 768,A = 12,110M 参数)。

4.1、静态掩码与动态掩码比较

如第 2 节所述,BERT 依赖于随机屏蔽和预测标记。 原始的 BERT 实现在数据预处理期间执行一次掩码,从而产生单个静态掩码。 为了避免在每个时期对每个训练实例使用相同的掩码,将训练数据复制 10 次,以便在 40 个训练时期以 10 种不同的方式对每个序列进行掩码。 因此,在训练过程中,每个训练序列都以相同的掩码出现四次。

​ 我们将此策略与动态掩码进行比较,在动态掩码中,我们每次向模型提供序列时都会生成掩码模式。 在为更多步骤或使用更大的数据集进行预训练时,这变得至关重要。

表 1:BERTBASE 的静态和动态掩蔽之间的比较。 我们报告 SQuAD 的 F1 和 MNLI-m 和 SST-2 的准确性。 报告的结果是 5 个随机初始化(种子)的中位数。 参考结果来自( Yang et al.,2019)。

结果 表 1 比较了 (Devlin et al.,2019)发表的 BERTBASE 结果。到我们使用静态或动态掩蔽的重新实现。 我们发现我们使用静态掩蔽的重新实现与原始 BERT 模型的性能相似,而动态掩蔽与静态掩蔽相当或略好。 鉴于这些结果和动态掩蔽的额外效率优势,我们在其余实验中使用动态掩蔽。

4.2、模型输入格式和下一句预测

在原始的 BERT 预训练过程中,该模型观察到两个连接的文档片段,它们要么从同一文档(p = 0.5)连续采样,要么从不同的文档采样。 除了掩码语言建模目标之外,该模型还经过训练以通过辅助的下一句预测 (NSP) 损失来预测观察到的文档片段是来自相同文档还是不同文档。

​ NSP 损失被假设为训练原始 BERT 模型的一个重要因素。 德夫林等人。 (2019) 观察到移除 NSP 会损害性能,QNLI、MNLI 和 SQuAD 1.1 的性能会显着下降。 然而,最近的一些工作质疑 NSP 损失的必要性(Lample and Conneau,2019 ;Yang et al.,2019 ;Joshi et al.,2019 )。

​ 为了更好地理解这种差异,我们比较了几种替代训练格式:

  • SEGMENT-PAIR+NSP:这遵循 BERT(Devlin et al.,2019)中使用的原始输入格式,具有 NSP 损失。 每个输入都有一对段,每个段可以包含多个自然句子,但总的组合长度必须小于 512 个标记。
  • SENTENCE-PAIR+NSP:每个输入都包含一对自然句子,要么从一个文档的连续部分采样,要么从单独的文档采样。 由于这些输入明显少于 512 个标记,因此我们增加了批处理大小,以便标记总数保持与 SEGMENT-PAIR+NSP 相似。 我们保留 NSP 损失。
  • FULL-SENTENCES:每个输入都包含从一个或多个文档中连续采样的完整句子,因此总长度最多为 512 个标记。 输入可能会跨越文档边界。 当我们到达一个文档的末尾时,我们开始从下一个文档中采样句子,并在文档之间添加一个额外的分隔符。 我们删除了 NSP 损失。
  • DOC-SENTENCES:输入的构造类似于 FULL-SENTENCES,只是它们不能跨越文档边界。 在文档末尾采样的输入可能少于 512 个标记,因此我们在这些情况下动态增加批量大小以实现与 FULLSENTENCES 相似的总标记数。 我们删除了 NSP 损失。

表 2:在 BOOKCORPUS 和 WIKIPEDIA 上预训练的基本模型的开发集结果。 所有模型都经过 1M 步训练,批量大小为 256 个序列。 我们报告 SQuAD 的 F1 和 MNLI-m、SST-2 和 RACE 的准确性。 报告的结果是五个随机初始化(种子)的中位数。 BERTBASE 和 XLNetBASE 的结果来自(Yang et al.2019)。

结果 表 2 显示了四种不同设置的结果。 我们首先比较(Devlin et al.,2019)的原始 SEGMENT-PAIR 输入格式。到 SENTENCE-PAIR 格式; 两种格式都保留了 NSP 损失,但后者使用单句。 我们发现使用单个句子会影响下游任务的性能,我们假设这是因为模型无法学习远程依赖关系。

​ 我们接下来比较没有 NSP 损失的训练和来自单个文档 (DOC-SENTENCES) 的文本块的训练。 我们发现此设置优于最初发布的 BERTBASE 结果,并且与 (Devlin et al.2019)相比,删除 NSP 损失匹配或略微提高下游任务性能。 原始的 BERT 实现可能只删除了损失项,同时仍保留 SEGMENT-PAIR 输入格式。

​ 最后,我们发现限制序列来自单个文档 (DOC-SENTENCES) 比来自多个文档 (FULL-SENTENCES) 的打包序列稍微好一些。 但是,由于 DOC-SENTENCES 格式会导致批量大小可变,因此我们在其余实验中使用 FULLSENTENCES 以便于与相关工作进行比较。

4.3、大批量训练

神经机器翻译过去的工作表明,当学习率适当增加时,使用非常大的小批量进行训练可以提高优化速度和最终任务性能(Ott et al.,2018)。 最近的工作表明,BERT 也适用于大批量训练(You et al.,2019 年)。

​ Devlin et al. (2019) 最初对 BERTBASE 进行了 1M 步训练,批量大小为 256 个序列。 这相当于计算成本,通过梯度累积,训练 125K 步,批量大小为 2K 序列,或 31K 步,批量大小为 8K。、
在这里插入图片描述
表 3:在 BOOKCORPUS 和 WIKIPEDIA 上以不同批次大小 (bsz) 训练的基本模型对保留训练数据 (ppl) 和开发集准确性的困惑。 我们调整每个设置的学习率 (lr)。 模型对数据(epochs)进行相同次数的传递,并具有相同的计算成本。

​ 在表 3 中,我们比较了 BERTBASE 的困惑度和结束任务性能,因为我们增加了批量大小,控制了通过训练数据的次数。 我们观察到,大批量训练提高了掩蔽语言建模目标的困惑度,以及最终任务的准确性。 大批量也更容易通过分布式数据并行训练进行并行化【8】,在后来的实验中,我们使用 8K 序列的批次进行训练。

​ 值得注意的是,You et al.(2019)用更大的批次大小训练BERT,高达32K序列。我们将对大批量训练的局限性的进一步探索留给未来的工作。

4.4、文本编码

Byte-Pair Encoding(BPE)(Sennrich等人,2016)是字符级和单词级表示之间的混合体,允许处理自然语言语料库中常见的大型词汇表。BPE 不是完整的单词,而是依赖于子单词单元,这些单元是通过对训练语料库进行统计分析来提取的。

​ BPE 词汇大小通常在 10K-100K 子词单元之间。然而,在对大型和多样化的语料库进行建模时,unicode 字符可以占这个词汇的相当大的一部分,例如这项工作中考虑的那些。Radford et al. (2019) 介绍了 BPE 的一个巧妙实现,它使用字节而不是 unicode 字符作为基本子词单元。使用字节可以学习中等大小(50K 单位)的子词词汇表,该词汇表仍然可以对任何输入文本进行编码,而无需引入任何“未知”标记。

​ 原始的 BERT 实现(Devlin 等人,2019 年)使用大小为 30K 的字符级 BPE 词汇表,这是在使用启发式标记化规则对输入进行预处理后学习的。 继 Radford 等人之后。 (2019),我们改为考虑使用包含 50K 子词单元的更大字节级 BPE 词汇表来训练 BERT,而无需对输入进行任何额外的预处理或标记化。 这分别为 BERTBASE 和 BERTLARGE 添加了大约 15M 和 20M 的附加参数。

​ 早期的实验表明这些编码之间只有细微差别,Radford 等人。 (2019) BPE 在某些任务上的最终任务表现稍差。 尽管如此,我们相信通用编码方案的优势超过了性能上的轻微下降,并在我们的其余实验中使用这种编码。 这些编码的更详细比较留给未来的工作。

【7】Studying architectural changes, including larger architectures, is an important area for future work.

【8】Large batch training can improve training efficiency even without large scale parallel hardware through gradient accumulation, whereby gradients from multiple mini-batches are accumulated locally before each optimization step. This functionality is supported natively in FAIRSEQ (Ott et al., 2019).

【9】Our experiments conflate increases in data size and diversity. We leave a more careful analysis of these two dimensions to future work.

5、RoBERTa

在上一节中,我们建议对 BERT 预训练程序进行修改,以提高最终任务的性能。 我们现在汇总这些改进并评估它们的综合影响。 我们将此配置称为 RoBERTa,用于稳健优化的 BERT 方法。 具体来说,RoBERTa 使用动态掩码(第 4.1 节)、没有 NSP 损失的完整句子(第 4.2 节)、大型小批量(第 4.3 节)和更大的字节级 BPE(第 4.4 节)进行训练。

​ 此外,我们还研究了在之前的工作中未被充分强调的另外两个重要因素:(1) 用于预训练的数据,以及 (2) 训练通过数据的次数。 例如,最近提出的 XLNet 架构 (Yang et al., 2019) 使用比原始 BERT (Devlin et al., 2019) 多近 10 倍的数据进行预训练。 它还使用 8 倍大的批次大小进行训练,优化步骤减少一半,因此与 BERT 相比,预训练中看到的序列数量是 BERT 的四倍。

​ 为了帮助区分这些因素与其他建模选择(例如,预训练目标)的重要性,我们首先按照 BERTLARGE 架构(L = 24、H = 1024、A = 16、355M 参数)训练 RoBERTa。 我们在 Devlin et al.(2019)使用的可比较的 BOOKCORPUS 和 WIKIPEDIA 数据集上进行了 100K 步的预训练。 我们使用 1024 个 V100 GPU 对我们的模型进行大约一天的预训练。

表 4:随着我们预训练更多数据(16GB → 160GB 文本)和更长时间(100K → 300K → 500K 步)的预训练,RoBERTa 的开发集结果。 每行都累积了上面几行的改进。 RoBERTa 符合 BERTLARGE 的架构和训练目标。 BERTLARGE 和 XLNetLARGE 的结果分别来自 Devlin et al.(2019) 和 Yanget al.2019)。 所有 GLUE 任务的完整结果可以在附录中找到。

结果我们在表 4 中展示了我们的结果。在控制训练数据时,我们观察到 RoBERTa 比最初报告的 BERTLARGE 结果有很大改进,重申了我们在第 4 节中探讨的设计选择的重要性。

​ 接下来,我们将此数据与第 3.2 节中描述的三个附加数据集结合起来。 我们使用与之前相同的训练步数 (100K) 在组合数据上训练 RoBERTa。 我们总共预训练了超过 160GB 的文本。 我们观察到所有下游任务的性能进一步提高,验证了数据大小和多样性在预训练中的重要性【9】。

​ 最后,我们对 RoBERTa 进行了显着更长的预训练,将预训练步骤的数量从 100K 增加到 300K,然后进一步增加到 500K。 我们再次观察到下游任务性能的显着提升,并且 300K 和 500K 步长模型在大多数任务中都优于 XLNetLARGE。 我们注意到,即使是我们训练时间最长的模型似乎也不会过度拟合我们的数据,并且可能会受益于额外的训练。

​ 在本文的其余部分,我们在三个不同的基准测试中评估了我们最好的 RoBERTa 模型:GLUE、SQuaD 和 RACE。 具体来说,我们认为 RoBERTa 在第 3.2 节介绍的所有五个数据集上训练了 500K 步。

5.1、GIUE结果

对于 GLUE,我们考虑两个微调设置。 在第一个设置(单任务,开发)中,我们为每个 GLUE 任务分别微调 RoBERTa,仅使用相应任务的训练数据。 我们考虑对每个任务进行有限的超参数扫描,批量大小 ∈ {16, 32} 和学习率 ∈ {1e-5, 2e-5, 3e-5},对前 6% 的步骤进行线性预热,然后 线性衰减到 0。我们微调 10 个时期,并根据每个任务在开发集上的评估指标执行提前停止。 其余超参数与预训练期间保持相同。 在此设置中,我们报告了五次随机初始化中每个任务的中值开发集结果,没有模型集成。

​ 在第二个设置(集成、测试)中,我们通过 GLUE 排行榜将 RoBERTa 与测试集上的其他方法进行比较。 虽然很多 GLUE 排行榜的提交都依赖于多任务微调,但我们的提交仅依赖于单任务微调。 对于 RTE、STS 和 MRPC,我们发现从 MNLI 单任务模型而不是基线预训练 RoBERTa 开始进行微调很有帮助。 我们探索了一个稍宽的超参数空间,如附录中所述,并为每个任务集成 5 到 7 个模型。

特定于任务的修改(Task-specific modifications) GLUE 任务中的两个需要特定于任务的微调方法来获得有竞争力的排行榜结果。

​ QNLI:最近在 GLUE 排行榜上提交的 QNLI 任务采用成对排序公式,其中从训练集中挖掘候选答案并相互比较,并且单个(问题,候选)对被归类为正(Liu 等 等人,2019b,a;Yang 等人,2019 年)。 该公式显着简化了任务,但不能直接与 BERT 进行比较(Devlin 等人,2019 年)。 根据最近的工作,我们采用排名方法提交测试,但为了与 BERT 直接比较,我们报告了基于纯分类方法的开发集结果。

​ WNLI:我们发现所提供的 NLI 格式数据很难处理。 相反,我们使用来自 SuperGLUE(Wang et al.,2019a)的重新格式化的 WNLI 数据,它指示查询代词和所指对象的范围。 我们使用 Kocijan et al.(2019)的保证金排名损失对 RoBERTa 进行微调。 对于给定的输入句子,我们使用 spaCy(Honnibal 和 Montani,2017 年)从句子中提取额外的候选名词短语并微调我们的模型,以便它为正指称短语分配比任何生成的负候选短语更高的分数。 这种表述的一个不幸后果是我们只能使用正面训练示例,这排除了所提供训练示例的一半以上【10】。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YcCxe3J9-1681802252207)(D:/documents/Typora/%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91/assets/image-20230402124824439.png)]

表 5:GLUE 的结果。 所有结果均基于 24 层架构。 BERTLARGE 和 XLNetLARGE 结果分别来自 Devlin et al.(2019) 和 Yang et al.2019)。 RoBERTa 在开发集上的结果是五次运行的中位数。 RoBERTa 在测试集上的结果是单任务模型的集合。 对于 RTE、STS 和 MRPC,我们从 MNLI 模型而不是基线预训练模型开始进行微调。 平均值来自 GLUE 排行榜。

结果我们在表 5 中展示了我们的结果。在第一个设置(单任务、开发)中,RoBERTa 在所有 9 个 GLUE 任务开发集上都取得了最先进的结果。 至关重要的是,RoBERTa 使用与 BERTLARGE 相同的掩码语言建模预训练目标和架构,但始终优于 BERTLARGE 和 XLNetLARGE。 与我们在这项工作中探索的数据集大小和训练时间等更平凡的细节相比,这引发了关于模型架构和预训练目标的相对重要性的问题。

​ 在第二个设置(集成、测试)中,我们将 RoBERTa 提交到 GLUE 排行榜,并在 9 个任务中的 4 个上取得了最先进的结果和迄今为止的最高平均分。 这特别令人兴奋,因为与大多数其他顶级提交不同,RoBERTa 不依赖于多任务微调。 我们预计未来的工作可能会通过结合更复杂的多任务微调程序来进一步改善这些结果。

5.2、SQuAD结果

与过去的工作相比,我们为 SQuAD 采用了一种更简单的方法。 特别是,虽然 BERT(Devlin 等人,2019 年)和 XLNet(Yang 等人,2019 年)都使用额外的 QA 数据集来增强他们的训练数据,但我们仅使用提供的 SQuAD 训练数据对 RoBERTa 进行微调。 杨等。 (2019) 还采用自定义分层学习率计划来微调 XLNet,而我们对所有层使用相同的学习率。
对于 SQuAD v1.1,我们遵循与 Devlin et al.(2019)相同的微调程序。 对于 SQuAD v2.0,我们还对给定的问题是否可回答进行了分类; 我们通过对分类和跨度损失项求和来联合训练这个分类器和跨度预测器。

表 6:SQuAD 的结果。 † 表示结果取决于额外的外部训练数据。 RoBERTa 在开发和测试设置中仅使用提供的 SQuAD 数据。 BERTLARGE 和 XLNetLARGE 结果分别来自 Devlin et al.(2019) 和 Yang et al.(2019).

结果我们在表 6 中展示了我们的结果。在 SQuAD v1.1 开发集上,RoBERTa 与 XLNet 的最新集相匹配。 在 SQuAD v2.0 开发集上,RoBERTa 设置了一个新的 state-of-the-art,比 XLNet 提高了 0.4 分(EM)和 0.6 分(F1)。

​ 我们还将 RoBERTa 提交给公共 SQuAD 2.0 排行榜,并评估其相对于其他系统的性能。 大多数顶级系统都建立在 BERT(Devlin 等人,2019 年)或 XLNet(Yang 等人,2019 年)之上,这两者都依赖于额外的外部训练数据。 相比之下,我们的提交不使用任何额外的数据。

​ 我们的单一 RoBERTa 模型优于所有提交的单一模型,但在不依赖数据增强的系统中是得分最高的系统。

5.3、RACE结果

在 RACE 中,系统会提供一段文本、一个相关问题和四个候选答案。 系统需要对四个候选答案中哪一个是正确的进行分类。

​ 我们通过将每个候选答案与相应的问题和段落连接起来来为此任务修改 RoBERTa。 然后我们对这四个序列中的每一个进行编码,并将生成的 [CLS] 表示传递给一个全连接层,该层用于预测正确答案。 我们截断超过 128 个标记的问答对,如果需要,截断段落,使总长度最多为 512 个标记。

表 7:RACE 测试集的结果。BERTLARGE和XLNetLARGE的结果来自Yang et al.(2019)。

​ RACE 测试集的结果如表 7 所示。RoBERTa 在初中和高中环境中均取得了最先进的结果。

【10】While we only use the provided WNLI training data, our results could potentially be improved by augmenting this with additional pronoun disambiguation datasets.

6、相关工作

预训练方法的设计具有不同的训练目标,包括语言建模(Dai and Le, 2015; Peters et al., 2018; Howard and Ruder, 2018)、机器翻译(McCann et al., 2017)和掩码语言建模( Devlin et al.,2019 年;Lample 和 Conneau,2019 年)。 最近的许多论文都为每个最终任务使用了微调模型的基本方法(Howard 和 Ruder,2018 年;Radford et al.,2018 年),并使用掩蔽语言模型目标的一些变体进行预训练。 然而,较新的方法通过多任务微调 (Dong et al., 2019)、实体嵌入 (Sun et al., 2019)、跨度预测 (Joshi et al., 2019) 和自回归的多种变体提高了性能 预训练(Song et al.,2019 年;Chan et al.,2019 年;Yang et al.,2019 年)。 通常还可以通过在更多数据上训练更大的模型来提高性能(Devlin et al.,2019 年;Baevski et al.,2019 年;Yang et al.,2019 年;Radford et al.2019 年)。 我们的目标是复制、简化和更好地调整 BERT 的训练,作为更好地理解所有这些方法的相对性能的参考点。

7、结论

在预训练 BERT 模型时,我们仔细评估了许多设计决策。 我们发现,通过对模型进行更长时间的训练、使用更大的批次处理更多的数据,可以显着提高性能; 去除下一句预测目标; 训练更长的序列; 动态改变应用于训练数据的掩蔽模式。 我们改进的预训练程序,我们称之为 RoBERTa,在 GLUE、RACE 和 SQuAD 上实现了最先进的结果,而无需为 GLUE 进行多任务微调或为 SQuAD 提供额外的数据。 这些结果说明了这些以前被忽视的设计决策的重要性,并表明 BERT 的预训练目标与最近提出的替代方案相比仍然具有竞争力。

​ 我们还使用了一个新的数据集 CC-NEWS,并在以下位置发布了我们的模型和代码以进行预训练和微调:https://github.com/pytorch/fairseq。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/835450
推荐阅读
相关标签
  

闽ICP备14008679号