当前位置:   article > 正文

论文翻译 - T5大模型 - Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer_t5模型的原文

t5模型的原文

论文链接:https://jmlr.org/papers/volume21/20-074/20-074.pdf

Abstract

迁移学习,也就是模型首先在数据丰富的任务上进行预训练,然后再对下游任务进行微调,已成为自然语言处理 (NLP) 中的强大技术。迁移学习的有效性催生了多样的途径、方法和实践。在本文中,我们通过引入一个统一的框架来探索 NLP 的迁移学习技术的前景,该框架将所有基于文本的语言问题转化为文本到文本的格式。我们的系统研究比较了数十个语言理解任务的预训练目标、架构、未标记数据集、迁移方法和其他因素。通过将我们探索的见解与规模和我们的新“巨大的清洁爬行语料库”相结合,我们在摘要、问答、文本分类等许多基准上实现了最先进的结果。为了促进未来 NLP 迁移学习的工作,我们发布了我们的数据集、预训练模型和代码。

1. Introduction

训练机器学习模型来执行自然语言处理 (NLP) 任务通常需要该模型可以以适合下游学习的方式处理文本。这可以大致被看作是建设通用目的的知识,来使得模型“理解”文本。这种知识可以是低层次的(比如单词的拼写或意义)也可以是高层次的(比如tuba太大以至于大多数背包都无法容纳)。在现代机器学习实践中,很少明确地提供这些知识;作为替代,它通常作为辅助任务的一部分进行学习。例如,历史上常见的方法是使用词向量 (Mikolov et al., 2013b,a; Pennington et al., 2014) 将词的标识映射到连续的表示,理想情况下,相似的词映射到相似的向量。这些向量通常是通过一个目标来学习的,例如,目标函数鼓励同时出现的单词位于连续空间中附近(Mikolov 等人,2013b)。

最近,在大量数据的任务上预训练整个模型变得越来越普遍。理想情况下,这种预训练使模型发展了通用的目的的能力和知识,然后可以将其转移到下游任务。在计算机视觉的迁移学习的应用中(Oquab et al., 2014; Jia et al., 2014; Huh et al., 2016; Yosinski et al., 2014),预训练通常是通过 ImageNet 等大型标记数据集的监督学习来完成的(Russakovsky et al., 2015; Deng et al., 2009)。相比之下,NLP 中迁移学习的现代技术通常使用未标记数据的无监督学习进行预训练。这种方法最近已被用于在许多最常见的 NLP 基准测试中获得最先进的结果(Devlin 等人,2018;Yang 等人,2019;Dong 等人,2019;Liu 等人,2019c;Lan 等人,2019)。除了过往的这些优点之外,NLP 的无监督预训练特别有吸引力,因为由于互联网,未标记的文本数据可以大规模获得——例如,Common Crawl 项目 2 每月从网页中提取的大约 20TB 的文本数据。这是天然适合神经网络的,已被证明表现出显着的可扩展性,即通常可以通过简单地在更大的数据集上训练更大的模型来实现更好的性能(Hestness 等人,2017;Shazeer 等人,2017;Jozefowicz 等人,2016;Mahajan 等人,2018;Radford 等人,2019;Shazeer 等人,2018;Huang 等人,2018b;Keskar 等人,2019a)。

这种协同作用造成了最近一大批研究 NLP 开发迁移学习方法的工作,产生了大量的预训练目标函数(Howard 和 Ruder,2018;Devlin 等人,2018;Yang 等人,2019;Dong 等人,2019)、未标记数据集(Yang 等人,2019;Liu 等人,2019c;Zellers 等人,2019)、基准(Wang 等人,2019b,2018;Conneau 和 Kiela,2018)、微调方法(Howard 和 Ruder,2018;Houlsby 等人,2019;Peters 等人,2019)等等。这种新兴领域技术的快速发展和多样性使得比较不同的算法、梳理新贡献的影响,理解现有迁移学习方法的空间变得困难。为了获得更严谨的理解,我们利用统一的途径来进行迁移学习,这使我们能够系统地研究不同的方法并推动该领域的当前限制。

我们工作的基本思想是将每个文本处理问题视为“文本到文本”问题,即将文本作为输入并生成新文本作为输出。这种方法的灵感来自于以前NLP任务的统一框架,包括将所有文本问题作为问答任务(McCann 等人,2018 年)、语言建模任务(Radford 等人,2019 年)或跨度提取任务 Keskar 等人。 (2019b)任务。至关重要的是,文本到文本框架允许我们直接将相同的模型、目标、训练过程和解码过程应用于我们考虑的每个任务。我们通过评估各种基于英语的 NLP 任务的性能来充分利用这种灵活性,举例来说就是问答任务、文本总结任务、和情感分类问题等。通过这种统一的方法,我们可以比较不同迁移学习的目标、未标记数据集还有其他因素的有效性,同时通过将模型和数据集扩展到超过之前设定的规模,来探索 NLP 的迁移学习的局限性。

我们强调我们的目标不是提出新方法,而是提供对该领域目前现状的一个全面的视角。因此,我们的工作主要包括对现有技术的调查、探索和经验比较。我们还探索了当前研究的局限性,通过从我们的系统性研究中扩大视野(训练模型多达 11 亿个参数)从而获得我们考虑的许多任务中获得SOTA。为了在这个规模上进行实验,我们引入了“Colossal Clean Crawled Corpus”(C4),这是一个由从网络上抓取的数百 GB 干净英语文本组成的数据集。认识到迁移学习的主要用途是可以在缺少数据的环境中利用预训练模型,我们发布了我们的代码、数据集和预训练模型。

论文的其余部分结构如下:在下一节中,我们将讨论我们的基本模型及其实现,我们将每个文本处理问题制定为文本到文本任务的过程,以及我们考虑的任务套件。在第 3 节中,我们提出了大量实验来探索 NLP 的迁移学习领域。在部分(第 3.7 节)结束时,我们结合了我们系统研究的见解,以获得各种基准上的最新结果。最后,我们总结了我们的结果,并在第 4 节中总结了展望未来。

2. Setup

在展示我们大规模实证研究的结果之前,我们回顾了理解我们的结果所需的必要背景主题,包括 Transformer 模型架构和我们评估的下游任务。我们还介绍了我们将每个问题视为文本到文本任务的方法,并描述了我们的“Colossal Clean Crawled Corpus”(C4),这是我们创建的基于 Common Crawl 的数据集作为未标记文本数据的来源。我们将我们的模型和框架称为“Text-to-Text Transfer Transformer”(T5)。

2.1 Model

NLP 的迁移学习的早期结果利用了RNN(Peters 等人,2018 年;Howard 和 Ruder,2018 年),但最近使用基于“Transformer”架构的模型变得更加常见(Vaswani 等人,2017 年)。Transformer 最初被证明对机器翻译有效,但它随后已被用于各种 NLP 设置(Radford 等人,2018;Devlin 等人,2018;McCann 等人,2018;Yu 等人,2018)。由于其的日益普及,我们研究的所有模型都基于 Transformer 架构。除了下面提到的细节和我们在第 3.2 节中探索的变体之外,我们不会显着偏离这种架构最初的结构。我们没有提供对该模型的全面定义,而是给感兴趣的读者推荐原始论文 (Vaswani et al., 2017) 或后续的教程以获得更详细的介绍。

Transformer的主要构建块是自我注意(Cheng et al., 2016)。自注意力是注意力的一种变体(Graves,2013;Bahdanau 等人,2015),它通过用序列其余部分的加权平均值替换每个元素来处理序列。原始 Transformer 由编码器-解码器架构组成,旨在用于序列到序列的任务(Sutskever et al., 2014; Kalchbrenner et al., 2014) 。最近,使用由单个 Transformer 层堆栈组成的模型也变得很常见,这些研究利用不同形式的自注意力生成适合语言建模任务(Radford 等人,2018;Al-Rfou 等人,2019)或分类和跨度预测任务(Devlin 等人,2018;Yang 等人,2019)的架构。我们在第 3.2 节中凭经验探索了这些架构变体。

总体而言,我们的编码器-解码器 Transformer 的实现服从其最初提出的形式(Vaswani 等人,2017 年)。首先,输入的tokens序列映射到embeddings序列,然后将其传递给编码器。编码器由一堆栈的“块”组成,每个“块”由两个子组件组成:自注意力层和一个小型前馈网络。层归一化 (Ba et al., 2016) 应用于每个子组件的输入。我们使用层归一化的简化版本,其中激活仅仅是重新缩放,并且没有使用加性偏差。在层归一化之后,残差连接 (He et al., 2016) 将每个子组件的输入加到子组件的输出中。丢弃 (Srivastava et al., 2014) 应用于前馈网络、残差连接、注意力权重以及整个堆栈的输入和输出。解码器结构和编码器类似,除了解码器在自注意力层之后还有一个标准注意力机制,用来关注编码器的输出。解码器中的自注意力机制同样使用了自回归或因果自注意力的形式,这只允许模型关注过去的输出。最后的解码器块的输出被填入到一个带有softmax输出的密集层,它的权重与输入的embedding矩阵相同,也就是将embedding在转换为token。Transformer 中的所有注意力机制都被分成独立的“heads”,其输出在进一步处理之前被连接起来。

由于自注意力与顺序无关(即它是对集合的操作),因此通常为 Transformer 提供显式位置信号是很常见的。虽然原始 Transformer 使用正弦位置信号或学习位置嵌入,但最近相对位置嵌入更加常见(Shaw 等人,2018;Huang 等人,2018a)。相对位置嵌入不是为每个位置使用固定的嵌入,而是根据自注意力机制中比较的“键”和“查询”之间的偏移量产生不同的学习的嵌入。我们使用简化形式的位置嵌入,其中每个“embedding”是一个标量,添加到用于计算注意力权重的相应 logit 中。为了提高效率,我们还在模型中的所有层中共享位置嵌入参数,不过在每层中,每个注意力头使用不同的位置嵌入。通常,学习固定数量的嵌入,每个嵌入对应于一系列可能的键查询偏移量。在这项工作中,我们对所有模型使用 32embeddings,其范围在对数上增加到 128 的偏移量,超过该偏移量我们将给所有相对位置分配相同的嵌入。请注意,给定的层对超过 128 个标记的相对位置不敏感,但后续层可以通过组合前一层的局部信息来构建对更大偏移量的敏感性。总而言之,我们的模型大致相当于Vaswani等人提出的原始Transformer,除了去除了LN层偏差,并将LN放在了残差路径外面,还有用了不同的位置嵌入方案。由于这些架构更改与我们在迁移学习的实证研究中考虑的实验因素正交(不会相互影响),因此我们将它们的影响消融留给未来的工作。

作为我们研究的一部分,我们尝试了这些模型的可扩展性,即它们的性能如何随着它们具有更多参数或层而变化。训练大型模型并非易事,因为它们可能不适合单个机器并且需要大量计算。因此,我们使用模型和数据并行性的组合,并在Cloud TPU Pods的“切片”上训练模型。TPU Pods是多机架ML超级计算机,包含1,024个TPU v3芯片,通过高速2D网格互连连接到支持CPU主机。我们利用 Mesh TensorFlow 库 (Shazeer et al., 2018) 来简化模型并行性和数据并行性的实现 (Krizhevsky, 2014)。

2.2 The Colossal Clean Crawled Corpus

以前的 NLP 迁移学习的大部分工作都利用了大型未标记数据集进行无监督学习。在本文中,我们致力于衡量这种未标记数据集的质量、特征和大小的影响。为了生成满足我们需求的数据集,我们利用 Common Crawl 作为从网络上抓取的文本来源。Common Crawl 之前已被用作 NLP 的文本数据来源,例如训练 n-gram 语言模型 (Buck et al., 2014),作为常识推理的训练数据 (Trinh and Le, 2018),用于挖掘并行文本用于机器翻译 (Smith et al., 2013) 作为预训练数据集 (Grave et al., 2018; Zellers et al., 2019; Liu et al., 2019c),甚至只是作为测试优化器的巨大文本语料库 (Anil et al., 2019)。

Common Crawl 是一个公开可用的 Web 档案,它通过从抓取的 HTML 文件然后删除标记和其他非文本内容来提供“网络提取文本”。这个过程每月产生大约 20TB 的抓取文本数据。不幸的是,大多数生成的文本不是自然语言。相反,它主要包括诸如菜单、错误消息或重复文本之类的乱码或样板文本。此外,大量抓取的文本包含不太可能有助于我们考虑的任何任务的内容(攻击性语言、占位符文本、源代码等)。为了解决这些问题,我们使用以下启发式方法清理 Common Crawl 的网络提取文本:

  • 我们只保留用结束符结尾的行(即句号、感叹号、问号或结束引号)。
  • 我们丢弃了任何少于 3 个句子的页面,只保留至少包含 5 个单词的行。
  • 我们删除了“Dirty、Naughty、Obscene 或其他 Bad Words”上包含任何单词的页面。
  • 许多抓取的页面包含警告,说明应该启用 Javascript,因此我们删除了与单词 Javascript 的任何行。
  • 一些页面有占位符“lorem ipsum”文本;我们删除了出现短语“lorem ipsum”的任何页面。
  • 一些页面无意中会包含代码。由于大括号“{”出现在许多编程语言中(例如 Javascript,广泛用于网络),但不会出现在自然文本中,所以我们删除了任何包含大括号的页面。
  • 由于一些抓取的页面来自维基百科并具有引用标记(例如 [1]、[引用需要] 等),我们删除了任何此类标记。
  • 许多页面都有样板策略通知,因此我们删除了包含字符串“使用术语”、“隐私策略”、“cookie 策略”、“use cookie”、“cookies”、“use of cookie”或“use cookie”的任何三句跨度之一。
  • 为了对数据集进行重复数据删除,对于任意三个句子的范围的内容,若其在数据集里出现多次,我们只保留一个,丢弃剩下所有的。

此外,由于我们的大多数下游任务都集中在英语的文本上,我们使用 langdetect 过滤掉任何未归类为英语的页面,概率至少为 0.99。我们的方法收到过去在 Common Crawl 数据源上做的NLP工作:例如,Grave等人(2018)也使用自动语言检测器过滤文本,并丢弃短的行。并且Smith等人(2013)和Grave等人(2018)都进行了行级别的重复数据删除。然而,我们选择创建一个新的数据集,因为先前的使用更有限制的过滤方法的数据集不公开,或者范围不同(例如仅限于新闻数据(Zellers 等人,2019;Liu 等人,2019c),或者仅包含知识共享内容(Habernal 等人,2016),或者专注于机器翻译的并行训练数据(Smith 等人,2013))。

为了组装我们的基础数据集,我们从 2019 年 4 月下载了网络提取文本,并应用了上述过滤。这样收集的文本不仅比大多数用于预训练的数据集(约 750 GB)大几个数量级,而且还包含相当干净和自然的英语文本。我们将此数据集称为“Colossal Clean Crawled Corpus”(简称 C4),并将其发布为 TensorFlow 数据集的一部分。我们在第 3.4 节中考虑了使用该数据集的各种替代版本的影响。

2.3 Downstream Tasks

我们在本文中的目标是测量一般语言学习能力。因此,我们研究了各种基准的下游性能,包括机器翻译、问答、抽象摘要和文本分类。具体来说,我们测量了 GLUE 和 SuperGLUE 文本分类元基准的性能; CNN/Daily Mail 抽象摘要; SQuAD 问答; WMT 英语到德语、法语和罗马尼亚语翻译。所有数据都来自 TensorFlow 数据集。

GLUE (Wang et al., 2018) 和 SuperGLUE (Wang et al., 2019b) 每个都包含一组文本分类任务,旨在测试一般语言理解能力:

  • 句子可接受性判断 (CoLA (Warstadt et al., 2018))
  • 情感分析 (SST-2 (Socher et al., 2013))
  • 释义/句子相似度 (MRPC (Dolan and Brockett, 2005)、STS-B (Cer et al., 2017)、QQP (Iyer et al., 2017))
  • 自然语言推理 (MNLI (Williams et al., 2017)、QNLI (Rajpurkar et al., 2016)、RTE (Dagan et al., 2005)、CB (De Marneff et al., 2019))
  • 指代消解 (WNLI and WSC (Levesque et al., 2012))
  • 完成句子 (COPA (Roemmele et al., 2011))
  • 词义消歧 (WIC (Pilehvar and Camacho-Collados, 2018))
  • 问答 (MultiRC (Khashabi et al., 2018)、ReCoRD (Zhang et al., 2018)、BoolQ (Clark et al., 2018))

我们使用 GLUE 和 SuperGLUE 基准分发的数据集。为简单起见,在微调期间,我们将GLUE 基准中的所有任务(以及 SuperGLUE 类似)视为单个任务,通过连接所有组成部分的数据集。正如Kocijan等人(2019)所建议的,我们也把定代词解析(DPR)数据集(Rahman和Ng,2012)包括进了SuperGLUE任务中。

CNN/Daily Mail (Hermann et al., 2015) 数据集被引入作为问答任务,但被 Nallapati 等人改编为文本总结任务。;我们使用来自 See 等人的非匿名版本作为抽象总结任务。SQuAD (Rajpurkar et al., 2016) 是一个常见的问答基准。在我们的实验中,模型被馈送到问题及其上下文,并要求他们逐个token地生成答案。对于 WMT 英语到德语,我们使用与 (Vaswani et al., 2017) (即 News Commentary v13、Common Crawl、Europarl v7) 和 newstest2013 相同的训练数据作为验证集 (Bojar et al., 2014)。对于英语到法语,我们使用来自 2015 和 newstest2014 的标准训练数据作为验证集(Bojar et al., 2015)。对于英语到罗马尼亚语,这是一个标准的低资源机器翻译基准,我们使用来自 WMT 2016 的训练和验证集(Bojar et al., 2016)。请注意,我们只对英语数据进行了预训练,因此为了学会翻译,给定的模型将需要学习以新语言生成文本。

2.4 Input and Output Format

为了在上述不同的任务集上训练一个模型,我们将我们考虑的所有任务转换为“文本到文本”格式——也就是说,在任务中模型输入一些上下文或条件的文本,然后被要求生成一些输出文本。该框架为预训练和微调提供了一致的训练目标。具体来说,无论任务如何,该模型都使用最大似然目标(使用“教师强制”(Williams 和 Zipser,1989)进行训练。为了指定模型应该执行哪些任务,我们在将其提供给模型之前向原始输入序列添加一个特定于任务的(文本)前缀。

例如,要要求模型将句子“That is good.”从英语翻译成德语,模型将输入“translate English to German: That is good.”并经过训练以输出“Das ist gut.”。对于文本分类任务,模型简单地预测与目标标签对应的单个单词。例如,在 MNLI 基准 (Williams et al., 2017) 上,目标是预测一个前提对一个假设是否暗示(“蕴含”)、矛盾(“矛盾”)或两者都不是(“中性”)的关系。通过我们的预处理,输入序列变为“mnli premise: I hate pigeons. hypothesis: My feelings towards pigeons are filled with animosity.”以及相应的目标词“蕴含”。请注意,如果我们的模型输出的文本不能对应到该任务的标签时,就会出现问题(例如,如果当任务的唯一可能标签是“蕴含”、“中性”或“矛盾”其中之一时,模型却输出“汉堡”)。在这种情况下,我们将模型的输出视为错误的,虽然我们还没有在我们训练的模型中观察到这种行为。请注意,为给定任务选择的文本前缀本质上是一个超参数;我们发现改变前缀的单词影响有限,因此没有对不同的前缀选择进行广泛的实验。图1展示了我们的文本到文本框架的示意图,其中包含几个输入/输出例子。我们为我们在附录 D 中研究的每个任务提供预处理输入的完整示例。

我们的文本到文本框架遵循以前的工作,将多个 NLP 任务转换为同一的格式:McCann 等人提出了“Natural Language Decathlon”,这是一个基准,它对一套十个 NLP 任务使用一致的问答格式。NLD还规定所有模型都必须是多任务的,即能够同时同时处理所有任务。而我们允许在每个单独的任务上单独微调模型,并使用简短的任务前缀而不是显式的问答格式。Radford等人(2019)评估语言模型的零样本学习能力,通过将模型的一些输入作为前缀,然后自回归地抽样出一个输出。例如,自动总结摘要任务是通过输入一个文档然后是一个文本“TL;DR:”(“too long, didn’t read”的缩写,一个常见的缩写)来完成的,然后通过自回归解码预测摘要。我们主要考虑使用编码器显式地处理输入,然后使用单独的解码器生成输出的模型,我们专注于迁移学习而不是零样本学习。最后,Keskar 等人。 (2019b)将许多 NLP 任务统一为“跨度提取”,其中将对应于所有可能的输出选择的文本添加到输入中,并训练模型来提取对应于正确选择的输入跨度。相比之下,我们的框架还允许生成式任务,例如机器翻译和抽象摘要,这些任务不可能枚举所有可能的输出选择。

我们能够直接将我们考虑的所有任务转换为文本到文本的格式,除了 STS-B。这是一个回归任务,其目标是预测 出一个1 到 5 之间的相似度分数。我们发现这些分数中的大多数都以 0.2 的增量进行标注,因此我们只需将任何分数四舍五入到 0.2 最接近的增量,并将结果转换为数字的文字字符串表示(例如,浮点值 2.57 将映射到字符串“2.6”)。在测试时,如果模型输出对应于 1 到 5 之间的数字的字符串,我们将其转换为浮点值;否则,我们将模型的预测视为不正确的。这有效地将 STS-B 回归问题重新定义为 21 类分类问题。

另外,我们还将威诺格拉德任务(WNLI来自 GLUE、WSC来自 SuperGLUE,还有我们添加到 SuperGLUE 的 DPR 数据集)转换为更简单的格式,更适合文本到文本框架。Winograd 任务中的示例由包含歧义代词的文本段落组成,该代词可以指代文章中多个名词短语。例如,该段落可能是“市议员拒绝示威者允许,因为他们害怕暴力。”,其中包含可以指代“市议员”或“示威者”的模棱两可的代词“他们”。我们通过突显标注出文本段落中的歧义代词并要求模型预测它所指的名词,将 WNLI、WSC 和 DPR 任务视为文本到文本问题。上面提到的示例将被转换为输入“市议员拒绝示威者允许,因为 他们害怕暴力。”并对模型进行训练以预测目标文本“市议员”。

对于 WSC,示例包含段落、歧义代词、候选名词和反映候选是否与代词匹配的真/假标签(忽略任何文章)。我们只用“真”标签对示例进行训练,因为我们不知道带有“假”标签的示例的正确名词目标。为了评估,我们分配一个“真”标签,如果模型输出中的单词是候选名词短语中单词的子集(反之亦然),否则分配“假”标签。这删除了大约一半的 WSC 训练集,但 DPR 数据集添加了大约 1,000 个代词解析示例。DPR 的示例都用正确的指称名词进行注释,因此很容易以上面列出的格式使用这个数据集。

WNLI 训练和验证集与 WSC 训练集有显着重叠。为了防止验证集出现在训练集中(第 3.5.2 节的多任务实验中的特定问题),我们不在 WNLI 上进行训练,并且从不在 WNLI 验证集上报告结果。忽略在WNLI上的验证结果是一种标准的做法,因为 WNLI 验证集对于训练集是“对抗性”的,也就是验证机的实例都是带相反标签的训练集实例的轻微扰动版。因此,每当我们报告验证集结果时,我们不会在平均 GLUE 分数中包含 WNLI数据集(除第 3.7 节之外的所有部分,结果在测试集上呈现)。将示例从 WNLI 转换为上述“指称名词预测”变体有一些更多可说的;我们在附录 B 中描述了这个过程。(并且由于其训练集和验证集之间是对抗的(dev=train+扰动且标签相反),所以也不汇报其验证集的结果。将示例从WNLI转换为上述“指称名词预测”变体的过程要复杂得多,参见附录B。)

3. Experiments

NLP 的迁移学习的最新进展来自各方面的发展,例如新的预训练目标、模型架构、未标记数据集等。在本节中,我们对这些技术进行了实证调查,希望梳理它们的贡献和意义。然后,我们将获得的见解结合起来,以在我们考虑的许多任务中实现最先进的性能。由于 NLP 的迁移学习是一个快速发展的研究领域,因此在我们的实证研究中,我们不可能涵盖所有可能的技术或想法。对于更广泛的文献综述,我们推荐Ruder等人(2019)最近的一项调查。

我们通过采取合理的基准(在第 3.1 节中描述)并一次改变设置的一个方面来系统地研究这些贡献。例如,在第 3.3 节中,我们测量了不同的无监督目标函数的性能,同时保持我们的实验的其余部分固定。这种“coordinate ascent”方法可能会忽略第二影响因素(例如,某些特定的无监督目标可能在大于我们的基准设置的模型上工作得最好),但在我们的研究中对所有因素进行组合探索将非常昂贵。在未来的工作中,我们希望可以实现更彻底地对我们研究的方法组合进行考虑。

我们的目标是在不同的任务集上比较各种不同的方法,同时保持尽可能多的因素固定。为了满足这个目标,在某些情况下,我们并不完全复制现有方法。例如,像 BERT (Devlin et al., 2018) 这样“encoder-only”的模型旨在为每个输入token或整个输入sequence生成一个预测。这使得它们适用于分类或跨度预测任务,但不适用于翻译或抽象摘要等生成任务。因此,我们考虑的模型架构都和 BERT 不同,或者说不会由encoder-only的结构组成。相反,我们测试了和它们在精神上相似的方法——例如,我们在3.3节考虑了一个目标函数,类似于 BERT 的“掩码语言建模”目标。我们还在3.2节考虑了一个模型结构,它的行为类似于BERT在文本分类任务的表现。

在在以下小节中概述我们的基准实验设置后,我们对模型架构(第 3.2 节)、无监督目标(第 3.3 节)、预训练数据集(第 3.4 节)、迁移方法(第 3.5 节)和缩放(第 3.6 节)进行了实证比较。在本节的最后,我们将我们研究的见解与规模相结合,以在我们考虑的许多任务中获得最先进的结果(第 3.7 节)。

在下文概述我们的基准实验设置之后,我们对模型架构(第 3.2 节)、无监督目标(第 3.3 节)、预训练数据集(第 3.4 节)、迁移方法(第 3.5 节)和缩放(第 3.6 节)进行了实验比较。在本节的最后,我们将我们研究的见解与规模相结合,以在我们考虑的许多任务中获得最先进的结果(第 3.7 节)。

3.1 Baseline

我们基准的目标是反映典型的,现代的实践。我们使用一个简单的去噪目标预训练一个标准的 Transformer(在第 2.1 节中描述),然后在每个下游任务上单独微调。我们将在以下小节中描述此实验设置的详细信息。

3.1.1 MODEL

对于我们的模型,我们使用Vaswani等人(2017)提出的标准编码器-解码器 Transformer。虽然许多用于 NLP 的迁移学习的现代方法使用仅由单个“stack”组成的 Transformer 架构(例如用于语言建模(Radford 等人,2018;Dong 等人,2019)或分类和跨度预测(Devlin 等人,2018;Yang 等人,2019)),但我们发现使用标准编码器-解码器结构在生成和分类任务上都取得了很好的效果。我们在第 3.2 节中探讨了不同模型架构的性能。

我们的基准模型旨在使编码器和解码器在大小和配置上都类似于“BERT BASE”(Devlin 等人,2018 年)堆栈。具体来说,编码器和解码器都由 12 个块组成(每个块包括自注意力、可选的编码器-解码器注意力和一个前馈网络)。每个块中的前馈网络由一个输出维度为 dff = 3072 的密集层,接一个 ReLU 非线性和另一个密集层组成。所有注意力机制的“键”和“值”矩阵的内部维度为 dkv = 64,所有注意力机制都有 12 个头。所有其他子层和嵌入的维数均为dmodel = 768。总的来说,这导致了一个参数约为220万个的模型。这大约是 BERTBASE 参数数量的两倍,因为我们的基准模型包含两个层堆栈而不是一个。对于正则化,我们在模型中使用了 0.1 的 dropout 概率。

3.1.2 TRAINING

如第 2.4 节所述,所有任务都被表述为文本到文本的任务。这允许我们总是使用标准的最大似然进行训练,也就是使用教师强制 (Williams and Zipser, 1989) 和交叉熵损失。对于优化,我们使用 AdaFactor(Shazeer 和 Stern,2018 年)。在测试时,我们使用贪婪解码(即在每个时间步选择最高概率 logit)。

我们在微调之前为 C4 上的每个模型预训练 2^19 = 524,288 步。我们使用 512 的最大序列长度和 128 个序列的批量大小。只要有可能,我们将多个序列“打包”到 batch 的每个条目中,以便我们的批次包含大约 2^16 = 65,536 个token。总的来说,这个批量大小和步数对应于对 235 ≈ 34B 标记的预训练。这比 BERT (Devlin et al., 2018) 少得多,后者使用了大约 137B 个标记,或也比RoBERTa (Liu et al., 2019c)少得多,后者使用了大约 2.2T 个标记。仅使用 2^35 个标记符合合理的计算量预算,同时仍然为可接受的性能提供足够的预训练。我们在第 3.6 节和第 3.7 节中考虑了有更多步骤的预训练的影响。请注意,2^35 个token仅覆盖整个 C4 数据集的一小部分,因此我们在预训练期间从未重复任何数据。

在预训练期间,我们使用“逆平方根”的学习率方案:1/√max(n, k),其中 n 是当前的训练迭代,k 是预热步骤的数量(在我们所有的实验中设置为 10^4)。对于前 10^4 步,这设置了 0.01 的恒定学习率,然后指数衰减学习率,直到预训练结束。我们还尝试了使用三角学习率(Howard 和 Ruder,2018 年),它产生了稍好的结果,但需要提前知道训练步骤的总数。由于我们将在我们的实验中改变训练步骤的数量,我们选择了更通用的逆平方根计划。

我们的模型针对所有任务进行了 2^18 = 262,144 步微调。选这个值是因为考虑到高资源任务(即大数据集的任务,从更多的微调中获益)和低资源任务(较小的数据集,很快就会过拟合)之间的权衡。在微调期间,我们继续使用 128 个长度为 512 序列的批次(即每批 2^16 个标记)。在微调时,我们使用 0.001 的恒定学习率。我们每 5,000 步保存一个检查点,并报告最高验证性能的模型的checkpoint。对于在多个任务上微调的模型,我们为每个任务独立选择最佳checkpoint。对于除第 3.7 节中的所有实验,我们报告验证集中的结果,以避免在测试集上执行模型选择。

3.1.3 VOCABULARY

我们使用 SentencePiece (Kudo and Richardson, 2018) 将文本编码为 WordPiece token (Sennrich et al., 2015; Kudo, 2018)。对于所有实验,我们使用 32,000 个单词的词汇表。由于我们最终在英语到德语、法语和罗马尼亚语翻译上微调我们的模型,我们还需要我们的词汇表涵盖了这些非英语语言。为了解决这个问题,我们将 C4 中使用的 Common Crawl 抓取页面分类为德语、法语和罗马尼亚语。然后,我们在 10 个英语 C4 数据和1个被分类为德语,法语或罗马语的混合数据集上训练我们的 SentencePiece 模型。此词汇表在模型的输入和输出之间共享。请注意,是我们的词汇表做到这些的,也就是说我们的模型只能处理预先确定的、固定的语言集。

3.1.4 UNSUPERVISED OBJECTIVE

利用未标记的数据来预训练我们的模型需要一个不需要标签的目标,但该目标(粗略地说)还能教会模型对下游任务有用的泛化知识。将迁移学习——预训练和微调所有模型参数——应用于 NLP 问题的工作一开始使用了因果语言建模目标进行预训练(Dai 和 Le,2015;Peters 等人,2018;Radford 等人,2018;Howard 和 Ruder,2018)。然而,最近的研究表明,“去噪”目标(Devlin 等人,2018 年;Taylor,1953 年)(也称为“掩码语言建模”)产生了更好的性能,因此它们很快变成了标准。在去噪目标中,模型被训练以预测输入中缺失的或其他损坏的token。受 BERT 的“masked language modeling”目标和“word dropout”正则化技术(Decoder 输入为随机替换为 UNK)(Bowman 等人,2015)的启发,我们设计了一个目标,随机采样然后丢弃输入序列中 15% 的token。所有连续的被删除的token段都被单个标记token替换。每个标记token都被分配了一个对序列来说唯一的令牌 ID。标记 ID 是添加到词汇表中的特殊标记,不对应于任何单词。现在的预测目标是所有丢弃段的token,这些目标token由输入序列中对应的标记token分隔,即在每个要预测的token段前面加上对应的标记token,然后在最后加上结尾标记token来标记该目标序列的结尾。我们选择屏蔽连续的token段片段,只预测丢弃的令牌,以减少预训练的计算成本。我们在第 3.3 节中对预训练目标进行了彻底的调查。应用这个目标产生的转换示例如图 2 所示。我们在第 3.3 节中根据经验将此目标与其他许多其他变体进行比较。

3.1.5 BASELINE PERFORMANCE

在本节中,我们使用上述基准实验程序来展示结果,以了解在我们的下游任务上期望得到什么样的性能。理想情况下,我们将多次重复我们研究中的每个实验,以获得我们结果的置信区间。不幸的是,由于我们要跑的实验量很大,这将变得非常昂贵。作为更便宜的替代方案,我们从头(即具有不同的随机初始化和数据集 shuffle )开始训练我们的基准模型 10 次,并假设基础模型的这些运行的方差也适用于每个实验变体。我们不期望大部分我们做的更改对运行间方差有显着影响,这应该可以合理地表明不同更改的重要性。。另外,我们还测量了在没有预训练的情况下,在所有下游任务上训练我们的模型 2^18 步(和微调相同数量)的性能。这给了我们一个想法,即预训练给了我们基准设置的模型多少帮助。

在报告主要文本的结果时,我们只报告所有基准测试中的一部分分数,以节省空间和简化解释。对于 GLUE 和 SuperGLUE,我们报告了标题“GLUE”和“SGLUE”下所有子任务(由官方基准规定)的平均分数。对于所有翻译任务,我们报告了 SacreBLEU v1.3.0 (Post, 2018) 提供的 BLEU 分数 (Papineni et al., 2002),具有“exp”平滑和“intl”标记化方法。我们将 WMT 英语到德语、英语到法语和英语的分数分别称为 EnDe、EnFr 和 EnRo。对于 CNN/Daily Mail,我们发现模型在 ROUGE-1-F、ROUGE-2-F 和 ROUGE-L-F 指标 (Lin, 2004) 上的性能高度相关,因此我们仅在标题“CNNDM”下报告 ROUGE-2-F 分数。同样,对于 SQuAD,我们发现“精确匹配”和“F1”分数的性能高度相关,因此我们只报告“精确匹配”分数。我们在表 16、附录 E 中提供了所有实验在每个任务上取得的每个分数。

我们的结果表都是格式化的,因此每一行对应于一个特定的实验配置,列给出每个基准测试的分数。我们将在大多数表中包含基准配置的平均性能。当出现基准配置时,我们将用五角星符号标记它(如表 1 的第一行所示)。我们还将加粗任何在给定的实验中最大(最佳)的两个标准偏差内的分数。

我们的基准测试结果如表1所示。总的来说,我们的结果与现有的类似大小的模型相当。例如,BERTBASE 在 SQuAD 上实现了 80.8 的精确匹配分数,在 MNLI 匹配上实现了 84.4 的准确度,而我们分别实现了 80.88 和 84.24(见表 16)。请注意,我们不能直接将我们的基准与 BERTBASE 进行比较,因为我们的是一个编码器-解码器模型,并且经过大约 1⁄4 的预训练步数。不出所料,我们发现预训练在几乎所有基准测试中都提供了显着的收益。唯一的例外是 WMT 英语到法语,这是一个足够大的数据集,几乎不能从预训练中获得信息。我们在实验中包括这个任务来测试迁移学习在高资源状态下的行为。由于我们通过选择最佳checkpoint来提前停止实验,因此我们的基准和“没有预训练”之间的巨大差异强调了预训练在多大程度上提高了有限数据任务的性能。虽然我们在本文中没有明确衡量数据效率的改进,但我们强调这是迁移学习范式的主要好处之一。

至于运行间方差,我们发现对于大多数任务,运行之间的标准偏差小于任务基线分数的 1%。例外是 CoLA、CB 和 COPA,它们都是来自 GLUE 和 SuperGLUE 基准的低资源任务。例如,在 CB 上,我们的基线模型的平均 F1 得分为 91.22,标准差为 3.237(见表 16),这可能部分是由于 CB 的验证集仅包含 56 个示例。请注意,GLUE 和 SuperGLUE 分数是包含每个基准的任务的分数的平均值。因此,我们要提醒的是,CoLA、CB 和 COPA 的高运行间方差会使只用 GLUE 和 SuperGLUE 分数来比较模型变得更加困难。

3.2 Architectures

虽然 Transformer 最初是使用编码器-解码器架构引入的,但 NLP 的迁移学习的许多现代工作都使用替代架构。在本节中,我们回顾和比较这些架构变体。

3.2.1 MODEL STRUCTURES

不同架构的一个主要区别是模型中不同注意力机制使用的“mask”。回想一下,Transformer 中的自注意力操作以序列作为输入并输出相同长度的新序列。输出序列的每一项都是通过计算输入序列每一项的加权平均值来生成的。具体来说,设 y i y_{i} yi 表示输出序列的第i个元素, x j x_{j} xj 表示输入序列的第j个条目。 y i y_{i} yi 是通过 $ {\textstyle \sum_{j}^{}} w_{i,j}x_{j}$ 计算的,其中 w i , j w_{i,j} wi,j 是自注意力机制产生的标量权重,它是关于 x i x_{i} xi x j x_{j} xj 的函数。然后使用注意掩码将某些权重归零,以便约束输入的哪些部分是在给定的输出时间步上关注的。我们考虑的掩码如图3中间的图所示。也就是说,因果掩码( causal mask )将所有任何 j > i j > i j>i w i , j w_{i,j} wi,j 设置为零。

我们考虑的第一个模型结构是一个编码器-解码器 Transformer,它由两个层堆栈组成:处理输入序列的编码器和产生新输出序列的解码器。这种架构变体的示意图显示在图 4 左边的面板中。

编码器使用“完全可见的”注意掩码。完全可见的屏蔽允许自注意力机制在生成其输出的每个元素时关注所有的输入的元素。我们在图 3 左图中显示了这种掩蔽模式。这种掩蔽形式在关注“prefix”时是合适的,即提供给模型的上下文会在之后的预测中使用。BERT (Devlin et al., 2018) 也使用了完全可见的掩码模式,并将一个特殊的“分类”标记附加到输入中。然后,在与分类标记相对应的时间步中,BERT的输出将用于对输入序列进行分类的预测。

Transformer 解码器中的自注意力操作使用“因果”掩码模式。在生成输出序列的第 i 个元素时,因果掩蔽防止模型关注 j > i 的输入序列的第 j 个元素。这在训练期间使用,以便模型不会“看到未来”并因为它产生其输出。这种掩蔽模式的注意矩阵如图3 中间图 所示。

编码器-解码器 Transformer 中的解码器用于自回归地生成输出序列。也就是说,在每个输出时间步,从模型的预测分布中采样一个标记(预测概率大的采样概率就大),并将样本反馈到模型中,以生成下一个输出时间步的预测,依此类推。因此,Transformer 解码器(没有编码器)可以用作语言模型(LM),即仅针对下一步预测训练的模型(Liu 等人,2018;Radford 等人,2018;Al-Rfou 等人,2019)。这构成了我们考虑的第二个模型结构。该体系结构示意图如图4 中间图所示。事实上,NLP 的迁移学习的早期工作就用这种结构和语言模型目标作为预训练方法(Radford 等人,2018 年)。

语言模型通常用于压缩或序列生成(Graves,2013)。然而,它们也可以在文本到文本框架中使用,只需简单地连接输入和目标。例如,考虑英语到德语翻译的情况:如果我们有一个带有输入句子 “That is good” 和目标 “Das ist gut” 的训练数据点。,我们只需在连接后的输入序列上进行下一步预测的训练(错位预测),也就是在输入序列 “translate English to German: That is good. target: Das ist gut.” 上训练模型。如果我们想获得模型对这个例子的预测,该模型将输入前缀 “translate English to German: That is good. target:“ 然后被要求自回归地生成序列的其余部分。这样,该模型可以在给定输入的情况下预测输出序列,满足文本到文本任务的需求。这种方法最近被用来表明语言模型可以学习在没有监督的情况下执行一些文本到文本的任务(Radford等人,2019年)。

在文本到文本设置中使用语言模型的一个基本且经常被引用的缺点是因果掩蔽迫使模型对输入序列第 i 个元素的表示仅依赖于从第一个到第 i 个元素。要了解为什么这可能不利,请考虑文本到文本框架,其中模型在被要求进行预测之前提供前缀/上下文(例如,前缀是英语句子,并要求模型预测德语翻译)。通过完全因果掩蔽,模型对一个前缀状态的表示只能依赖于该前缀之前的元素。因此,在预测输出的元素时,模型所关注的前缀是完整的,但因为语言模型而被不必要地限制了。在序列到序列模型中使用单向循环神经网络编码器也有类似的论点(Bahdanau et al., 2015)。

这个问题可以简单地通过改变掩码模式在基于 Transformer 的语言模型中避免。我们没有使用因果掩码,而是在序列的前缀部分使用完全可见的掩码。这种掩码模式和由此产生的“prefix LM”(我们考虑的第三个模型结构)的示意图分别如图 3 和图 4 的右图所示。在上面提到的英语到德语翻译示例中,完全可见的掩码将应用于前缀 “translate English to German: That is good. target:” 然后因果掩码将在训练期间用于预测目标“Das ist gut.”。在文本到文本框架中使用前缀 LM 最初由 Liu 等人提出。 (2018 年)。最近,董等人。 (2019) 表明,这种架构在各种文本到文本任务上都是有效的。这种架构类似于编码器-解码器模型,但其参数在编码器和解码器之间共享,并且编码器-解码器的注意力被替换为输入和目标序列的完全注意力。

我们注意到,在研究我们的文本到文本框架时,prefix LM 架构与 BERT (Devlin et al., 2018) 在用于分类任务时非常相似。要了解原因,请考虑 MNLI 基准测试中的一个示例,其中前提是“I hate pigeons.”。假设是“My feelings towards pigeons are filled with animosity.” 正确的标签是“蕴含”。为了将这个例子输入到语言模型中,我们将将其转换为序列“mnli premise: I hate pigeons. hypothesis: My feelings towards pigeons are filled with animosity. target: entailment”。在这种情况下,完全可见的前缀将对应于直到单词“target:”的整个输入序列,这可以看作是类似于 BERT 中使用的“分类”token。因此,我们的模型对整个输入具有完全可见性,然后的任务是通过输出单词“蕴含”来进行分类。该模型很容易学会在给定任务前缀(“在本例中为“mnli”)的情况下输出有效的类标签之一。这样,prefix LM 和 BERT 架构之间的主要区别在于在prefix LM中,分类器被简单地集成到Transformer解码器的输出层上,而BERT整个架构是一个分类器。

3.2.2 COMPARING DIFFERENT MODEL STRUCTURES

为了实验比较这些架构变体,我们希望我们考虑的每个模型在某种意义上是等效的。我们可以说,如果两个模型是等效的如果它们具有相同的参数数量,或者它们需要大致相同的计算量来处理给定的数据对(输入序列、目标序列)。不幸的是,我们不可能同时根据这两个标准将编码器-解码器模型与语言模型架构(由单个 Transformer 堆栈组成)进行比较。要了解原因,首先考虑一个编码器-解码器模型,其中编码器有 L 层,解码器有 L 层,那么它的参数量会和一个有 2L 层的语言模型大致相同。然而,相同的 L + L 编码器-解码器模型的计算成本和只有 L 层的语言模型大致相同。这是因为语言模型中的 L 层同时应用于输入和输出序列,而编码器中的 L 层仅应用于输入序列,解码器中的 L 层仅应用于输出序列。所以存在参数量不同,但计算量几乎相同的情况。请注意,这些等价是近似的——因为解码器中多出来的 编码器-解码器注意力层存在一些额外的参数,并且在注意力层中也有一些计算成本,和序列的长度二次多项式相关。然而,在实践中,我们观察到 L 层的语言模型几乎和 L + L 层的编码器-解码器模型有几乎相同的步骤时间,这表示他们的计算成本大致相当。此外,对于我们考虑的模型大小,编码器-解码器注意力层中的参数数量大约是总参数计数的 10%,因此我们做了一个简化的假设,即 L + L 层编码器-解码器模型的参数数量与 2L 层语言模型相同。

为了提供合理的比较方式,我们考虑了编码器-解码器模型的多种配置。我们将一个 BERTBASE 这样大小的层堆栈中的层的数量和参数数量分别称为 L 和 P。我们将使用 M 来指代 L + L 层 encoder-decoder模型或 L 层 decoder-only 模型处理给定输入-目标对所需的 FLOP 数量。总的来说,我们将比较:

  • 一个编码器-解码器模型,其中编码器中有 L 层,解码器中有 L 层。该模型有 2P 个参数和 M 个 FLOPs 的计算成本。
  • 一个编码器-解码器模型,其中编码器中有 L 层,解码器中有 L 层。和上面的编码器-解码器模型架构相同,但参数在编码器和解码器之间共享,这导致了 P 个参数和 M -FLOPs 的计算成本。
  • 一个编码器和解码器,其中编码器中有 L/2 层,解码器中有 L/2 层。该模型有给出 P 个参数和 M/2 个 FLOPs 的计算成本。
  • 一个只使用解码器的语言模型,有 L 层和 P 个参数,以及 M 个 FLOPs 的计算成本。
  • 一个只使用解码器的前缀语言模型,有 L 层和 P 个参数,以及 M 个 FLOPs 的计算成本。和上面的只使用解码器的语言模型架构相同,但对输入具有完全可见的自注意力机制。

3.2.3 OBJECTIVES

作为无监督目标,我们将同时考虑第 3.1.4 节中描述的基本语言建模目标以及我们的基线去噪目标。我们仍然考虑语言建模目标,因为有很多过去的研究将它作为预训练目标(Dai 和 Le,2015;Ramachandran 等人,2016;Howard 和 Ruder,2018;Radford 等人,2018;Peters 等人,2018)以及它对于我们考虑的语言模型架构是天然适合的。对于在进行预测之前先吸收前缀的模型(编码器-解码器模型和前缀 LM),我们从未标记的数据集中采样一段文本,并选择一个随机点将其拆分为前缀部分和目标部分。对于标准语言模型,我们训练模型来预测从开始到结束的整个跨度。我们的无监督去噪目标是为文本到文本模型设计的;为了让它可以在语言模型上适用,我们将输入和目标连接起来,如第 3.2.1 节所述。

3.2.4 RESULTS

我们比较的每个架构所获得的分数如表 2 所示。对于所有任务,具有去噪目标的编码器-解码器架构表现最好。该变体具有最高的参数数量 (2P ),但与有 P 个参数 decoder-only 模型的计算成本相同。令人惊讶的是,我们发现编码器和解码器之间共享参数的模型表现也几乎一样好。相比之下,将编码器和解码器的层数减半严重损害了性能。并行工作 (Lan et al., 2019) 还发现,、在 Transformer 块之间共享参数可以成为一种降低总参数量的有效方法而不牺牲太多性能。XLNet 也与基于去噪目标的共享编码器-解码器方法有一些相似之处(Yang et al., 2019)。我们还注意到,共享参数的编码器-解码器模型表现优于 decoder-only 的前缀 LM,这表明添加显式的编码器-解码器注意力是有益的。最后,我们确认了一个可以广泛应用的概念,即与语言建模目标相比,使用去噪目标总是会有更好的下游任务性能。这一观察结果已经被先前 Devlin等人(2018)、Voita等人(2019)以及Lample和Conneau(2019)等的研究发现过。我们将在下一节中对无监督目标进行更详细的探索。

3.3 Unsupervised Objectives

无监督的目标函数的选择是非常重要的,因为它提供了使模型获得通用知识应用于下游任务的机制。这导致了各种预训练目标的发展(Dai 和 Le,2015;Ramachandran 等人,2016;Radford 等人,2018;Devlin 等人,2018;Yang 等人,2019;Liu 等人,2019b;Wang 等人,2019a;Song 等人,2019;Dong 等人,2019;Joshi 等人,2019)。在本节中,我们对无监督目标的领域进行探索。在许多情况下,我们不会准确地复制现有目标——有些目标函数会经过修改以适应我们的文本到文本编码器-解码器框架,在其他情况下,我们将使用结合了多种常见方法的概念的目标。

总体而言,所有的目标都会从未标记的文本数据集中提取一个令牌 ID 的序列,它对应到一段从无标签文本数据集中得到的令牌化的文本。令牌序列经过处理来产生一个(损坏的)输入序列和一个相应的目标。然后,模型像往常一样用最大似然进行训练来预测目标序列。我们在表 3 中提供了我们考虑的一些目标的说明性示例。

3.3.1 DISPARATE HIGH-LEVEL APPROACHES

首先,我们比较了三种受常用目标启发的技术,但他们的方法存在显着差异。首先,我们引入一个3.2.3节提到的基本的 “prefiex language modeling” 目标。该技术将一段文本分成两部分,一部分用作编码器的输入,另一部分作为解码器要预测的目标序列。其次,我们考虑了一个受 BERT 中使用的 “masked language modeling”(MLM)目标启发的目标(Devlin 等人,2018 年)。MLM 接受一段文本并破坏 15% 的token。90% 的损坏 token 被替换为一个特殊的掩码 token,10% 被替换为一个随机的 token。由于 BERT 是一个 encoder-only 模型,因此在预训练期间它的目标就是在编码器的输出上重建掩码 token。在编码器-解码器的情况中,我们简单地使用整个未损坏的序列作为目标。请注意,这与我们的基线目标不同,后者仅使用损坏的令牌作为目标;我们在第 3.3.2 节中比较了这两种方法。最后,我们还考虑了一个基本的 deshuffling 目标,例如在 (Liu et al., 2019a) 中,它被应用于一个去噪的顺序自动编码器。这种方法采用一个token序列,打乱它,然后使用原始的未经过打乱的序列作为目标。我们在表 3 的前三个行中为这三种方法提供了输入和目标的示例。

这三个目标的性能如表 4 所示。总体而言,我们发现 BERT 风格的目标表现最好,尽管前缀语言建模目标在翻译任务上达到了相似的性能。事实上,BERT 目标提出的动机就是想要超过基于语言模型的预训练方法。去洗牌目标的性能比前缀语言建模和 BERT 风格的目标差得多。

3.3.2 SIMPLIFYING THE BERT OBJECTIVE

基于上一节中的结果,我们现在将专注于探索对 BERT 风格的去噪目标的改进。这个目标最初是作为一种预训练技术提出的,用于为分类和片段预测进行训练的 encoder-only 模型。因此,我们可以对其进行改进,使其在我们的 encoder-decoder 的文本到文本任务中表现更好或更有效。

首先,我们考虑 BERT 风格目标的简单变体,其中我们去掉随机令牌交换步骤。生成的目标简单地用掩码 token 替换输入中 15% 的 token,模型被训练去重建原始的未损坏序列。Song等人(2019)使用了类似的屏蔽目标,并称之为“MASS”,因此我们将这个变体称为 “MASS-style” 的目标。其次,我们致力于看看是否有可能避免预测整个未损坏的文本片段,因为这需要对解码器中的长序列计算自注意力。我们考虑两种策略来实现这一点:首先,我们不用掩码标记替换每个损坏的标记,而是将每个连续范围的损坏标记替换为一个唯一的掩码标记。然后,目标序列变成了“损坏”的片段的组合,每个片段前面加上该片段对应缺失token的掩码标记。这是我们在基线中使用的预训练目标,如第 3.1.4 节所述。其次,我们还考虑了一种变体,我们简单地直接把损失的token从输入序列中全部丢弃,并将模型的任务变成按顺序重建这些丢失的 token。这些方法的示例如表 3 的第五行和第六行所示。

表 5 中显示了原始BERT-style的目标与这三个变体的比较。我们发现在我们的设置中所有这些变体的表现都相似。唯一的例外是直接丢弃损坏 token 的方法,它在GLUE分数上有小幅提升,这是因为由于它在 GLUE中的CoLA 任务上的明显更高的分数(60.04,与我们的基准平均分数53.84相比,可以在表16中看到)。这可能是因为 CoLA 涉及对给定句子在语法上和句法上是否可接受进行二分类,而确定标记什么时候丢失的能力与检测句子是否可接受的能力密切相关。然而,在SuperGLUE上丢弃 token 的结果比用标记令牌替换 token 的结果要差。这两种不需要预测完整原始序列(“替换损坏的片段”和“丢弃损坏的片段”)的变体都有潜在的吸引力,因为它们使目标序列变得更短,从而使训练变得更快。展望未来,我们将探索用哨兵标记替换损坏的片段,并且只预测损坏的标记的变体(就像我们的基线目标)。

3.3.3 VARYING THE CORRUPTION RATE

到目前为止,我们已经破坏了 15% 的标记,这是 BERT 中使用的值(Devlin 等人,2018 年)。再次地,由于我们的文本到文本框架与 BERT 的框架不同,我们希望看看不同的损坏率是否更适合我们。我们在表 6 中比较了 10%、15%、25% 和 50% 的损坏率。总体而言,我们发现损坏率对模型的性能影响有限。唯一的例外是我们考虑的最大损坏率(50%)导致 GLUE 和 SQuAD 的性能显着下降。使用更大的损坏率也会导致更长的目标序列,这可能会减慢训练速度。基于这些结果和 BERT 设置的历史先例,我们将会继续使用 15% 的损坏率。

3.3.4 CORRUPTING SPANS

我们现在探究通过预测较短的目标序列来加速训练的目标。到目前为止,我们使用的方法对每个输入标记的决策做出独立同分布的决定来确定是否破坏它。当多个连续的 token 被破坏时,它们被视为 “span” (跨度,片段),一个唯一的掩码 token 用于替换整个跨度。用单个 token 替换整个跨度会导致未标记的文本数据被处理成更短的序列。由于我们使用i.i.d.的损坏策略,因此有大量连续的损坏的token这种情况并不总是发生。因此,我们可以通过专门破坏令牌的跨度而不是以 i.i.d 方式破坏单个令牌来获得额外的加速。损坏的跨度以前也被认为是 BERT 的预训练目标,在那里它被发现可以提高性能(Joshi 等人,2019)。

为了测试这个想法,我们考虑一个目标函数,它专门破坏连续的、随机分布的token跨度。可以通过要破坏的令牌比例和破坏跨度的总数来参数化该目标。然后随机选择跨度长度以满足这些特定的参数。例如,如果我们处理 500 个 token 的序列,并且我们已经指定应该损坏 15% 的 token,应该总共有 25 个跨度,那么损坏标记的总数将是 500 × 0.15 = 75,平均跨度长度为 75/25 = 3。请注意,给定原始的序列长度和损坏率,我们可以通过平均跨度长度,或者通过跨度的总数参数化这个目标,这两种参数化方法是等效的。

我们在表 7 中比较了按跨度损坏目标和i.i.d地损坏目标的表现。在所有情况下,我们使用15%的损坏率,并使用2、3、5和10的平均跨度长度进行比较。同样,我们发现这些目标之间的差异有限,尽管在某些情况下,平均跨度长度为10的版本略逊于其他值。我们还发现,在大多数非翻译的基准上,使用 3 的平均跨度长度的跨度方法稍稍(但显著)优于 i.i.d. 方法。幸运的是,与 i.i.d. 噪声方法相比,跨度损坏目标方法在训练期间还提供了一些加速,因为跨度损坏方法平均来说会产生更短的序列。

3.3.5 DISCUSSION

图 5 显示了我们在探索无监督目标期间做出的选择流程图。总体而言,我们观察到的性能最显着的区别是预训练时,去噪目标的性能优于语言建模目标和去洗牌目标。我们没有观察到我们探索的去噪目标的许多变体存在显着差异。然而,不同的目标(或目标的参数化)会导致不同的序列长度,从而导致不同的训练速度。这意味着,如何在我们考虑的这些去噪目标中进行选择应该主要是根据它们的计算成本完成的。我们的结果也表明,对与我们在此考虑的目标类似的其他目标的额外探索可能不会对任务和模型有重大收获。 相反,对如何利用未标记数据的不同的方法的探索可能是偶然的。

3.4 Pre-training Data set

与无监督目标一样,预训练数据集本身也是迁移学习的关键组成部分。然而,与目标和基准不同,新的预训练数据集通常本身并不被视为重要贡献,而且通常不会与预训练模型和代码一起发布。相反,它们通常在提出新方法或模型的过程中引入。因此,不同的预训练数据集缺乏比较,同样也缺少一种“标准”的预训练数据集。最近有一些值得注意的例外(Baevski 等人,2019;Liu 等人,2019c;Yang 等人,2019)比较了在一个新的大型数据集(通常是 Common Crawl 源)和在一个较小的预先存在的数据集(通常是维基百科)上预训练的性能。为了更深入地探讨预训练数据集对性能的影响,在本节中,我们将比较我们 C4 数据集的变体和预训练数据的其他潜在来源。我们发布了我们考虑的所有 C4 数据集变体作为 TensorFlow 数据集的一部分。

3.4.1 UNLABELED DATA SETS

在创建 C4 时,我们开发了各种启发式方法来过滤 Common Crawl 的网络提取文本(有关描述请参见第 2.2 节)。除了与其他过滤方法和其他常见的预训练数据集作比较,我们还想测评这种过滤方法是否可以提高下游任务的性能。为此,我们将我们的基线模型在以下数据集进行预训练后进行性能的比较:

C4 作为基线,我们首先考虑在我们提出的未标记数据集上进行预训练,如第 2.2 节所述。

Unfiltered C4 为了衡量我们在创建 C4时使用的启发式过滤方法(重复数据删除、删除坏词、只保留句子等)的效果,我们还生成一个不同版本的没有这些过滤的 C4。请注意,我们仍然使用 langdetect 来提取英文文本。因此,我们的“未过滤”变体仍然包括一些过滤,因为 langdetect 有时会给非英语文本分配一个很低的概率。

RealNews-like 最近的工作使用了从新闻网站中提取的文本数据(Zellers 等人,2019;Baevski 等人,2019)。为了与这种方法进行比较,我们通过额外过滤 C4 来生成另一个未标记数据集,这个数据集仅包含在 ”RealNews”数据集中使用的一个域的内容(Zellers 等人,2019 年)。请注意,为了便于比较,我们保留了 C4 中使用的启发式过滤方法;唯一的区别是我们忽略了任何非新闻的内容。

WebText-like 同样,WebText数据集仅使用提交到内容聚合网站 Reddit 且收到的“score”至少为3的网页内容。提交给Reddit的网页得分基于认可或反对网页的用户比例。使用Reddit分数作为质量信号的背后想法是,该网站的用户只会上传高质量的文本内容。为了生成可比较的数据集,我们首先尝试从C4中删除所有不是 OpenWebText 列表中出现的URL。但是,由于大多数页面从未出现在Reddit上,因此内容相对较少,仅约 2 GB。为避免使用过小的数据集,因此我们从2018年8月至2019年7月从 Common Crawl 下载了12个月的数据,对 C4 和 Reddit 应用了启发式过滤,产生了一个17 GB的类似 WebText 的数据集,其大小与原始40GB的 WebText 数据集相类似。(Radford 等人,2019 年)。

Wikipedia Wikipedia网站包含数以百万计的协作撰写的百科全书文章。 该网站上的内容受严格的质量准则约束,因此已被用作可靠且纯净的自然文本来源。 我们使用 TensorFlow Datasets 的英文 Wikipedia 文本数据,其中省略了文章中的任何标记或参考部分。

Wikipedia + Toronto Books Corpus 使用 Wikipedia 的预训练数据的一个缺点是它仅代表自然文本(百科全书文章)的一个可能领域。为了缓解这种情况,BERT (Devlin et al., 2018) 将维基百科的数据与多伦多图书语料库 (TBC) 相结合(Zhu et al., 2015)。TBC 包含从 eBooks 中提取的文本,它代表了自然语言的不同领域。BERT 的流行导致 Wikipedia + TBC 组合用于许多后续工作。

表8展示了在这些数据集上进行预训练的的结果。第一个明显的收获是,从 C4 中删除启发式过滤会统一降低性能,这未使用过滤的变体在每个任务中都表现最差。除此之外,我们发现在某些情况下,具有更多约束域的预训练数据集优于不同的 C4 数据集。例如,使用 Wikipedia + TBC 语料库产生了 73.24 的 SuperGLUE 分数,超过了我们的基线(C4)得分 71.36。这几乎完全归因于 MultiRC 的精确匹配分数(见表 16)的性能从 25.78(基线,C4)提高到 55.93(维基百科 + TBC)。MultiRC 是一个阅读理解数据集,其最大的数据源来自小说书籍,这正是 TBC 涵盖的领域。同样,使用类似 RealNews 的数据集进行预训练在 ReCoRD 的精确匹配分数上从 68.16 增加到 73.72,这是一个衡量新闻文章阅读理解的数据集。作为最后一个示例,使用来自 Wikipedia 的数据在 SQuAD 上产生了显着(但不那么突出)的收益,SQuAD是一个使用来自 Wikipedia 的段落的问题解答数据集。在之前的工作中也进行了类似的观察,例如 Beltagy 等人。 (2019) 发现,在研究论文文本上预训练的 BERT 提高了其在科学任务上的性能。这些发现背后的主要教训是,对域内未标记数据进行预训练可以提高下游任务的性能。这并不奇怪,但也不那么令人满意,因为我们的目标是预训练模型,然后该模型可以快速适应来自任意域的语言任务。Liu等人(2019c)还观察到,在更多样化的数据集上进行预训练提高了在下游任务的性能。这一观察结果还激发了自然语言处理的域适应的平行研究方向;有关该领域的调查可以看,例如 Ruder (2019);Li (2012)。

仅对单个域进行预训练的一个缺点是生成的数据集通常要小得多。同样,虽然在我们的基线设置中, WebText-like 的变体的表现得类似或优于 C4 数据集,并且由于 Reddit 的过滤产生了比 C4 小约 40 倍的数据集,但它是基于Common Crawl的 12 倍以上数据而建立的。然而请注意,在我们的基线设置中,我们只在 2^35 ≈ 34B 个令牌上进行预训练,这只比我们考虑的最小预训练数据集大 8 倍左右。在以下部分中,我们将研究使用较小的预训练数据集是否会引起问题。

3.4.2 PRE-TRAINING DATA SET SIZE

我们使用创建 C4 的方法旨在能够创建非常大的预训练数据集。访问如此多的数据使我们能够在不重复示例的情况下预训练我们的模型。目前尚不清楚在预训练期间重复示例是否有助于或不利于下游任务性能,因为我们的预训练目标本身是随机的,可以帮助防止模型多次看到相同的数据。

为了测试对未标记数据集限制其大小的影响,我们在 C4 的人工截断版本上预训练我们的基线模型。回想一下,我们在 2^35 ≈ 34B 标记(C4 的总大小的一小部分)上预训练我们的基线模型。我们考虑对由 229、227、2^25 和 2^23 个标记组成的 C4 截断变体进行训练。这些大小分别对应于在预训练期间重复数据集 64、256、1,024 和 4,096 次。

由此产生的下游性能如表 9 所示。正如预期的那样,随着数据集大小缩小,性能会下降。我们怀疑这可能是由于模型开始记忆预训练数据集。为了衡量这是否为真,我们在图 6 中绘制了每个数据集的训练损失。事实上,随着预训练数据集的大小缩小,该模型获得了明显更小的训练损失,这表明可能存在记忆。Baevski等人(2019)同样观察到,截断预训练数据集的大小可能会降低下游任务的性能。

我们注意到,当预训练数据集仅重复 64 次时,这些影响是有限的。这表明预训练数据的一些重复可能不是有害的。然而,鉴于额外的预训练可能是有益的(正如我们将在 3.6 节中展示的那样),并且获得额外的未标记数据既便宜又容易,我们建议还是尽可能使用大型预训练数据集。我们还注意到,对于较大的模型大小,这种影响可能更加明显,即较大的模型可能更容易过度拟合较小的预训练数据集。

3.5 Training Strategy

到目前为止,在对单个监督任务进行微调之前,我们已经考虑了模型的所有参数在无监督任务上预训练模型的设置。虽然这种方法很直截了当,但许多不同的方法已经被提出,用来在下游/有监督的任务上训练模型。在本节中,除了多任务训练之外,我们还比较了不同的微调模型的方案。

3.5.1 FINE-TUNING METHODS

有人认为,微调所有模型的参数可能会导致次优结果,尤其是在低资源任务上(Peters 等人,2019)。早期文本分类任务的迁移学习的结果提倡只微调小型分类器的参数,这种小分类器的输入是用一个固定的预训练模型产生的句子嵌入(Subramanian 等人,2018;Kiros 等人,2015;Logeswaran 和 Lee,2018;Hill 等人,2016;Conneau 等人,2017)。这种方法不太适合我们的编码器-解码器模型,因为我们需要训练整个解码器以输出给定任务的目标序列。相反,我们关注两种替代的微调方法,它们每次仅更新我们编码器-解码器模型的参数子集。

第一种是 “adapter layers”(Houlsby 等人,2019;Bapna 等人,2019),其被提出的动机是为了在微调时保持大部分原始模型固定。适配器层是额外附加的的 dense-ReLU-dense 块,在Transformer的每个块中的前馈网络之后添加。这些新的前馈网络的设计使其输出维数与其输入相匹配。这允许它们插入到网络中,而不会对结构或参数进行额外的更改。微调时,只更新适配器层和层归一化参数。这种方法的主要超参数是前馈网络的内部维度 d,它改变了添加到模型中的新参数的数量。我们对 d 的不同值进行了实验。

我们考虑的第二个替代微调方法是 “gradual unfreezing”(Howard 和 Ruder,2018 年)。在逐渐解冻中,随着时间的推移,越来越多的模型的参数被微调。逐渐解冻最初应用于由单个层堆栈组成的语言模型架构。在这种情况下,在微调开始时只有最后一层的参数被更新,然后在训练一定数量的更新后,倒数第二层的参数也被包括进去更新,依此类推,直到整个网络的参数被微调。为了使这种方法适应我们的编码器-解码器模型,我们从上层开始并行地逐渐解冻编码器和解码器中的层。由于我们的输入嵌入矩阵和输出分类矩阵的参数是共享的,因此我们在微调期间更新它们。回想一下,我们的基线模型由编码器和解码器中的每个 12 层组成,并针对微调了2^18步。因此,我们将每个微调过程细分为 12 个时期,每个时期 2^18/12 步,并在第 n 个时期训练第 12 -n 层到第 12 层。我们注意到 Howard 和 Ruder (2018) 建议在每个训练 epoch 之后微调一个额外的附加层。然而,由于我们的监督数据集的大小差异很大,并且由于我们的一些下游任务实际上是许多任务的混合(GLUE 和 SuperGLUE),我们改为采用更简单的策略,即在每个 2^18/12 步,也就是每个时期之后微调附加层。

这些微调方法的性能比较如表 10 所示。对于适配器层,我们使用 32、128、512、2048 的内部维度 d 报告性能。与过去的结果(Houlsby 等人,2019;Bapna 等人,2019)相比,我们发现 SQuAD 等低资源任务在较小的维度d值时可以很好地工作,而较高的资源任务需要较大的维度才能达到合理的性能。这表明适配器层是一种很有前途的技术,可以在更少的参数上进行微调,只要维度被适当地缩放到任务大小。请注意,在我们的例子中,我们通过连接它们的组成数据集将 GLUE 和 SuperGLUE 视为单个“任务”,因此尽管它们包含一些低资源数据集,但组合数据集足够大,因此需要较大的 d 值。我们发现逐渐解冻会导致所有任务的性能略有下降,尽管它在微调期间确实提供了一些加速。通过更仔细地调整解冻计划,也许可以获得更好的结果。

3.5.2 MULTI-TASK LEARNING

到目前为止,我们已经在单个无监督学习任务上预训练模型,然后在每个下游任务上单独微调它。一种被称为“multi-task learning”的替代方法(Ruder,2017;Caruana,1997)可以一次在多个任务上训练模型。这种方法通常的目标是训练一个可以同时执行许多任务的模型,也就是模型及其大部分参数在所有任务之间共享。我们稍微放宽了这个目标,研究一次对多个任务进行训练的方法,以便最终生成在每个单独任务上表现良好的单独参数设置。例如,我们可能会在许多任务上训练单个模型,但是当报告性能时,我们允许为每个任务选择不同的checkpoint。这放宽了多任务学习框架,并且与我们之前考虑的预训练然后微调方法相比,它更加成熟。我们还注意到,在我们的统一的文本到文本框架中,“多任务学习”可以简单地对应于将数据集混合在一起。因此,当使用多任务学习时,我们仍然可以在未标记的数据上进行训练,通过将无监督任务视为混合在一起的任务之一。相比之下,NLP 的大多数多任务学习的应用都添加了特定于任务的分类网络或为每个任务使用不同的损失函数(Liu et al., 2019b)。

正如Arivazhagan等人(2019)所指出的,多任务学习中一个极其重要的因素是每个任务应该有多少数据来使模型在其上训练。我们的目标是不要不足或过度训练模型——也就是说,我们希望模型从给定的任务中看到足够的数据,它可以很好地执行任务,但不会看到太多以至于让它记住训练集。如何准确设置来自每个任务的数据比例可能取决于各种因素,包括数据集大小、学习任务的“难度”(即模型在能够有效地执行任务之前必须看到的数据)、正则化等。另一个问题是潜在的“任务干扰”或“负向迁移”的问题,也就是在一个任务上获得良好的性能可能会阻碍另一个任务的性能。鉴于这些问题,我们首先探索各种策略来设置来自每个任务的数据比例。Wang等人(2019a)进行了类似的探索。

Examples-proportional mixing 模型对给定任务过度拟合的速度的一个主要因素是任务的数据集大小。因此,设置混合比例的一种自然方法是按照每个任务数据集的大小进行采样。这相当于连接所有任务的数据集并从组合数据集中随机采样示例。然而,请注意,这里包括我们的无监督去噪任务,它使用比其他每个任务大几个数量级的数据集。因此,如果我们简单地与每个数据集的大小成比例采样,模型看到的绝大多数数据都将是未标记数据集,而所有有监督任务都会训练不足。即使没有无监督任务,一些任务(例如 WMT 英语到法语)是如此之大,以至于它们也会占据大部分批次。为了解决这个问题,我们在计算比例之前对数据集大小设置了人工“限制”。具体来说,N 个任务数据集中的每个示例数量为 e n , n ∈ { 1 , . . . , N } e_{n},n\in\{1,...,N\} en,n{1,...,N} 然后我们设置在训练期间从第 m 个任务中采样一个示例的概率是 r m = min ⁡ ( e m , K ) / ∑ min ⁡ ( e n , K ) r_{m}=\min(e_{m},K)/\sum\min(e_{n},K) rm=min(em,K)/min(en,K) ,其中 K 是人工设置的数据集大小限制。

Temperature-scaled mixing 减轻数据集大小之间巨大差异的另一种方法是调整混合采样概率的“温度”。这种方法被多语言 BERT 使用,以确保模型在低资源语言上得到充分训练。 为了用温度 T 实现温度缩放,我们将每个任务的混合采样概率 r m r_{m} rm 提高到 1⁄T 的幂次,并重新归一化,使它们总和为1。当T = 1时,这种方法相当于 examples-proportional mixing,随着T值的增加,比例变得更接近 equal mixing。我们保留数据集大小限制 K(应用于温度缩放前获得 r m r_{m} rm),但将其设置为一个大值 K = 2^21。我们使用较大的 K 值,因为提高温度 T 会降低大数据集的混合比率。

Equal mixing 在这种情况下,我们以相等的概率从每个任务中采样示例。具体来说,每批中的每个示例都是从我们训练的数据集之一中随机抽取的。这很可能是次优策略,因为模型将在低资源任务上快速过拟合,并且在高资源任务上训练不足欠拟合。我们主要将其作为一个参考点,看当比例的设置不好时,什么可能会出错。

为了将这些混合策略在相同的基础上与我们的基线 pre-train-thenfine-tune 的结果进行比较,我们为多任务模型训练了相同的步数:2^19 + 2^18 = 786,432。结果如表11所示。

一般来说,我们发现多任务训练方法不如预训练然后对大多数任务进行微调的方法。特别是“equal mixing”策略会导致性能显着下降,这可能是因为低资源任务过拟合,而高资源任务没有看到足够的数据,或者模型没有看到足够的未标记数据来学习通用的语言能力。对于“examples-proportional mixing”,我们发现对于大多数任务,K 有一个“甜蜜点”,其中模型获得了最好的性能,较大的或较小的 K 值往往会导致更差的性能。例外(对于我们考虑的 K 值范围)是 WMT 英语到法语翻译,这是一个高资源任务,它总是受益于更高的混合比例。最后,我们注意到temperature-scaled mixing 也提供了从大多数任务中获得合理性能的方法,在大多数情况下,T = 2 表现最好。之前已经观察到在每个单独任务上训练的单独模型比多任务训练的模型表现得更好,例如 Arivazhagan 等人。 (2019) 和 McCann 等人。 (2018 年),尽管多任务设置也被观察到说可以在非常相似的任务中带来好处 Liu 等人。 (2019b);Ratner 等人。 (2018 年)。在下一节中,我们将探索缩小多任务训练和预训练-微调之间差距的方法。

3.5.3 COMBINING MULTI-TASK LEARNING WITH FINE-TUNING

回想一下,我们正在研究多任务学习的宽松版本,我们在混合的任务上训练单个模型,但允许使用模型的不同参数设置(checkpoint)来评估性能。我们可以拓展这种方法,考虑模型一次对所有任务进行预训练但接着在单个监督任务上进行微调。这是“MT-DNN”(Liu et al., 2015, 2019b)使用的方法,它在 GLUE 和其他基准上取得了最先进的性能。我们考虑这种方法的三种变体:首先,我们简单地在限制大小K=2^19的examples-proportional mixture数据集上对模型进行预训练,然后在每个单独的下游任务上分别做微调。这有助于我们评估把监督任务和无监督目标都包含在内的预训练是否提供给一些对于下游任务的信息。我们可能还希望许多监督任务资源的混合可以帮助预训练模型在为单个任务训练之前先获得一组更通用的“技能”(粗略地说)。为了直接测量这一点,我们考虑第二种变体,我们在相同的examples-proportional mixture(K = 2^19)数据集上预训练模型,只是我们从这种预训练混合中忽略了其中一个下游任务。然后,我们在这个遗漏的任务上做微调。我们对我们考虑的每个下游任务都重复此过程。我们将此方法称为 “leave-one-out” 多任务训练。这模拟了现实世界的设置,其中预训练模型会在之前没有见过的任务上做微调。请注意,多任务预训练提供了不同的监督任务的混合。由于其他领域(例如计算机视觉(Oquab et al., 2014; Jia et al., 2014; Huh et al., 2016; Yosinski et al., 2014))使用监督数据集进行预训练,我们有兴趣看看从多任务预训练混合中省略无监督任务是否仍然产生良好的结果。因此,对于我们的第三个变体,我们在所有有监督任务的数据集混合(examples-proportional mixture,K = 219)上预训练模型。在所有这些变体中,我们遵循我们的标准程序,即预训练219步,然后微调2^18步。

我们在表 12 中比较了这些方法的结果。为了比较,我们还列出了我们的基线结果(预训练然后微调)和标准多任务学习(无需微调)在examples-proportional mixture,K = 2^19上的结果。我们发现在多任务预训练后然后微调有与基线相当的性能。这表明,在多任务学习之后使用微调的方法可以帮助环节第 3.5.2 节中描述的不同混合率之间的一些权衡。有趣的是,“leave-one-out”训练的性能仅仅差了一点,这表明在各种任务上训练的模型仍然可以适应新的任务(即多任务预训练可能不会导致显着的任务干扰)。最后,除了翻译任务外,全部基于有监督任务的多任务预训练在每种情况下的表现都要差很多。这可能表明翻译任务从(英语)预训练中受益较少,而无监督预训练是其他任务的重要因素。

3.6 Scaling

机器学习研究的“惨痛教训”认为,可以利用额外计算的通用方法最终优于依赖人类专业知识的方法(Sutton,2019;Hestness 等人,2017;Shazeer 等人,2017;Jozefowicz 等人,2016;Mahajan 等人,2018;Shazeer 等人,2018 年;Huang 等人,2018b;Keskar 等人,2019a)。最近的结果表明,这对于 NLP 中的迁移学习也可能成立(Liu et al., 2019c; Radford et al., 2019; Yang et al., 2019; Lan et al., 2019),也就是与更精心设计的方法相比,扩大规模可以提高性能。然而,有多种可能的方法可以扩展,包括使用更大的模型、训练模型更多步骤,还有集成。在本节中,我们比较这些不同的方法,在这个前提上:“给你 4 倍的计算量。你应该如何使用它?”

我们从我们的基线模型开始,它有 220M 参数,并分别对 2 19 2^{19} 219步预训练和 2 18 2^{18} 218 步微调。编码器和解码器的大小都类似于“BERTBASE”。为了试验模型大小的增加,我们遵循“BERTLARGE”Devlin等人(2018)的指导方针,并使用 d ff d_{\text{ff}} dff = 4096, d model d_{\text{model}} dmodel = 1024, d kv d_{\text{kv}} dkv = 64和16头注意机制。然后,我们生成两个变体,分别有16层和32层的编码器解码器,这让模型有了 2倍 和 4 倍于原始模型的参数量。这两个变体的计算成本也约为 2 倍和 4 倍。对于我们的基线和这两个更大的模型,我们对应考虑了三种 4 倍的计算量的方法:使用基线模型训练 4 倍的步骤,使用 2 倍模型训练 2 倍的步骤,使用 4 倍模型训练和基线实验相同的步骤。当我们增加训练步骤时,为了简单起见我们同时增加预训练和微调步骤。请注意,当增加预训练步骤的数量时,我们使用了更多的预训练数据,因为 C4 非常大,即使训练 2 23 2^{23} 223 步也训练不完。

让模型看到 4 倍数据的另一种方法是将批量大小增加 4 倍。由于更有效的并行化,这可能会导致更快的训练。然而,增加到4 倍的训练批量大小会产生与训练4倍的步数不同的结果(Shallue 等人,2018 年)。我们做了一个额外的实验,用 4 倍的批量大小训练我们的基线模型来比较这两种情况。

在我们考虑的许多基准测试中的通用做法是,通过使用集成模型的训练和评估来排除额外的性能。这提供了一种使用额外计算的正交的方法。为了将其他缩放方法与集成进行比较,我们还测量了一个包括四个单独预训练和微调的模型的集成模型的性能。我们在集成时对所有logits取平均值,然后再将它们放入输出的非线性softmax来获得一个汇总的预测。相比于单独预训练四个模型,更便宜的替代方案是采用一个预训练模型并产生四个单独的微调版本。虽然这不会使用我们的所有的 4 倍的计算预算,但我们也包括了这种方法,看看它是否与其他缩放方法产生了具有竞争力的性能。

应用这些不同的缩放方法后实现的性能如表 13 所示。不出所料,增加训练时间和/或模型大小不断提高了基线性能。训练 4 倍步骤或使用 4 倍批量大小之间没有明显的赢家,两者都是有益的。一般来说,与仅增加训练时间或批量大小相比,增加模型大小会导致性能的额外颠簸。我们没有观察到训练 2 倍时间的 2 倍大的模型和 4 倍大模型之间在我们研究的任务上有什么巨大差异。这表明增加训练时间和增加模型大小可以成为提高性能的互补手段。我们的结果表明,集成提供了一种正交和有效的方法,可以通过缩放来提高性能。在某些任务(CNN/DM、WMT 英语到德语,WMT 英语到罗马尼亚语)中,集成 4 个完全单独训练的模型明显优于其他每种缩放方法。一起预训练但 4 个单独微调的集成模型也比基线显着提高了性能,这提供了一种更便宜的提高性能的方法。唯一的例外是 SuperGLUE,其中两种集成方法都没有比基线显着提高。

我们注意到不同的缩放方法具有不同的权衡,这些权衡与它们的性能不同。例如,使用更大的模型可以会让下游任务的微调和推断变得更昂贵。相比之下,给小型模型预训练更长的时间,在应用到许多下游任务时,会有效地摊销该成本。另外,我们注意到集成 N 个单独的模型的成本与使用一个 N 倍的计算成本的模型相似。因此,在缩放方法之间进行选择时,对模型最终用途的考虑很重要。

3.7 Putting It All Together

我们现在利用我们系统研究的见解来确定我们可以对流行的 NLP 基准上提高多少性能。我们也有兴趣通过在大量数据上训练更大的模型来探索 NLP 迁移学习的当前限制。我们从我们的基线训练方法开始,并进行以下更改:

Objective 我们把基线中的 i.i.d 去噪目标换成了在3.3.4节中描述的跨度损坏目标,这大致受到SpanBERT的启发(Joshi等人,2019年)。具体来说,我们使用 3 的平均跨度长度损坏 15% 的原始序列。我们发现这个目标产生了稍好一点的性能(表 7),但由于目标序列长度较短,它有更好一点的计算效率。

Longer training 我们的基线模型使用相对较少的预训练(是 BERT的1/4 (Devlin et al., 2018)、是 XLNet 的1/16 (Yang et al., 2019)、是 RoBERTa 的1/64 (Liu et al., 2019c) 等)。幸运的是,C4 足够大,我们可以在不重复数据的情况下训练更长的时间(重复数据可能是有害的,如第 3.4.2 节所述)。我们在第 3.6 节中发现,额外的预训练确实是有帮助的,并且增加批量大小和增加训练步骤的数量都可以带来这种好处。因此,我们用了 2 11 2^{11} 211 个长度为 512 的序列上对我们的模型进行了 1B 步的预训练,对应于总共大约 1T 个预训练 token(大约是我们的基线的 32 倍)。在第 3.4.1 节中,我们展示了在 RealNews-like、WebText-like 和 Wikipedia + TBC 数据集上的预训练在几个下游任务上表现得比在 C4 的预训练上好。然而,这些数据集变体太小,在 1万亿 个令牌的预训练过程中,它们将重复数百次。由于我们在第 3.4.2 节中表明这种重复可能是有害的,我们选择继续使用 C4 数据集。

Model sizes 在第 3.6 节中,我们还展示了扩大基线模型大小如何提高性能。然而,使用较小的模型可能有助于使用有限的计算资源微调或推理的条件。基于这些因素,我们训练了一些不同大小的模型:

  • Base 这是我们的基线模型,其超参数在第 3.1.1 节中描述,具体来说就是 d model d_{\text{model}} dmodel = 768、 d ff d_{\text{ff}} dff = 3072、 d kv d_{\text {kv}} dkv = 64、12 头注意力和 12 层的编码器解码器。它有大约 220M 个参数。
  • Small 我们考虑一个较小的模型,该模型缩小了基线模型,使用 d model d_{\text{model}} dmodel = 512、 d ff d_{\text{ff}} dff = 2,048、8 头注意力以及 6 层的编码器和解码器。这个变体大约有 60M个参数。
  • Large 由于我们的基线使用 BERTBASE 大小的编码器和解码器,我们还考虑了编码器和解码器在大小和结构上与 BERTLARGE 相似的变体。具体来说,此变体在编码器和解码器中使用 d model d_{\text{model}} dmodel = 1024、 d ff d_{\text{ff}} dff = 4096、 d kv d_{\text {kv}} dkv = 64、16 头注意力和 24 层的编码器解码器,产生大约 770M 个参数。
  • 3B and 11B 为了进一步探索使用更大的模型时可能有什么样的性能,我们考虑了两个额外的变体。在这两种情况下,我们使用 d model d_{\text{model}} dmodel = 1024、 d kv d_{\text {kv}} dkv = 128 和 24 层的编码器解码器。对于“3B”变体,我们使用 d ff d_{\text{ff}} dff = 16,384 和 32头注意力,这导致了大约 2.8B 个参数;对于“11B”变体,我们使用 d ff d_{\text{ff}} dff = 65536 和 128 头注意力,这产生一个有 11B 个参数的模型。我们特别选择扩展 d ff d_{\text{ff}} dff 是因为现代加速器(例如我们在训练模型的 TPU)对于大型的密集矩阵乘法(Transformer中的前馈网络)最有效。

Multi-task pre-training 在第 3.5.3 节中,我们展示了在微调之前对无监督和监督任务的多任务混合进行预训练,以及仅对无监督任务进行预训练。这是“MT-DNN”提倡的方法(Liu et al., 2015, 2019b)。它还具有实际好处,即能够查看整个训练持续时间中“下游”任务的表现,而不仅仅是在微调期间。因此,我们在最后一组实验中使用了多任务预训练。我们假设为有较长训练时间的较大的模型可能受益于更大比例的未标记数据,因为较大的模型更有可能过拟合较小的训练数据集。然而,我们还注意到第 3.5.3 节的结果表明,多任务预训练后的微调可以减轻一些可能由选择次优比例的未标记数据引起的问题。基于这些想法,我们在使用标准example-proportional mixing(第 3.5.2 节中提到过的)之前将以下人工数据集中未标注数据集的大小替换:Small 替换为 710,000,Base 替换为 2,620,000,Large 替换为 8,660,000,3B 替换为 33,500,000,11B 替换为 133,000,000。对于所有模型变体,我们还在预训练期间将 WMT 英语到法语的和 WMT 英语到德语的有效数据集大小限制 1M 个示例。

Fine-tuning on individual GLUE and SuperGLUE tasks 到目前为止,当对 GLUE 和 SuperGLUE 进行微调时,我们链接了每个基准测试的数据集,以便我们只对 GLUE 微调一次和对 SuperGLUE 微调一次。这种方法使我们的研究在逻辑上更简单,但我们发现与单独对任务进行微调相比,这在某些任务上牺牲了少量的性能。但一次性在所有任务上训练可以缓解对单个任务进行微调方法的一个潜在问题,即我们可能会很快过度拟合低资源任务。例如,对于许多低资源 GLUE 和 SuperGLUE 任务,我们的一个大批量, 2^11 个长度为 512 的序列将导致整个数据集在每批中出现多次。因此,我们对每个 GLUE 和 SuperGLUE 任务进行微调期间,我们使用 8 个长度为 512 的序列的较小批量大小。我们还每 1,000 步保存checkpoint,而不是每 5,000 步,以确保我们在过度拟合之前可以访问到模型的参数。

Beam search 我们所有的先前结果都是使用贪婪解码报告的,也就是每次输出概率最高的。对于具有长输出序列的任务,我们发现使用束搜索可以提高性能(Sutskever et al., 2014)。具体来说,我们对 WMT 翻译和 CNN/DM 摘要任务使用 4 的波束宽度和 α = 0.6 (Wu et al., 2016) 的长度惩罚。

Test set 由于这是我们的最终实验的部分,我们报告了测试集而不是验证集的结果。对于 CNN/Daily Mail,我们使用与数据集分发的标准测试集。对于 WMT 任务,则分别使用 newstest2014 进行英语-德语 任务测试,newstest2015 用于英语-法语任务测试,newstest2016 用于英语罗马尼亚语任务测试。对于 GLUE 和 SuperGLUE,我们使用基准评估服务器来计算官方测试集分数。对于 SQuAD,在测试集上进行评估需要在基准服务器上运行推理。不幸的是,该服务器上的计算资源不足以从我们最大的模型中获得预测。因此,我们继续报告 SQuAD 验证集的性能。幸运的是,SQuAD 测试集上性能最高的模型也在验证集上也报告了结果,因此我们仍然可以比较什么是SOTA。

除了上面提到的这些变化之外,我们使用与我们的基线相同的训练过程和超参数(AdaFactor 优化器、用于预训练的逆平方根学习率计划、用于微调的常数学习率、dropout 正则化、词汇表等)。作为参考,这些细节在第 2 节中描述。

这组最终实验的结果如表 14 所示。总体而言,我们在我们考虑的 24 个任务中的 18 个上实现了最先进的性能。正如预期的那样,我们最大的(11B 个参数)模型在所有任务的模型大小变体中表现最好。我们的 T5-3B 模型变体在少数任务中确实击败了之前的最新技术,但将模型大小扩展到 11B 参数是实现我们最佳性能的最重要因素。我们现在分析每个单独的基准的结果。

我们在GLUE上获得了平均 90.3 的 SOTA 分数。值得注意的是,对于自然语言推理任务 MNLI、RTE 和 WNLI,我们的性能大大优于以前的最新技术。RTE 和 WNLI 是历史上机器性能落后于人类表现的两个任务,分别为 93.6 和 95.9(Wang 等人,2018 年)。在参数计数方面,我们的 11B 模型变体是提交给 GLUE 基准的最大模型。然而,之前大多数得分最高的提交都使用大量集成和计算来生成预测。例如,ALBERT (Lan et al., 2019) 的最佳性能变体使用类似于我们的 3B 变体的大小和架构的模型(尽管由于巧妙的参数共享,它的参数要少得多)。为了在 GLUE 上产生令人印象深刻的性能,ALBERT 作者根据任务集成了“从 6 到 17”个模型。这可能会导致使用 ALBERT 集成生成预测的计算成本比 T5-11B 还高。

对于 SQuAD,我们在精确匹配分数上比之前的最新技术 (ALBERT (Lan et al., 2019)) 高一个点以上。SQuAD 是一个长期存在的基准,它在三年前被创建,最新的改进只将 SOTA 提高了一个分数百分点。我们注意到,当在测试集上报告结果时,它们通常基于模型的集合和/或利用外部数据集(例如 TriviaQA (Joshi et al., 2017) 或 NewsQA (Trischler et al., 2016))来数据增强这个小型 SQuAD 训练集。SQuAD 上的人类表现的精确匹配和 F1 指标分别大约是 82.30 和 91.22 (Rajpurkar 等人,2016 年),因此尚不清楚该基准的进一步改进是否有意义。

对于 SuperGLUE,我们在很大程度上改进了 SOTA(将平均得分从 84.6(Liu 等人,2019c)提升到了 88.9)。SuperGLUE 旨在包括“超出当前 SOTA 系统范围的任务,但可以由大多数受过大学教育的英语使用者解决”(Wang 等人,2019b)。我们几乎与人类 89.8 的性能相匹配(Wang 等人,2019b)。有趣的是,在阅读理解任务(MultiRC 和 ReCoRD)上,我们大大超过了人类表现,这表明用于这些任务的评估指标可能偏向于机器翻译的预测。另一方面,人类在 COPA 和 WSC 上都实现了 100% 的准确率,这明显优于我们模型的性能。这表明仍然存在语言上的任务是我们的模型难以完善的,尤其是在低资源设置中。

我们没有在任何 WMT 翻译任务上取得 SOTA 性能。这可能部分是由于我们使用仅英语的未标记数据集。我们还注意到,这些任务中的大多数最佳结果都使用反向翻译(Edunov 等人,2018;Lample 和 Conneau,2019),这是一种复杂的数据增强方案。低资源的英语到罗马尼亚语基准的 SOTA 技术也使用了其他形式的跨语言无监督训练(Lample 和 Conneau,2019 年)。我们的结果表明,放大规模和基于英语的预训练可能不足以达到这些更复杂的方法的性能。更具体的,英语到德语 newstest2014 的最佳结果使用了来自 WMT 2018 (Edunov et al., 2018) 的更大训练集,这使得我们很难直接比较我们的结果。

最后,在 CNN/Daily Mail 上,我们获得了 SOTA 的性能,尽管只有在 ROUGE-2-F 上有比较明显的分数提升。这已经表明,对 ROUGE 分数的改进不一定对应于更连贯的摘要(Paulus 等人,2017)。此外,虽然 CNN/Daily Mail 被提出作为抽象摘要的基准,但单纯的提取方法已被证明效果也很好(Liu,2019)。还有人认为,使用最大似然训练的生成模型容易产生重复的摘要(参见 et al., 2017)。尽管存在这些潜在的问题,但我们发现我们的模型确实生成了连贯且很大程度上正确的摘要。我们在附录 C 中提供了一些非精心挑选的验证集示例。

为了实现其强大的结果,T5 将我们的实验结果研究的见解与前所未有的规模相结合。请注意,在第 3.6 节中,我们发现扩大我们的基线模型的预训练量或大小会产生可观的收益。鉴于这一点,我们有兴趣衡量我们在 T5 中引入的 “non-scaling” 的更改对其强大的性能的贡献有多大。因此,我们进行了一项最终实验,我们比较了以下三种配置:首先,是在 2^35 ≈ 34B 个标记上预训练的标准基线模型;其次,是在 1T 个标记上训练的基线模型(也就是和 T5 的预训练数量一样),我们将其称为“baseline-1T”;第三,就是T5-Base。请注意,baseline-1T 和 T5-Base 之间的差异就是我们在设计T5时的 “non-scaling” 的更改。因此,比较这两个模型的性能为我们提供了对我们系统性研究见解的影响的具体测量。

这三种模型配置的性能如表 15 所示。与第 3.6 节中的发现一致,我们发现额外的预训练比基线提高了性能。然而,T5-Base 在所有下游任务上都大大优于Base-1T。这表明缩放不是促成 T5 成功的唯一因素。我们提出假想,更大的模型不仅受益于它们的大小增加,而且受益于这些非缩放因子。

4. Reflection

在完成我们的系统研究后,我们首先回顾一下我们最重要的一些发现。我们的结果提供了一些高层次的视角,对于哪些研究途径可能或多或少有研究前景。总而言之,我们概述了我们认为可能为进一步发展该领域提供有效方法的一些主题。

4.1 Takeaways

Text-to-text 我们的文本到文本框架提供了一种简单的方法,使用相同的损失函数和解码过程在各种文本任务上训练一个模型。我们展示了这种方法如何成功地应用于生成任务比如抽象摘要、分类任务比如自然语言推理、甚至回归任务比如 STS-B。尽管它很简单,但我们发现文本到文本框架还是获得了与特定任务架构相当的性能,并最终结合规模扩展时产生了 SOTA 的结果。

Architectures 虽然一些关于 NLP 迁移学习的工作考虑了 Transformer 的架构变体,但我们发现原始编码器-解码器形式在我们的文本到文本框架中效果最好。尽管编码器-解码器模型使用的参数是“仅编码器”(例如 BERT)或“仅解码器”(语言模型)架构的两倍,但它具有相似的计算成本。我们还表明,在编码器和解码器之间共享参数并没有导致性能大幅下降,同时将总参数计数减半。

Unsupervised objectives 总体而言,我们发现大多数去噪目标(训练模型去重建随机损坏的文本)在文本到文本设置中的表现是相似的。因此,我们建议使用产生短的目标序列的目标,以便无监督的预训练有更多的计算效率。

Data sets 我们引入了“Colossal Clean Crawled Corpus”(C4),其中包含来自 Common Crawl 网络转储的经过启发式清理后的文本。在将 C4 与使用额外的过滤的数据集进行比较时,我们发现在域内未标记数据的训练可以提高几个下游任务的性能。然而,仅限于单个域的训练通常会导致较小的数据集。我们单独显示了,当未标记数据集足够小以至于在预训练期间重复多次时,性能会下降。这激发了使用像 C4 这样的庞大而多样化的数据集来进行通用语言理解任务。

Training strategies 我们发现在微调期间更新所有预训练模型参数的基本方法优于更新少部分参数的方法,尽管更新所有参数非常昂贵。我们还尝试了各种方法一次在多个任务上训练模型,在我们的文本到文本设置中,这简单地对应于在构建批次时混合来自不同数据集的示例。多任务学习的主要问题是设置每个任务训练的比例。我们最终没有发现一种设置混合比例的策略,使其能和无监督预训练微调的基本方法的性能相匹配。然而,我们发现,在混合任务上进行预训练后进行微调会产生与无监督预训练相当的性能。

Scaling 我们比较了各种利用额外计算的策略,包括在更多数据上训练模型、训练更大的模型和使用集成的模型。我们发现每种方法都显着提高了性能,尽管在更多数据上训练一个较小的模型通常优于在更少的步骤中训练更大的模型。我们还展示了一个集成模型可以提供比单个模型更好的结果,这提供了利用额外计算的正交方法。从同一预训练模型的基础上微调各个模型然后再集成 比 分别单独预训练和微调各个模型然后再集成 的性能更差,不过只微调的集成方法还是大大优于单个模型。

Pushing the limits 我们将上述见解结合起来,并训练了更大的模型(最多 11 B 个参数),以在我们考虑的许多基准测试中实现了 STOA 的结果。对于无监督训练,我们从我们的 C4 数据集中提取文本并使用有连续损坏跨度的去噪目标。在对单个任务进行微调之前,我们在多任务混合上进行了预训练。总体而言,我们的模型训练了超过 1T 个令牌。为了方便我们结果的复制、扩展和应用,我们为每个 T5 变体发布了我们的代码、C4 数据集和预训练模型权重。

4.2 Outlook

The inconvenience of large models 我们的研究得出的一个不令人惊讶但重要的结果是,更大的模型往往表现更好。用于运行这些模型的硬件不断变得越来越便宜和强大,这一事实表明扩大规模可能仍然是实现更好性能的一种有前途的方法(Sutton,2019)。然而,也总是存在用更小或更便宜的模型更有用的应用程序和场景,例如在执行客户端推理或联邦学习时(Konečn`y 等人,2015, 2016)。与此相关的是,迁移学习的一个有益用途是在低资源任务上取得良好性能的可能性。低资源任务的环境总是存在的,当缺乏标记更多数据的能力时。此时,低资源应用程序通常对计算资源访问的资本也有限,因为这可能会产生额外的成本。因此,我们主张研究使用更便宜的模型实现更强性能的方法,这样迁移学习可以应用到影响最大的地方。沿着这些路线,有一些已有的工作包括蒸馏(Hinton 等人,2015;Sanh 等人,2019;Jiao 等人,2019)、参数共享(Lan 等人,2019)和条件计算(Shazeer 等人,2017)。

More efficient knowledge extraction 回想一下,预训练的目标之一是(粗略地说)为模型提供通用“知识”,从而提高其在下游任务上的性能。我们在这项工作中使用的方法(也是目前普遍采用的)是训练模型来去除损坏文本片段的噪声。我们怀疑这种简单的技术可能不是教模型通用知识的一种非常有效的方法。更具体地说,如果不需要先在 1T token 文本上训练模型,就能获得良好的微调效果是非常有用的。沿着这个方向的有一些并行工作,它们通过预训练模型来区分真实文本和机器生成的文本来提高效率(Clark 等人,2020)。

Formalizing the similarity between tasks 我们观察到,对未标记的域内数据进行预训练可以提高下游任务的性能(第 3.4 节)。这一发现主要依赖于基本观察结果,例如 SQuAD 是使用 Wikipedia 的数据创建的。规范一个对预训练和下游任务之间的“相似性”更严格的概念很有用,这以便我们可以对要使用的未标记数据来源做出更有原则的选择。计算机视觉领域沿着这些路线有一些早期的实证工作(Huh 等人,2016;Kornblith 等人,2018;He 等人,2018)。任务相关性的更好概念也有助于选择有监督的预训练任务,这已被证明有助于 GLUE 基准(Phang 等人,2018 年)。

Language-agnostic models 我们失望地发现仅英语的预训练在我们研究的翻译任务上并没有取得最先进的结果。我们也想避免需要提前指定词汇表可以编码哪种语言的逻辑困难。为了解决这些问题,我们有兴趣进一步研究与语言无关的模型,即无论文本的语言如何,都可以以良好的性能执行给定的 NLP 任务的模型。这是一个特别切题的问题,因为毕竟英语并不是世界上大多数人的母语。

本文的动机是最近在 NLP 的迁移学习方面的工作。在我们开始这项工作之前,这些进展在基于学习的方法尚未被证明是有效的的时候就已经取得了突破。我们很高兴能够继续这一趋势,例如通过在 SuperGLUE 基准上几乎达到人类水平的性能,这是一个专门为现代迁移学习方法设计的基准任务。我们的结果组合了直接统一的文本到文本框架、我们的新 C4 数据集以及来自我们系统研究的见解。此外,我们提供了该领域的实验性的概述以及展望。我们很高兴看到使用迁移学习来实现通用语言理解的后续工作。

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

闽ICP备14008679号