# 2020 Brown et al.

Language Models are Few-Shot Learners

语言模型是少样本学习者 Tom B. Brown , Benjamin Mann , Nick Ryder , Melanie Subbiah Jared Kaplan†, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry Amanda Askell, Sandhini Agar...

精粹译文

语言模型是少样本学习者

Tom B. Brown*, Benjamin Mann*, Nick Ryder*, Melanie Subbiah* Jared Kaplan†, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry Amanda Askell, Sandhini Agarwal, Ariel Herbert-Voss, Gretchen Krueger, Tom Henighan Rewon Child, Aditya Ramesh, Daniel M. Ziegler, Jeffrey Wu, Clemens Winter Christopher Hesse, Mark Chen, Eric Sigler, Mateusz Litwin, Scott Gray Benjamin Chess, Jack Clark, Christopher Berner Sam McCandlish, Alec Radford, Ilya Sutskever, Dario Amodei

OpenAI

摘要

近期的研究表明,通过在大型文本语料库上进行预训练,随后在特定任务上进行微调,可以在许多自然语言处理(NLP)任务和基准测试中取得显著进展。虽然这种方法在架构上通常是任务无关的,但它仍然需要数千或数万个示例的特定任务微调数据集。相比之下,人类通常只需几个示例或简单的指令就能执行一项新的语言任务——而当前的 NLP 系统在这一点上仍然非常吃力。在这里,我们展示了扩大语言模型规模可以极大地提高任务无关的少样本(few-shot)性能,有时甚至能达到与现有最先进的微调方法相竞争的水平。具体而言,我们训练了 GPT-3,这是一个拥有 1750 亿参数的自回归语言模型,其规模比以往任何非稀疏语言模型大 10 倍,并测试了其在少样本设置下的性能。对于所有任务,GPT-3 的应用无需任何梯度更新或微调,任务和少样本演示完全通过与模型的文本交互来指定。GPT-3 在许多 NLP 数据集上取得了强大的性能,包括翻译、问答和完形填空任务,以及一些需要即时推理或领域适应的任务,例如单词重组、在句子中使用生僻词或进行 3 位数算术运算。同时,我们也发现了一些 GPT-3 的少样本学习仍然表现不佳的数据集,以及一些 GPT-3 在基于大型网络语料库训练时面临方法论问题的数据集。最后,我们发现 GPT-3 可以生成人类评估者难以将其与人类撰写的文章区分开来的新闻文章样本。我们讨论了这一发现以及 GPT-3 的更广泛社会影响。


* 同等贡献 † 约翰霍普金斯大学,OpenAI 作者贡献列于论文末尾。


目录

  1. 引言 3
  2. 方法 6 2.1 模型与架构 8 2.2 训练数据集 8 2.3 训练过程 9 2.4 评估 10
  3. 结果 10 3.1 语言建模、完形填空与补全任务 11 3.2 闭卷问答 13 3.3 翻译 14 3.4 Winograd 风格任务 16 3.5 常识推理 17 3.6 阅读理解 18 3.7 SuperGLUE 18 3.8 NLI 20 3.9 合成与定性任务 21
  4. 基准测试记忆的测量与预防 29
  5. 局限性 33
  6. 更广泛的影响 34 6.1 语言模型的滥用 35 6.2 公平性、偏见与代表性 36 6.3 能源使用 39
  7. 相关工作 39
  8. 结论 40 A. Common Crawl 过滤细节 43 B. 模型训练细节 43 C. 测试集污染研究细节 43 D. 训练语言模型所用的总计算量 46 E. 合成新闻文章的人类质量评估 46 F. GPT-3 的额外样本 48 G. 任务措辞与规范细节 50 H. 所有模型在所有任务上的结果 63

1 引言

近年来,NLP 系统中出现了一种向预训练语言表示发展的趋势,并以越来越灵活和任务无关的方式应用于下游迁移。首先,使用词向量 [MCCD13, PSM14] 学习单层表示并馈送到特定任务架构;然后,使用具有多层表示和上下文状态的 RNN 来形成更强的表示 [DL15, MBXS17, PNZtY18](尽管仍然应用于特定任务架构);最近,预训练的循环或 Transformer 语言模型 [VSP+17] 被直接微调,完全消除了对特定任务架构的需求 [RNSS18, DCLT18, HR18]。

最后这种范式在许多具有挑战性的 NLP 任务(如阅读理解、问答、文本蕴含等)上取得了实质性进展,并基于新的架构和算法不断进步 [RSR+19, LOG+19, YDY+19, LCG+19]。然而,这种方法的一个主要局限是,虽然架构是任务无关的,但仍然需要特定任务的数据集和特定任务的微调:要在期望的任务上获得强大的性能,通常需要在该任务特定的数千到数十万个示例的数据集上进行微调。出于多种原因,消除这一限制是值得的。

首先,从实际角度来看,每个新任务都需要大量标记示例数据集,这限制了语言模型的适用性。存在极其广泛的有用语言任务,涵盖从纠正语法、生成抽象概念的示例,到评论短篇故事的任何内容。对于其中许多任务,很难收集大型监督训练数据集,特别是当每个新任务都必须重复此过程时。

其次,利用训练数据中虚假相关性的潜力,从根本上随着模型表达能力的增强和训练分布的狭窄而增长。这会给“预训练+微调”范式带来问题,因为模型被设计得很大以在预训练期间吸收信息,但随后在非常狭窄的任务分布上进行微调。例如,[HLW+20] 观察到,更大的模型并不一定在分布外(out-of-distribution)泛化得更好。有证据表明,在这种范式下实现的泛化可能很差,因为模型对训练分布过于特定,而不能很好地在分布外泛化 [YdC+19, MPL19]。因此,微调模型在特定基准测试上的表现,即使名义上达到人类水平,也可能夸大了在基础任务上的实际表现 [GSL+18, NK19]。

第三,人类不需要大型监督数据集来学习大多数语言任务——一段简短的自然语言指令(例如“请告诉我这句话描述的是快乐还是悲伤”)或最多极少量的演示(例如“这里有两个表现勇敢的例子;请给出一个勇敢的第三个例子”)通常就足以使人类以至少合理的程度胜任一项新任务。除了指出我们当前 NLP 技术中的概念性局限外,这种适应性还具有实际优势——它允许人类无缝地混合或切换多种任务和技能,例如在冗长的对话中进行加法运算。为了具有广泛的用途,我们希望我们的 NLP 系统有一天也能拥有同样的流动性和通用性。

语言模型元学习。在无监督预训练期间,语言模型发展出一套广泛的技能和模式识别能力。然后,它在推理时利用这些能力快速适应或识别期望的任务。我们使用术语“上下文学习”(in-context learning)来描述此过程的内部循环,该循环发生在每个序列的前向传递中。此图中的序列并非旨在代表模型在预训练期间会看到的数据,而是旨在展示有时在单个序列中嵌入了重复的子任务。

解决这些问题的一个潜在途径是元学习(meta-learning)¹——在语言模型的背景下,这意味着模型在训练时发展出一套广泛的技能和模式识别能力,然后在推理时利用这些能力快速适应或识别期望的任务(如图 1.1 所示)。最近的工作 [RWC+19] 尝试通过我们所称的“上下文学习”来实现这一点,即使用预训练语言模型的文本输入作为一种任务规范:模型以自然语言指令和/或任务的少量演示为条件,然后期望通过预测接下来会出现的内容来完成任务的进一步实例。

虽然它显示出了一些初步的前景,但这种方法取得的结果仍然远逊于微调——例如,[RWC+19] 在 Natural Questions 上仅达到 4%,甚至其 55 F1 的 CoQa 结果现在也落后于最先进水平超过 35 个点。元学习显然需要实质性的改进,才能成为解决语言任务的可行实用方法。

语言建模的另一个近期趋势可能提供了一条前进的道路。近年来,Transformer 语言模型的容量大幅增加,从 1 亿参数 [RNSS18],到 3 亿参数 [DCLT18],到 15 亿参数 [RWC+19],到 80 亿参数 [SPP+19],110 亿参数 [RSR+19],最后到 170 亿参数 [Tur20]。每一次增加都带来了文本合成和/或下游 NLP 任务的改进,并且有证据表明,与许多下游任务相关良好的对数损失(log loss),随着规模的扩大遵循平滑的改进趋势 [KMH+20]。由于上下文学习涉及在模型参数内吸收许多技能和任务,因此上下文学习能力随着规模的扩大而显示出同样强大的收益是合理的。


¹ 在语言模型的背景下,这有时被称为“零样本迁移”(zero-shot transfer),但这个术语可能存在歧义:该方法在不执行梯度更新的意义上是“零样本”的,但它通常涉及向模型提供推理时的演示,因此并非真正从零个示例中学习。为了避免这种混淆,我们使用术语“元学习”来捕捉该通用方法的内部循环/外部循环结构,并使用术语“上下文学习”来指代元学习的内部循环。我们进一步将描述细化为“零样本”、“单样本”或“少样本”,具体取决于在推理时提供了多少演示。这些术语旨在对模型是在推理时从头开始学习新任务,还是仅仅识别训练期间看到的模式这一问题保持中立——这是一个重要的问题,我们将在论文后面讨论,但“元学习”旨在涵盖这两种可能性,并简单地描述了内部-外部循环结构。


更大的模型越来越有效地利用上下文信息。我们展示了在一个简单任务上的上下文学习性能,该任务要求模型从单词中删除随机符号,无论是否有自然语言任务描述(见 3.9.2 节)。大型模型更陡峭的“上下文学习曲线”证明了从上下文信息中学习任务的能力得到了提高。我们在广泛的任务中看到了定性相似的行为。

所有 42 个以准确度衡量的基准测试的汇总性能。虽然零样本性能随着模型规模的增加而稳步提高,但少样本性能增加得更快,这表明更大的模型在上下文学习方面更精通。有关 SuperGLUE(一种标准 NLP 基准套件)的更详细分析,请参阅图 3.8。

在本文中,我们通过训练一个 1750 亿参数的自回归语言模型(我们称之为 GPT-3)并测量其上下文学习能力来测试这一假设。具体而言,我们在超过两打 NLP 数据集上评估 GPT-3,以及几个旨在测试对训练集中不太可能直接包含的任务进行快速适应的新颖任务。对于每个任务,我们在 3 种条件下评估 GPT-3:(a) “少样本学习”,即上下文学习,我们允许尽可能多的演示放入模型的上下文窗口中(通常为 10 到 100);(b) “单样本学习”,我们只允许一个演示;以及 (c) “零样本”学习,不允许演示,只给模型提供自然语言指令。GPT-3 原则上也可以在传统的微调设置中进行评估,但我们将此留给未来的工作。

图 1.2 说明了我们研究的条件,并展示了对一个简单任务的少样本学习,该任务要求模型从单词中删除无关符号。模型性能随着自然语言任务描述的添加以及模型上下文中示例数量 KK 的增加而提高。少样本学习也随着模型规模的增加而显著提高。虽然这种情况下的结果特别引人注目,但模型规模和上下文中示例数量的总体趋势适用于我们研究的大多数任务。我们强调,这些“学习”曲线不涉及梯度更新或微调,只是增加了作为条件提供的演示数量。

总的来说,在 NLP 任务上,GPT-3 在零样本和单样本设置中取得了有希望的结果,并且在少样本设置中,有时与最先进的微调模型竞争,甚至偶尔超过它们(尽管最先进水平是由微调模型保持的)。例如,GPT-3 在零样本设置下在 CoQA 上达到 81.5 F1,在单样本设置下在 CoQA 上达到 84.0 F1,在少样本设置下达到 85.0 F1。同样,GPT-3 在零样本设置下在 TriviaQA 上达到 64.3% 的准确率,在单样本设置下达到 68.0%,在少样本设置下达到 71.2%,后者相对于在相同闭卷设置下运行的微调模型而言是目前最先进的。

GPT-3 还展示了在旨在测试快速适应或即时推理的任务中的单样本和少样本熟练度,这些任务包括单词重组、算术运算以及在仅定义一次后在句子中使用生僻词。我们还展示了在少样本设置下,GPT-3 可以生成人类评估者难以将其与人类生成的文章区分开来的合成新闻文章。

同时,我们也发现了一些即使在 GPT-3 的规模下,少样本性能仍然吃力的任务。这包括自然语言推理任务(如 ANLI 数据集)以及一些阅读理解数据集(如 RACE 或 QuAC)。通过对 GPT-3 的优势和劣势进行广泛的表征,包括这些局限性,我们希望激发对语言模型中少样本学习的研究,并引起对最需要进步的地方的关注。

总体结果的启发式感觉可以在图 1.3 中看到,它汇总了各种任务(尽管它本身不应被视为一个严格或有意义的基准)。

我们还对“数据污染”进行了系统研究——这是在 Common Crawl 等数据集上训练高容量模型时日益严重的问题,因为此类内容通常存在于网络上,因此可能包含来自测试数据集的内容。在本文中,我们开发了系统工具来测量数据污染并量化其扭曲效应。虽然我们发现数据污染对 GPT-3 在大多数数据集上的性能影响极小,但我们确实确定了少数可能夸大结果的数据集,我们要么不报告这些数据集的结果,要么根据严重程度用星号标注它们。

除了上述所有内容外,我们还训练了一系列较小的模型(从 1.25 亿参数到 130 亿参数),以便在零样本、单样本和少样本设置中将它们的性能与 GPT-3 进行比较。总的来说,对于大多数任务,我们发现模型容量在所有三种设置中都有相对平滑的扩展;一个显著的模式是,零样本、单样本和少样本性能之间的差距通常随着模型容量的增加而扩大,这或许表明更大的模型是更精通的元学习者。

最后,鉴于 GPT-3 展示的广泛能力,我们讨论了关于偏见、公平性和更广泛社会影响的担忧,并对此进行了初步分析。

本文的其余部分组织如下。在第 2 节中,我们描述了训练 GPT-3 并对其进行评估的方法。第 3 节介绍了在零样本、单样本和少样本设置下全范围任务的结果。第 4 节解决了数据污染(训练-测试重叠)的问题。第 5 节讨论了 GPT-3 的局限性。第 6 节讨论了更广泛的影响。第 7 节回顾了相关工作,第 8 节得出结论。

2 方法

我们的基本预训练方法,包括模型、数据和训练,类似于 [RWC+19] 中描述的过程,模型规模、数据集规模和多样性以及训练长度都进行了相对直接的扩大。我们对上下文学习的使用也类似于 [RWC+19],但在本工作中,我们系统地探索了上下文内学习的不同设置。因此,我们从明确定义和对比我们将评估 GPT-3 的不同设置开始本节。这些设置可以被视为处于依赖特定任务数据程度的谱系上。具体而言,我们可以在此谱系上确定至少四个点(参见图 2.1 的说明):

  • 微调 (Fine-Tuning, FT) 是近年来最常见的方法,涉及通过在特定于期望任务的监督数据集上进行训练来更新预训练模型的权重。通常使用数千到数十万个标记示例。微调的主要优点是在许多基准测试上表现强劲。主要缺点是每个任务都需要一个新的大型数据集,存在分布外泛化能力差的潜力 [MPL19],以及利用训练数据虚假特征的潜力 [GSL+18, NK19],这可能导致与人类表现的不公平比较。在本文中,我们不对 GPT-3 进行微调,因为我们的重点是任务无关的性能,但 GPT-3 原则上可以进行微调,这是未来工作的一个有希望的方向。
  • 少样本 (Few-Shot, FS) 是我们在本文中使用的术语,指模型在推理时被赋予任务的少量演示作为条件 [RWC+19],但不允许权重更新的设置。如图 2.1 所示,对于典型数据集,示例具有上下文和期望的补全(例如英语句子和法语翻译),少样本的工作方式是给出 KK 个上下文和补全的示例,然后给出最后一个上下文示例,期望模型提供补全。我们通常将 KK 设置在 10 到 100 的范围内,因为这是可以放入模型上下文窗口(nctx=2048n_{ctx} = 2048)的示例数量。少样本的主要优点是大大减少了对特定任务数据的需求,并减少了从大型但狭窄的微调数据集学习过于狭窄分布的潜力。主要缺点是该方法的结果迄今为止比最先进的微调模型差得多。此外,仍然需要少量的特定任务数据。正如名称所示,这里描述的语言模型少样本学习与机器学习中其他上下文中使用的少样本学习相关 [HYC01, VBL+16]——两者都涉及基于广泛的任务分布(在本例中隐含在预训练数据中)进行学习,然后快速适应新任务。
  • 单样本 (One-Shot, 1S) 与少样本相同,只是除了任务的自然语言描述外,只允许一个演示,如图 1 所示。将单样本与少样本和零样本(见下文)区分开来的原因是,它最接近向人类传达某些任务的方式。例如,当要求人类在人工服务(例如 Mechanical Turk)上生成数据集时,通常会给出一个任务演示。相比之下,如果不给出示例,有时很难传达任务的内容或格式。

图 2.1:零样本、单样本和少样本,与传统微调的对比。上方的面板展示了使用语言模型执行任务的四种方法——微调是传统方法,而我们在本工作中研究的零样本、单样本和少样本要求模型仅在测试时通过前向传递来执行任务。我们通常在少样本设置中向模型展示几十个示例。所有任务描述、示例和提示的精确措辞可以在附录 G 中找到。

  • 零样本 (Zero-Shot, 0S) 与单样本相同,只是不允许演示,并且模型仅被赋予描述任务的自然语言指令。这种方法提供了最大的便利性、鲁棒性的潜力,并避免了虚假相关性(除非它们在大型预训练数据语料库中非常广泛地出现),但也是最具挑战性的设置。在某些情况下,人类甚至可能在没有先验示例的情况下难以理解任务的格式,因此这种设置在某些情况下是“不公平地困难”。例如,如果有人被要求“制作一份 200 米短跑的世界纪录表格”,这个请求可能是模棱两可的,因为不清楚表格应该具有什么格式或应该包含什么(即使经过仔细澄清,准确理解所需内容也可能很困难)。尽管如此,至少在某些设置中,零样本最接近人类执行任务的方式——例如,在图 2.1 的翻译示例中,人类很可能仅从文本指令中就知道该做什么。

图 2.1 使用翻译英语到法语的示例展示了这四种方法。在本文中,我们专注于零样本、单样本和少样本,旨在将它们作为不同的问题设置进行比较,而不是作为竞争的替代方案,这些设置在特定基准测试上的性能和样本效率之间提供了不同的权衡。我们特别强调少样本结果,因为其中许多结果仅略微落后于最先进的微调模型。然而,最终,单样本,甚至有时零样本,似乎是与人类表现最公平的比较,也是未来工作的重要目标。

下面的 2.1-2.3 节分别给出了关于我们的模型、训练数据和训练过程的详细信息。第 2.4 节讨论了我们如何进行少样本、单样本和零样本评估的细节。


模型名称nparamsn_{params}nlayersn_{layers}dmodeld_{model}nheadsn_{heads}dheadd_{head}批次大小学习率
GPT-3 Small125M1276812640.5M6.0×1046.0 \times 10^{-4}
GPT-3 Medium350M24102416640.5M3.0×1043.0 \times 10^{-4}
GPT-3 Large760M24153616960.5M2.5×1042.5 \times 10^{-4}
GPT-3 XL1.3B242048241281M2.0×1042.0 \times 10^{-4}
GPT-3 2.7B2.7B32256032801M1.6×1041.6 \times 10^{-4}
GPT-3 6.7B6.7B324096321282M1.2×1041.2 \times 10^{-4}
GPT-3 13B13.0B405140401282M1.0×1041.0 \times 10^{-4}
GPT-3 175B 或 “GPT-3”175.0B9612288961283.2M0.6×1040.6 \times 10^{-4}

表 2.1:我们训练的模型的规模、架构和学习超参数(以 token 为单位的批次大小和学习率)。所有模型总共训练了 3000 亿个 token。

2.1 模型与架构

我们使用与 GPT-2 [RWC+19] 相同的模型和架构,包括其中描述的修改后的初始化、预归一化和可逆分词,不同之处在于我们在 Transformer 的层中使用了交替的密集和局部带状稀疏注意力模式,类似于稀疏 Transformer [CGRS19]。为了研究机器学习性能对模型规模的依赖性,我们训练了 8 种不同规模的模型,跨越了三个数量级,从 1.25 亿参数到 1750 亿参数,后者是我们称之为 GPT-3 的模型。先前的工作 [KMH+20] 表明,在有足够训练数据的情况下,验证损失的缩放应该是作为规模函数的平滑幂律;训练许多不同规模的模型使我们能够测试验证损失和下游语言任务的这一假设。

表 2.1 显示了我们 8 个模型的规模和架构。这里 nparamsn_{params} 是可训练参数的总数,nlayersn_{layers} 是层数,dmodeld_{model} 是每个瓶颈层中的单元数(我们始终使前馈层的大小为瓶颈层的四倍,dff=4dmodeld_{ff} = 4 * d_{model}),dheadd_{head} 是每个注意力头的维度。所有模型都使用 nctx=2048n_{ctx} = 2048 个 token 的上下文窗口。我们在深度和宽度维度上跨 GPU 分区模型,以最小化节点之间的数据传输。每个模型的精确架构参数是根据计算效率和模型在 GPU 上的布局负载平衡来选择的。先前的工作 [KMH+20] 表明,验证损失在相当广泛的范围内对这些参数不敏感。

2.2 训练数据集

语言模型的数据集迅速扩大,最终形成了 Common Crawl 数据集² [RSR+19],包含近一万亿个单词。此规模的数据集足以训练我们最大的模型,而无需对同一个序列进行两次更新。然而,我们发现未过滤或轻度过滤的 Common Crawl 版本往往比更精选的数据集质量更低。因此,我们采取了 3 个步骤来提高我们数据集的平均质量:(1) 我们根据与一系列高质量参考语料库的相似性下载并过滤了 CommonCrawl 的一个版本,(2) 我们在文档级别对数据集内部和跨数据集执行了模糊去重,以防止冗余并保持我们留出的验证集的完整性作为过拟合的准确度量,以及 (3) 我们还将已知的高质量参考语料库添加到训练组合中,以增强 CommonCrawl 并增加其多样性。

前两点(Common Crawl 的处理)的细节在附录 A 中描述。对于第三点,我们添加了几个精选的高质量数据集,包括 WebText 数据集 [RWC+19] 的扩展版本(通过在更长的时间内抓取链接收集,并首次在 [KMH+20] 中描述)、两个基于互联网的书籍语料库(Books1 和 Books2)以及英语维基百科。

表 2.2 显示了我们训练中使用的最终数据集混合。CommonCrawl 数据是从 2016 年到 2019 年的 41 个月度 CommonCrawl 分片中下载的,在过滤前构成了 45TB 的压缩纯文本,过滤后为 570GB,大致相当于 4000 亿个字节对编码(byte-pair-encoded)的 token。请注意,在训练期间,数据集不是按其大小的比例进行采样的,而是我们认为更高质量的数据集被更频繁地采样,使得 CommonCrawl 和 Books2 数据集在训练期间被采样的次数少于一次,但其他数据集被采样了 2-3 次。这本质上是以少量的过拟合为代价换取更高质量的训练数据。


² https://commoncrawl.org/the-data/


图 2.2:训练期间使用的总计算量。基于《神经语言模型缩放定律》[KMH+20] 中的分析,我们训练的模型比通常情况下的 token 少得多。因此,尽管 GPT-3 3B 比 RoBERTa-Large(3.55 亿参数)大近 10 倍,但两个模型在预训练期间都消耗了大约 50 petaflop/s-days 的计算量。这些计算的方法可以在附录 D 中找到。

数据集数量 (tokens)训练组合中的权重训练 300B tokens 时经过的 epoch
Common Crawl (过滤后)4000 亿60%0.44
WebText2190 亿22%2.9
Books1120 亿8%1.9
Books2550 亿8%0.43
维基百科30 亿3%3.4

表 2.2:用于训练 GPT-3 的数据集。“训练组合中的权重”是指训练期间从给定数据集抽取的示例比例,我们故意不使其与数据集的大小成比例。因此,当我们训练 3000 亿个 token 时,一些数据集在训练期间被看到了多达 3.4 次,而其他数据集被看到的次数少于一次。

一个主要的关于在广泛的互联网数据上预训练的语言模型的方法论担忧,特别是具有记忆大量内容能力的巨大模型,是下游任务可能因为其测试集或开发集在预训练期间被无意中看到而受到污染。为了减少这种污染,我们搜索并尝试删除了本文研究的所有基准测试的开发集和测试集的任何重叠。不幸的是,过滤中的一个错误导致我们忽略了一些重叠,并且由于训练成本的原因,重新训练模型是不可行的。在第 4 节中,我们表征了剩余重叠的影响,在未来的工作中,我们将更积极地消除数据污染。

2.3 训练过程

正如 [KMH+20, MKAT18] 中发现的那样,更大的模型通常可以使用更大的批次大小,但需要更小的学习率。我们测量了训练期间的梯度噪声规模,并使用它来指导我们对批次大小的选择 [MKAT18]。表 2.1 显示了我们使用的参数设置。为了在不耗尽内存的情况下训练更大的模型,我们在每个矩阵乘法内部和网络层之间使用了模型并行混合。所有模型都在 Microsoft 提供的部分高带宽集群上的 V100 GPU 上进行了训练。训练过程和超参数设置的细节在附录 B 中描述。

2.4 评估

对于少样本学习,我们通过从该任务的训练集中随机抽取 KK 个示例作为条件来评估评估集中的每个示例,根据任务的不同,由 1 或 2 个换行符分隔。对于 LAMBADA 和 Storycloze,没有可用的监督训练集,因此我们从开发集中抽取条件示例并在测试集上进行评估。对于 Winograd(原始版本,而非 SuperGLUE 版本),只有一个数据集,因此我们直接从中抽取条件示例。

KK 可以是 0 到模型上下文窗口允许的最大值之间的任何值,对于所有模型,nctx=2048n_{ctx} = 2048,通常适合 10 到 100 个示例。KK 的较大值通常但并不总是更好,因此当有单独的开发集和测试集可用时,我们在开发集上尝试 KK 的几个值,然后在测试集上运行最佳值。对于某些任务(参见附录 G),除了演示之外,我们还使用自然语言提示(或者对于 K=0K=0,代替演示)。

在涉及从多个选项中选择一个正确补全的任务(多项选择)上,我们提供 KK 个上下文加正确补全的示例,后跟一个仅包含上下文的示例,并比较每个补全的 LM 似然度。对于大多数任务,我们比较每个 token 的似然度(以归一化长度),但在少数数据集(ARC、OpenBookQA 和 RACE)上,我们通过在开发集上测量,通过计算 P(completioncontext)/P(completionanswer_context)P(\text{completion}|\text{context}) / P(\text{completion}|\text{answer\_context}) 来归一化每个补全的无条件概率,从而获得额外的好处,其中 answer_context\text{answer\_context} 是字符串 "Answer: " 或 "A: ",用于提示补全应该是一个答案,但除此之外是通用的。

在涉及二元分类的任务上,我们给选项赋予更具语义意义的名称(例如“True”或“False”而不是 0 或 1),然后将任务视为多项选择;我们有时也会将任务框架化为类似于 [RSR+19] 所做的那样(详细信息参见附录 G)。

在具有自由形式补全的任务上,我们使用与 [RSR+19] 相同的参数进行束搜索(beam search):束宽为 4,长度惩罚 α=0.6\alpha = 0.6。我们根据手头数据集的标准,使用 F1 相似度分数、BLEU 或精确匹配来对模型进行评分。

最终结果在公开可用时在测试集上报告,针对每个模型规模和学习设置(零样本、单样本和少样本)。当测试集是私有的时,我们的模型通常太大而无法放入测试服务器,因此我们报告开发集上的结果。我们确实在少数数据集(SuperGLUE、TriviaQA、PiQa)上提交到测试服务器,我们能够使提交工作,并且我们仅提交 200B 的少样本结果,并报告其他所有内容的开发集结果。

3 结果

在图 3.1 中,我们展示了第 2 节中描述的 8 个模型的训练曲线。对于此图,我们还包括了 6 个额外的超小型模型,参数少至 100,000 个。正如 [KMH+20] 中观察到的那样,当有效利用训练计算时,语言建模性能遵循幂律。在将此趋势再延长两个数量级后,我们观察到与幂律的偏离仅有轻微(如果有的话)。人们可能会担心这些交叉熵损失的改进仅来自对我们训练语料库虚假细节的建模。然而,我们将在接下来的章节中看到,交叉熵损失的改进导致了跨广泛自然语言任务的一致性能提升。

下面,我们在广泛的数据集上评估第 2 节中描述的 8 个模型(1750 亿参数的 GPT-3 和 7 个较小的模型)。我们将数据集分为 9 个类别,代表大致相似的任务。在 3.1 节中,我们评估了传统的语言建模任务和类似于语言建模的任务,例如完形填空任务和句子/段落补全任务。在 3.2 节中,我们评估了“闭卷”问答任务:需要使用存储在模型参数中的信息来回答一般知识问题的任务。在 3.3 节中,我们评估了模型在语言之间进行翻译的能力(特别是单样本和少样本)。在 3.4 节中,我们评估了模型在 Winograd Schema 类任务上的性能。在 3.5 节中,我们评估了涉及常识推理或问答的数据集。在 3.6 节中,我们评估了阅读理解任务,在 3.7 节中,我们评估了 SuperGLUE 基准套件,在 3.8 节中,我们简要探讨了 NLI。最后,在 3.9 节中,我们发明了一些专门设计用于探测上下文学习能力的额外任务——这些任务侧重于即时推理、适应技能或开放式文本合成。我们在少样本、单样本和零样本设置下评估所有任务。

图 3.1:性能随计算量的平滑缩放。性能(以交叉熵验证损失衡量)随着用于训练的计算量遵循幂律趋势。在 [KMH+20] 中观察到的幂律行为持续了另外两个数量级,与预测曲线的偏差很小。对于此图,我们从计算量和参数计数中排除了嵌入参数。

设置PTB
SOTA (零样本)35.8a^a
GPT-3 零样本20.5

表 3.1:PTB 语言建模数据集上的零样本结果。许多其他常见的语言建模数据集被省略,因为它们源自维基百科或其他包含在 GPT-3 训练数据中的来源。 a^a [RWC+19]

3.1 语言建模、完形填空与补全任务

在本节中,我们测试 GPT-3 在传统语言建模任务上的性能,以及涉及预测单个感兴趣单词、补全句子或段落,或在一段文本的可能补全之间进行选择的相关任务。

3.1.1 语言建模

我们计算了 [RWC+19] 中测量的 Penn Tree Bank (PTB) [MKM+94] 数据集上的零样本困惑度(perplexity)。我们省略了该工作中的 4 个与维基百科相关的任务,因为它们完全包含在我们的训练数据中,并且由于数据集的很大一部分包含在我们的训练集中,我们也省略了十亿词基准测试(one-billion word benchmark)。PTB 由于早于现代互联网而避开了这些问题。我们最大的模型以 15 个点的巨大优势在 PTB 上设定了新的 SOTA,达到了 20.50 的困惑度。请注意,由于 PTB 是一个传统的语言建模数据集,它没有明确的示例分离来定义单样本或少样本评估,因此我们仅测量零样本。

3.1.2 LAMBADA

LAMBADA 数据集 [PKL+16] 测试了文本中长距离依赖关系的建模——模型被要求预测需要阅读上下文段落的句子的最后一个单词。最近有人提出,语言模型的持续缩放正在这个困难的基准测试上产生收益递减。 [BHT+20] 反思了在两个最近的最先进结果([SPP+19] 和 [Tur20])之间,模型规模翻倍仅实现了 1.5% 的微小改进,并认为“继续按数量级扩展硬件和数据规模并不是前进的道路”。我们发现这条路径仍然很有希望,在零样本设置下,GPT-3 在 LAMBADA 上达到了 76%,比之前的最先进水平提高了 8%。

LAMBADA 也是少样本学习灵活性的一种证明,因为它提供了一种解决该数据集经典问题的方法。虽然 LAMBADA 中的补全总是句子中的最后一个单词,但标准语言模型无法知道这个细节。因此,它不仅为正确的结尾分配概率,还为段落的其他有效延续分配概率。这个问题在过去已经通过停用词过滤器 [RWC+19](禁止“延续”词)部分解决。少样本设置反而允许我们将任务“框架化”为完形填空测试,并允许语言模型从示例中推断出需要精确补全一个单词。我们使用以下填空格式:

Alice was friends with Bob. Alice went to visit her friend ____. \rightarrow Bob George bought some baseball equipment, a ball, a glove, and a ____. \rightarrow

当以这种方式格式化的示例呈现时,GPT-3 在少样本设置中达到了 86.4% 的准确率,比之前的最先进水平提高了 18% 以上。我们观察到少样本性能随着模型规模的增加而显著提高。虽然这种设置使最小模型的性能下降了近 20%,但对于 GPT-3,它将准确率提高了 10%。最后,填空方法在单样本中并不有效,其表现总是比零样本设置差。这可能是因为所有模型仍然需要几个示例来识别模式。

设置LAMBADA (acc)LAMBADA (ppl)StoryCloze (acc)HellaSwag (acc)
SOTA68.0a^a8.63b^b91.8c^c85.6d^d
GPT-3 零样本76.23.0083.278.9
GPT-3 单样本72.53.3584.778.1
GPT-3 少样本86.41.9287.779.3

表 3.2:完形填空和补全任务的性能。GPT-3 显著提高了 LAMBADA 上的 SOTA,同时在两个困难的补全预测数据集上实现了可观的性能。 a^a [Tur20] b^b [RWC+19] c^c [LDL19] d^d [LCH+20]

图 3.2:在 LAMBADA 上,语言模型的少样本能力导致准确率大幅提升。GPT-3 2.7B 在此设置下优于 SOTA 17B 参数的 Turing-NLG [Tur20],而 GPT-3 175B 将最先进水平提高了 18%。请注意,零样本使用的格式与文中描述的单样本和少样本不同。


设置NaturalQSWebQSTriviaQA
RAG (微调, 开放域) [LPP+20]44.545.568.0
T5-11B+SSM (微调, 闭卷) [RRS20]36.644.760.5
T5-11B (微调, 闭卷)34.537.450.1
GPT-3 零样本14.614.464.3
GPT-3 单样本23.025.368.0
GPT-3 少样本29.941.571.2

表 3.3:三个开放域 QA 任务的结果。GPT-3 在少样本、单样本和零样本设置下显示,并与闭卷和开放域设置的先前 SOTA 结果进行了比较。TriviaQA 少样本结果是在 wiki 分割测试服务器上评估的。

需要注意的一点是,对测试集污染的分析表明,LAMBADA 数据集的很大一部分似乎存在于我们的训练数据中——然而,第 4 节中进行的分析表明对性能的影响可以忽略不计。

3.1.3 HellaSwag

HellaSwag 数据集 [ZHB+19] 涉及为故事或一组指令选择最佳结尾。这些示例经过对抗性挖掘,对语言模型来说很困难,但对人类来说仍然很容易(人类达到了 95.6% 的准确率)。GPT-3 在单样本设置下达到了 78.1% 的准确率,在少样本设置下达到了 79.3% 的准确率,优于微调的 15 亿参数语言模型 [ZHR+19] 的 75.4% 准确率,但仍比微调的多任务模型 ALUM 实现的 85.6% 的总体 SOTA 低不少。

3.1.4 StoryCloze

接下来,我们在 StoryCloze 2016 数据集 [MCH+16] 上评估 GPT-3,该数据集涉及为五句长的故事选择正确的结尾句。在这里,GPT-3 在零样本设置下达到了 83.2%,在少样本设置下达到了 87.7%(K=70K=70)。这仍然比使用基于 BERT 的模型的微调 SOTA [LDL19] 低 4.1%,但比之前的零样本结果提高了约 10%。

3.2 闭卷问答

在本节中,我们测量 GPT-3 回答有关广泛事实知识的问题的能力。由于可能查询的数量巨大,此任务通常通过使用信息检索系统来查找相关文本,并结合学习在给定问题和检索文本的情况下生成答案的模型来解决。由于此设置允许系统搜索并以可能包含答案的文本为条件,因此它被称为“开卷”(open-book)。[RRS20] 最近证明,大型语言模型可以在不以辅助信息为条件的情况下,直接回答问题,表现出令人惊讶的好效果。他们将这种更严格的评估设置称为“闭卷”(closed-book)。他们的工作表明,更高容量的模型可以表现得更好,我们用 GPT-3 测试了这一假设。我们使用相同的分割,在 [RRS20] 中的 3 个数据集上评估 GPT-3:Natural Questions [KPR+19]、WebQuestions [BCFL13] 和 TriviaQA [JCWZ17]。请注意,除了所有结果都在闭卷设置中之外,我们对少样本、单样本和零样本评估的使用代表了比以前的闭卷 QA 工作更严格的设置:除了不允许外部内容外,也不允许在 QA 数据集本身上进行微调。

GPT-3 的结果如表 3.3 所示。在 TriviaQA 上,我们在零样本设置下达到了 64.3%,在单样本设置下达到了 68.0%,在少样本设置下达到了 71.2%。零样本结果已经比微调的 T5-11B 高出 14.2%,并且也比预训练期间具有 QA 定制跨度预测的版本高出 3.8%。单样本结果提高了 3.7%,并匹配了开放域 QA 系统的 SOTA,该系统不仅进行了微调,还利用了超过 2100 万文档的 153 亿参数密集向量索引的已学习检索机制 [LPP+20]。GPT-3 的少样本结果进一步将性能提高了 3.2%。

在 WebQuestions (WebQs) 上,GPT-3 在零样本设置下达到 14.4%,在单样本设置下达到 25.3%,在少样本设置下达到 41.5%。这与微调的 T5-11B 的 37.4% 和微调的 T5-11B+SSM 的 44.7% 进行了比较,后者使用了特定于 QA 的预训练程序。GPT-3 在少样本设置下接近了最先进微调模型的性能。值得注意的是,与 TriviaQA 相比,WebQS 从零样本到少样本的增益要大得多(事实上其零样本和单样本性能很差),这或许表明 WebQs 的问题

图 3.3:在 TriviaQA 上,GPT-3 的性能随着模型规模的增加而平滑增长,这表明语言模型随着容量的增加继续吸收知识。单样本和少样本性能比零样本行为有显著提升,匹配并超过了 SOTA 微调开放域模型 RAG [LPP+20] 的性能。

和/或其答案的风格对于 GPT-3 来说是分布外的。尽管如此,GPT-3 似乎能够适应这种分布,在少样本设置中恢复了强大的性能。

在 Natural Questions (NQs) 上,GPT-3 在零样本设置下达到 14.6%,在单样本设置下达到 23.0%,在少样本设置下达到 29.9%,而微调的 T5 11B+SSM 为 36.6%。与 WebQS 类似,从零样本到少样本的大幅增益可能表明存在分布偏移,这也可能解释了与 TriviaQA 和 WebQS 相比竞争力较弱的性能。特别是,NQs 中的问题倾向于维基百科上非常细粒度的知识,这可能正在测试 GPT-3 容量和广泛预训练分布的极限。

总的来说,在三个数据集中的一个上,GPT-3 的单样本匹配了开放域微调 SOTA。在另外两个数据集上,尽管没有使用微调,它也接近了闭卷 SOTA 的性能。在所有 3 个数据集上,我们发现性能随着模型规模的增加非常平滑地扩展(图 3.3 和附录 H 图 H.7),这可能反映了模型容量直接转化为模型参数中吸收的更多“知识”的观点。

3.3 翻译

对于 GPT-2,由于容量问题,在多语言文档集合上使用了过滤器来生成仅包含英语的数据集。即使有了这种过滤,GPT-2 也显示出了一些多语言能力的证据,并且尽管仅在 10 兆字节的剩余法语文本上进行了训练,但在法语和英语之间进行翻译时表现非凡。由于我们将容量从 GPT-2 增加到 GPT-3 超过了两个数量级,我们也扩大了训练数据集的范围,以包括其他语言的更多表示,尽管这仍然是一个需要进一步改进的领域。正如 2.2 节所讨论的,我们的大部分数据来自原始 Common Crawl,仅进行了基于质量的过滤。虽然 GPT-3 的训练数据仍然主要是英语(按字数计算为 93%),但它也包括 7% 的其他语言文本。这些语言记录在补充材料中。为了更好地理解翻译能力,我们还扩大了我们的分析,包括了两种额外常用的研究语言:德语和罗马尼亚语。

现有的无监督机器翻译方法通常将单语数据集对上的预训练与回译 [SHB15] 相结合,以受控方式桥接两种语言。相比之下,GPT-3 从混合了许多语言的训练数据中学习,以自然的方式在单词、句子和文档级别将它们结合起来。GPT-3 还使用了一个单一的训练目标,该目标不是为任何特定任务定制或设计的。然而,我们的单样本/少样本设置与先前的无监督工作并不严格可比,因为它们利用了少量的配对示例(1 或 64)。这对应于多达一两页的上下文训练数据。

结果如表 3.4 所示。仅接收任务自然语言描述的零样本 GPT-3,其表现仍然低于最近的无监督 NMT 结果。然而,仅提供单个示例演示对于

设置En→FrFr→EnEn→DeDe→EnEn→RoRo→En
SOTA (监督)45.6a^a35.0b^b41.2c^c40.2d^d38.5e^e39.9e^e
XLM [LC19]33.433.326.434.333.331.8
MASS [STQ+19]37.534.928.335.235.233.1
mBART [LGG+20]--29.834.035.030.5
GPT-3 零样本25.221.224.627.214.119.9
GPT-3 单样本28.333.726.230.420.638.6
GPT-3 少样本32.639.229.740.621.039.5

表 3.4:少样本 GPT-3 在翻译成英语时比之前的无监督 NMT 工作高出 5 BLEU,反映了其作为英语 LM 的优势。我们报告了 WMT’14 Fr↔En、WMT’16 De↔En 和 WMT’16 Ro↔En 数据集上的 BLEU 分数,由 multi-bleu.perl 使用 XLM 的分词进行测量,以便与之前的无监督 NMT 工作进行最密切的比较。附录 H 中报告了 SacreBLEUf^f [Pos18] 结果。下划线表示无监督或少样本 SOTA,粗体表示具有相对置信度的监督 SOTA。 a^a [EOAG18] b^b [DHKH14] c^c [WXH+18] d^d [oR16] e^e [LGG+20] f^f [SacreBLEU 签名: BLEU+case.mixed+numrefs.1+smooth.exp+tok.intl+version.1.2.20]

图 3.4:随着模型容量的增加,6 个语言对的少样本翻译性能。随着模型规模的扩大,所有数据集都呈现出一致的改进趋势,并且翻译成英语的倾向比从英语翻译更强。

每个翻译任务将性能提高了 7 BLEU 以上,并接近了先前工作的竞争性能。GPT-3 在完全少样本设置下进一步提高了 4 BLEU,导致与先前无监督 NMT 工作相似的平均性能。GPT-3 的性能根据语言方向有明显的偏斜。对于所研究的三种输入语言,GPT-3 在翻译成英语时显著优于先前的无监督 NMT 工作,但在向相反方向翻译时表现不佳。En-Ro 上的性能是一个明显的异常值,比先前的无监督 NMT 工作差 10 BLEU 以上。这可能是由于重用了 GPT-2 的字节级 BPE 分词器,该分词器是为几乎完全是英语的训练数据集开发的。对于 Fr-En 和 De-En,少样本 GPT-3 优于我们能找到的最佳监督结果,但由于我们对文献的不熟悉以及这些看起来是不具竞争力的基准测试,我们不怀疑这些结果代表了真正的最先进水平。对于 Ro-En,少样本 GPT-3 的表现与整体 SOTA 相差 0.5 BLEU 以内,该 SOTA 是通过无监督预训练、在 608K 标记示例上进行监督微调和回译的组合实现的 [LHCG19b]。

最后,在所有语言对和所有三种设置(零样本、单样本和少样本)中,性能随着模型容量的增加呈现出平滑的改进趋势。这在少样本结果的情况下如图 3.4 所示,所有三种设置的缩放情况在附录 H 中显示。

3.4 Winograd 风格任务

Winograd Schemas Challenge [LDM12] 是 NLP 中的一项经典任务,涉及确定代词指代哪个单词,当代词在语法上模棱两可但在语义上对人类来说是明确的时候。最近,微调的语言模型在原始 Winograd 数据集上达到了接近人类的性能,但更困难的版本

设置WinogradWinogrande (XL)
微调 SOTA90.1a^a84.6b^b
GPT-3 零样本88.3*70.2
GPT-3 单样本89.7*73.2
GPT-3 少样本88.6*77.7

表 3.5:WSC273 版本 Winograd schemas 和对抗性 Winogrande 数据集的结果。有关 Winograd 测试集潜在污染的详细信息,请参阅第 4 节。 a^a [SBBC19] b^b [LYN+20]

图 3.5:随着模型容量的扩大,对抗性 Winogrande 数据集上的零样本、单样本和少样本性能。缩放相对平滑,少样本学习的收益随着模型规模的增加而增加,少样本 GPT-3 175B 与微调的 RoBERTA-large 具有竞争力。

例如对抗性挖掘的 Winogrande 数据集 [SBBC19] 仍然显著落后于人类表现。我们像往常一样在零样本、单样本和少样本设置下测试 GPT-3 在 Winograd 和 Winogrande 上的性能。

在 Winograd 上,我们使用 [RWC+19] 中描述的相同“部分评估”方法,在 273 个 Winograd schemas 的原始集合上测试 GPT-3。请注意,此设置与 SuperGLUE 基准测试中的 WSC 任务略有不同,后者呈现为二元分类,并且需要实体提取才能转换为本节中描述的形式。在 Winograd 上,GPT-3 在零样本、单样本和少样本设置下分别达到 88.3%、89.7% 和 88.6%,显示出没有明显的上下文学习,但在所有情况下都取得了仅比最先进水平和估计人类表现低几个点的强大结果。我们注意到污染分析在训练数据中发现了一些 Winograd schemas,但这似乎对结果只有很小的影响(参见第 4 节)。

在更困难的 Winogrande 数据集上,我们确实发现了上下文学习的收益:GPT-3 在零样本设置下达到 70.2%,在单样本设置下达到 73.2%,在少样本设置下达到 77.7%。作为比较,微调的 RoBERTA 模型达到 79%,最先进水平是 84.6%,这是通过微调的高容量模型 (T5) 实现的,而 [SBBC19] 报告的人类在该任务上的表现为 94.0%。

3.5 常识推理

接下来,我们考虑三个试图捕捉物理或科学推理的数据集,这与句子补全、阅读理解或广泛知识问答不同。第一个,PhysicalQA (PIQA) [BZB+19],询问关于物理世界如何运作的常识问题,旨在作为对世界基础理解的探测。GPT-3 在零样本下达到 81.0% 的准确率,在单样本下达到 80.5% 的准确率,在少样本下达到 82.8% 的准确率(后者是在 PIQA 的测试服务器上测量的)。这与之前最先进的

设置PIQAARC (Easy)ARC (Challenge)OpenBookQA
微调 SOTA79.492.0 [KKS+20]78.5 [KKS+20]87.2 [KKS+20]
GPT-3 零样本80.5*68.851.457.6
GPT-3 单样本80.5*71.253.258.8
GPT-3 少样本82.8*70.151.565.4

表 3.6:GPT-3 在三个常识推理任务 PIQA、ARC 和 OpenBookQA 上的结果。GPT-3 少样本 PIQA 结果是在测试服务器上评估的。有关 PIQA 测试集潜在污染问题的详细信息,请参阅第 4 节。

图 3.6:GPT-3 在零样本、单样本和少样本设置下在 PIQA 上的结果。最大的模型在所有三种条件下的开发集上取得的分数都超过了该任务上记录的最佳分数。

微调的 RoBERTa 的 79.4% 准确率相比表现良好。PIQA 显示出与模型规模相对较浅的缩放,并且仍然比人类表现差 10% 以上,但 GPT-3 的少样本甚至零样本结果优于当前的最先进水平。我们的分析标记了 PIQA 存在潜在的数据污染问题(尽管有隐藏的测试标签),因此我们保守地用星号标记了该结果。有关详细信息,请参阅第 4 节。

ARC [CCE+18] 是一个多项选择题数据集,收集自 3 年级到 9 年级的科学考试。在数据集的“挑战”版本上,该版本已过滤为简单的统计或信息检索方法无法正确回答的问题,GPT-3 在零样本设置下达到 51.4% 的准确率,在单样本设置下达到 53.2%,在少样本设置下达到 51.5%。这接近了来自 UnifiedQA [KKS+20] 的微调 RoBERTa 基线 (55.9%) 的性能。在数据集的“简单”版本上(提到的基线方法正确回答的问题),GPT-3 达到了 68.8%、71.2% 和 70.1%,这略微超过了来自 [KKS+20] 的微调 RoBERTa 基线。然而,这两个结果仍然比 UnifiedQA 实现的总体 SOTA 差得多,UnifiedQA 在挑战集上比 GPT-3 的少样本结果高出 27%,在简单集上高出 22%。

在 OpenBookQA [MCKS18] 上,GPT-3 从零样本到少样本设置有显著提高,但仍比总体 SOTA 低 20 多个点。GPT-3 的少样本性能类似于排行榜上的微调 BERT Large 基线。

总的来说,GPT-3 的上下文学习在常识推理任务上显示出混合的结果,在 PIQA 和 ARC 的单样本和少样本学习设置中仅观察到微小且不一致的收益,但在 OpenBookQA 上观察到了显著的改进。GPT-3 在所有评估设置中都在新的 PIQA 数据集上设定了 SOTA。

3.6 阅读理解

接下来,我们在阅读理解任务上评估 GPT-3。我们使用了一套 5 个数据集,包括在对话和单问题设置中的抽象、多项选择和基于跨度的答案格式。我们观察到 GPT-3 在这些数据集上的性能差异很大,这表明其在不同答案格式上的能力各不相同。总的来说,我们观察到 GPT-3 与在每个相应数据集上使用上下文表示训练的初始基线和早期结果相当。

GPT-3 在 CoQA [RCM19](一个自由形式的对话数据集)上表现最好(在人类基线 3 点以内),在 QuAC [CHI+18](一个需要建模结构化对话行为和师生互动答案跨度选择的数据集)上表现最差(比 ELMo 基线低 13 F1)。在 DROP [DWD+19](一个在阅读理解背景下测试离散推理和计算能力的数据集)上,GPT-3 在少样本设置下优于原始论文中的微调 BERT 基线,但仍远低于人类表现和通过将神经网络与符号系统增强的最先进方法 [RLL+19]。在 SQuAD 2.0 [RJL18] 上,GPT-3 展示了其少样本学习能力,与零样本设置相比,F1 提高了近 10(达到 69.8)。这使其略微优于原始论文中的最佳微调结果。在 RACE [LXL+17](一个初中和高中英语考试的多项选择数据集)上,GPT-3 表现相对较弱,仅与利用上下文表示的最早工作具有竞争力,并且仍比 SOTA 落后 45%。

3.7 SuperGLUE

为了更好地汇总 NLP 任务的结果并以更系统的方式与 BERT 和 RoBERTa 等流行模型进行比较,我们还在标准化数据集集合 SuperGLUE 基准测试 [WPN+19] [WPN+19] [CLC+19] [DMST19] [RBG11] [KCR+18] [ZLL+18] [DGM06] [BHDD+06] [GMDD07] [BDD+09] [PCC18] [PHR+18] 上评估了 GPT-3。GPT-3 在 SuperGLUE 数据集上的测试集性能如表 3.8 所示。在少样本设置中,我们对所有任务使用了 32 个示例,从训练集中随机采样。对于除 WSC 之外的所有任务

图 3.7:GPT-3 在 CoQA 阅读理解任务上的结果。GPT-3 175B 在少样本设置下达到 85 F1,仅比测量的人类表现和最先进的微调模型落后几个点。零样本和单样本性能落后几个点,少样本的收益对于更大的模型最大。

SuperGLUE 平均BoolQ 准确率CB 准确率CB F1COPA 准确率RTE 准确率
微调 SOTA89.091.096.993.994.892.5
微调 BERT-Large69.077.483.675.770.671.7
GPT-3 少样本71.876.475.652.092.069.0
WiC 准确率WSC 准确率MultiRC 准确率MultiRC F1a^aReCoRD 准确率ReCoRD F1
微调 SOTA76.193.862.388.292.593.3
微调 BERT-Large69.664.624.170.071.372.0
GPT-3 少样本49.480.130.575.490.291.1

表 3.8:GPT-3 在 SuperGLUE 上与微调基线和 SOTA 的性能比较。所有结果均在测试集上报告。GPT-3 少样本在每个任务的上下文中总共被赋予 32 个示例,并且不执行梯度更新。

图 3.8:SuperGLUE 上的性能随着模型规模和上下文中的示例数量而增加。K=32 的值意味着我们的模型在 SuperGLUE 的 8 个任务中总共被展示了 256 个示例,每个任务 32 个示例。我们报告了开发集上的 GPT-3 值,因此我们的数字与虚线参考线不可直接比较(我们的测试集结果在表 3.8 中)。BERT-Large 参考模型是在 SuperGLUE 训练集(125K 示例)上进行微调的,而 BERT++ 首先在 MultiNLI(392K 示例)和 SWAG(113K 示例)上进行微调,然后在 SuperGLUE 训练集上进行进一步微调(总共 630K 微调示例)。我们发现 BERT-Large 和 BERT++ 之间的性能差异大致相当于每个上下文一个示例的 GPT-3 与每个上下文八个示例的 GPT-3 之间的差异。

和 MultiRC,我们为每个问题的上下文采样了一组新的示例。对于 WSC 和 MultiRC,我们使用了从训练集中随机抽取的相同示例集作为我们评估的所有问题的上下文。

我们观察到 GPT-3 在不同任务上的性能范围很广。在 COPA 和 ReCoRD 上,GPT-3 在单样本和少样本设置中实现了接近 SOTA 的性能,COPA 仅落后几个点并获得排行榜第二名,第一名由微调的 110 亿参数模型 (T5) 保持。在 WSC 上,性能仍然相对强劲,在少样本设置下达到 80.1%(请注意,如 3.4 节所述,GPT-3 在原始 Winograd 数据集上达到 88.6%)。在 BoolQ、MultiRC 和 RTE 上,性能合理,大致匹配微调的 BERT-Large。在 CB 上,我们在少样本设置下看到了 75.6% 的生命迹象。

WiC 是一个显著的弱点,少样本性能为 49.4%(处于随机机会水平)。我们尝试了多种不同的措辞和公式用于 WiC(涉及确定一个单词在两个句子中是否以相同的含义使用),没有一种能够实现强大的性能。这暗示了一个在下一节(讨论 ANLI 基准测试)中会变得更清晰的现象——GPT-3 在某些涉及比较两个句子或片段的任务中,在少样本或单样本设置下似乎很弱,例如单词在两个句子中是否以相同方式使用 (WiC),一个句子是否是另一个句子的释义,或者一个句子是否蕴含另一个句子。这也可能解释了 RTE 和 CB 的相对较低的分数,它们也遵循这种格式。尽管有这些弱点,GPT-3 在八个任务中的四个上仍然优于微调的 BERT-large,并且在两个任务上 GPT-3 接近由微调的 110 亿参数模型保持的最先进水平。

最后,我们注意到少样本 SuperGLUE 分数随着模型规模和上下文中示例数量的增加而稳步提高,显示出上下文学习带来的日益增加的收益(图 3.8)。我们将 KK 扩展到每个任务 32 个示例,超过此点后,额外的示例将无法可靠地放入我们的上下文中。在扫描 KK 的值时,我们发现 GPT-3 需要每个任务少于 8 个总示例即可在总体 SuperGLUE 分数上优于微调的 BERT-Large。

3.8 NLI

自然语言推理 (NLI) [Fyo00] 关注理解两个句子之间关系的能力。在实践中,此任务通常被结构化为二分类或三分类问题,其中模型分类

图 3.9:GPT-3 在 ANLI Round 3 上的性能。结果是在开发集上,该开发集只有 1500 个示例,因此具有高方差(我们估计标准差为 1.2%)。我们发现较小的模型在随机机会附近徘徊,而少样本 GPT-3 175B 几乎弥补了从随机机会到 SOTA 的一半差距。ANLI 第 1 轮和第 2 轮的结果显示在附录中。

第二个句子是否在逻辑上跟随第一个句子,与第一个句子矛盾,或者可能是真的(中性)。SuperGLUE 包含一个 NLI 数据集 RTE,它评估该任务的二元版本。在 RTE 上,只有最大版本的 GPT-3 在任何评估设置中表现出明显优于随机(56%)的性能,但在少样本设置下,GPT-3 的表现类似于单任务微调的 BERT Large。我们还评估了最近引入的对抗性自然语言推理 (ANLI) 数据集 [NWD+19]。ANLI 是一个困难的数据集,在三轮(R1、R2 和 R3)中采用了对抗性挖掘的自然语言推理问题。与 RTE 类似,我们所有小于 GPT-3 的模型在 ANLI 上表现几乎完全处于随机机会水平,即使在少样本设置下(33%\sim 33\%),而 GPT-3 本身在第 3 轮显示出生命迹象。ANLI R3 的结果在图 3.9 中突出显示,所有轮次的完整结果可以在附录 H 中找到。这些在 RTE 和 ANLI 上的结果表明,NLI 对语言模型来说仍然是一项非常困难的任务,它们才刚刚开始显示出进步的迹象。

3.9 合成与定性任务

探测 GPT-3 在少样本(或零样本和单样本)设置下能力范围的一种方法是给它一些任务,这些任务需要它执行简单的即时计算推理,识别训练中不太可能发生的模式,或者快速适应不寻常的任务。我们设计了几个任务来测试这类能力。首先,我们测试 GPT-3 执行算术运算的能力。其次,我们创建了几个涉及重新排列或重组单词中字母的任务,这些任务不太可能在训练期间被精确看到。第三,我们测试 GPT-3 少样本解决 SAT 风格类比问题的能力。最后,我们在几个定性任务上测试 GPT-3,包括在句子中使用新词、纠正英语语法和新闻文章生成。我们将发布这些合成数据集,希望能激发对语言模型测试时行为的进一步研究。

3.9.1 算术

为了测试 GPT-3 在没有特定任务训练的情况下执行简单算术运算的能力,我们开发了一套包含 10 个测试的小型电池,涉及以自然语言向 GPT-3 询问一个简单的算术问题:

  • 2 位数加法 (2D+) – 要求模型将两个从 [0,100)[0, 100) 均匀采样的整数相加,以问题的形式表述,例如“Q: 48 加 76 等于多少?A: 124。”
  • 2 位数减法 (2D-) – 要求模型将两个从 [0,100)[0, 100) 均匀采样的整数相减;答案可能是负数。示例:“Q: 34 减 53 等于多少?A: -19”。
  • 3 位数加法 (3D+) – 与 2 位数加法相同,只是数字是从 [0,1000)[0, 1000) 均匀采样的。

图 3.10:不同规模模型在少样本设置下所有 10 个算术任务的结果。从第二大模型 (GPT-3 13B) 到最大模型 (GPT-3 175) 有显著的跳跃,后者能够可靠地准确进行 2 位数算术,通常准确进行 3 位数算术,并且在 4-5 位数算术、2 位数乘法和复合运算上在很大一部分时间内给出正确答案。单样本和零样本的结果显示在附录中。

  • 3 位数减法 (3D-) – 与 2 位数减法相同,只是数字是从 [0,1000)[0, 1000) 均匀采样的。
  • 4 位数加法 (4D+) – 与 3 位数加法相同,只是从 [0,10000)[0, 10000) 均匀采样。
  • 4 位数减法 (4D-) – 与 3 位数减法相同,只是从 [0,10000)[0, 10000) 均匀采样。
  • 5 位数加法 (5D+) – 与 3 位数加法相同,只是从 [0,100000)[0, 100000) 均匀采样。
  • 5 位数减法 (5D-) – 与 3 位数减法相同,只是从 [0,100000)[0, 100000) 均匀采样。
  • 2 位数乘法 (2Dx) – 要求模型将两个从 [0,100)[0, 100) 均匀采样的整数相乘,例如“Q: 24 乘以 42 等于多少?A: 1008”。
  • 一位数复合运算 (1DC) – 要求模型对三个一位数执行复合运算,最后两个数字周围有括号。例如,“Q: 6+(4*8) 等于多少?A: 38”。这三个一位数是在 [0,10)[0, 10) 上均匀选择的,运算是从 {+,,}\{+, -, *\} 中均匀选择的。

在所有 10 个任务中,模型必须精确生成正确答案。对于每个任务,我们生成一个包含 2,000 个随机任务实例的数据集,并在这些实例上评估所有模型。

首先,我们在少样本设置下评估 GPT-3,其结果如图 3.10 所示。在加法和减法方面,当位数较少时,GPT-3 显示出强大的熟练度,在 2 位数加法上达到 100% 的准确率,在 2 位数减法上达到 98.9%,在 3 位数加法上达到 80.2%,在 3 位数减法上达到 94.2%。随着位数的增加,性能会下降,但 GPT-3 在四位数运算上仍达到 25-26% 的准确率,在五位数运算上达到 9-10% 的准确率,这表明至少具有一定的泛化到更大位数的能力。GPT-3 在 2 位数乘法上也达到了 29.2% 的准确率,这是一种特别计算密集型的运算。最后,GPT-3 在一位数复合运算(例如 9*(7+5))上达到了 21.3% 的准确率,这表明它不仅限于单一运算,还具有一定的鲁棒性。

如图 3.10 所示,小型模型在所有这些任务上表现都很差——即使是 130 亿参数的模型(仅次于 1750 亿完整 GPT-3 的第二大模型)也只能在半数时间内解决 2 位数加法和减法,而所有其他运算的准确率不到 10%。

单样本和零样本性能相对于少样本性能有所下降,这表明对任务的适应(或者至少是对任务的识别)对于正确执行这些计算很重要。尽管如此,单样本性能仍然相当强劲,甚至完整 GPT-3 的零样本性能也显著

设置2D+2D-3D+3D-4D+4D-5D+5D-2Dx1DC
GPT-3 零样本76.958.034.248.34.07.50.70.819.89.8
GPT-3 单样本99.686.465.578.714.014.03.53.827.414.3
GPT-3 少样本100.098.980.494.225.526.89.39.929.221.3

表 3.9:GPT-3 175B 在基本算术任务上的结果。{2,3,4,5}D{+,-} 是 2、3、4 和 5 位数加法或减法,2Dx 是 2 位数乘法。1DC 是一位数复合运算。从零样本到单样本再到少样本设置,结果逐渐变强,但即使是零样本也显示出显著的算术能力。

设置CLA1A2RIRW
GPT-3 零样本3.662.288.918.260.09
GPT-3 单样本21.78.6225.945.40.48
GPT-3 少样本37.915.139.767.20.44

表 3.10:GPT-3 175B 在各种单词重组和单词操作任务上的性能,处于零样本、单样本和少样本设置中。CL 是“单词中的字母循环”,A1 是除首尾字母外的变位词,A2 是除首尾两个字母外的所有字母的变位词,RI 是“单词中的随机插入”,RW 是“反转单词”。

优于所有较小模型的少样本学习。完整 GPT-3 的所有三种设置如表 3.9 所示,所有三种设置的模型容量缩放情况显示在附录 H 中。

为了抽查模型是否只是在记忆特定的算术问题,我们选取了测试集中的 3 位数算术问题,并在我们的训练数据中以 " + =" 和 " plus " 两种形式搜索它们。在 2,000 个加法问题中,我们只发现了 17 个匹配项 (0.8%),在 2,000 个减法问题中,我们只发现了 2 个匹配项 (0.1%),这表明只有极小一部分正确答案可能是被记忆的。此外,对错误答案的检查显示,模型经常犯诸如不进位“1”之类的错误,这表明它实际上是在尝试执行相关的计算,而不是记忆表格。

总的来说,GPT-3 在少样本、单样本甚至零样本设置下,在适度复杂的算术方面表现出合理的熟练度。

3.9.2 单词重组与操作任务

为了测试 GPT-3 从少量示例中学习新颖符号操作的能力,我们设计了一套包含 5 个“字符操作”任务的小型电池。每个任务都涉及给模型一个通过某种字符重组、添加或删除而扭曲的单词,并要求它恢复原始单词。这 5 个任务是:

  • 单词中的字母循环 (CL) – 模型被赋予一个字母循环的单词,然后是“=”符号,并期望生成原始单词。例如,它可能被赋予“lyinevitab”,应该输出“inevitably”。
  • 除首尾字母外的变位词 (A1) – 模型被赋予一个单词,其中除首字母和尾字母外的每个字母都被随机重组,并且必须输出原始单词。示例:criroptuon = corruption。
  • 除首尾两个字母外的变位词 (A2) – 模型被赋予一个单词,其中除前 2 个和后 2 个字母外的每个字母都被随机重组,并且必须恢复原始单词。示例:opoepnnt \rightarrow opponent。
  • 单词中的随机插入 (RI) – 在单词的每个字母之间插入一个随机标点符号或空格字符,模型必须输出原始单词。示例:s.u!c/c!e.s s i/o/n = succession。
  • 反转单词 (RW) – 模型被赋予一个拼写倒序的单词,并且必须输出原始单词。示例:stcejbo \rightarrow objects。

对于每个任务,我们生成 10,000 个示例,我们选择这些示例作为 [Nor09] 测量的长度超过 4 个字符且少于 15 个字符的前 10,000 个最常用单词。少样本结果如图 3.11 所示。任务性能往往随着模型规模的增加而平滑增长,完整的 GPT-3 模型在删除随机插入方面达到了 66.9%,在循环字母方面达到了 38.6%,在较容易的变位词任务上达到了 40.2%,在较困难的变位词任务(仅保留首尾字母)上达到了 15.1%。没有模型能够反转单词中的字母。

图 3.11:不同规模模型在五个单词重组任务上的少样本性能。随着模型规模的增加,通常会有平滑的改进,尽管随机插入任务显示出改进的上升斜率,175B 模型在大多数时间内解决了该任务。单样本和零样本性能的缩放显示在附录中。所有任务均在 K=100 的情况下完成。

在单样本设置中,性能明显较弱(下降了一半或更多),而在零样本设置中,模型几乎无法执行任何任务(表 3.10)。这表明模型确实似乎在测试时学习了这些任务,因为模型无法在零样本下执行它们,而且它们的性质使得它们不太可能出现在预训练数据中(尽管我们无法确定地确认这一点)。

我们可以通过绘制“上下文学习曲线”来进一步量化性能,该曲线显示任务性能作为上下文示例数量的函数。我们在图 1.2 中展示了符号插入任务的上下文学习曲线。我们可以看到,更大的模型能够越来越有效地利用上下文信息,包括任务示例和自然语言任务描述。

最后,值得补充的是,解决这些任务需要字符级的操作,而我们的 BPE 编码操作的是单词的显著部分(平均 0.7\sim 0.7 个单词/token),因此从 LM 的角度来看,在这些任务上取得成功不仅涉及操作 BPE token,还涉及理解和拆解它们的子结构。此外,CL、A1 和 A2 不是双射的(也就是说,重组后的单词不是重组前单词的确定性函数),需要模型执行一些搜索来找到正确的重组。因此,所涉及的技能似乎需要非平凡的模式匹配和计算。

3.9.3 SAT 类比

为了在相对于典型文本分布而言有些不寻常的另一个任务上测试 GPT-3,我们收集了一组 374 个“SAT 类比”问题 [TLBS03]。类比是一种多项选择题风格,构成了 2005 年之前 SAT 大学入学考试的一部分。一个典型的例子是“audacious is to boldness as (a) sanctimonious is to hypocrisy, (b) anonymous is to identity, (c) remorseful is to misdeed, (d) deleterious is to result, (e) impressionable is to temptation”。学生被期望选择五个单词对中的哪一个与原始单词对具有相同的关系;在这个例子中,答案是“sanctimonious is to hypocrisy”。在这个任务上,GPT-3 在少样本设置下达到了 65.2%,在单样本设置下达到了 59.1%,在零样本设置下达到了 53.7%,而大学申请者的平均分是 57% [TL05](随机猜测产生 20%)。如图 3.12 所示,结果随着规模的扩大而提高,完整的 1750 亿模型比 130 亿参数模型提高了 10% 以上。

图 3.12:不同规模模型在 SAT 类比任务上的零样本、单样本和少样本性能。最大的模型在少样本设置下达到了 65% 的准确率,并且还展示了较小模型中不存在的对上下文学习的显著收益。

3.9.4 新闻文章生成

先前关于生成语言模型的工作定性地测试了它们通过给定人类编写的提示(由新闻故事的合理第一句话组成)进行条件采样来生成合成“新闻文章”的能力 [RWC+19]。相对于 [RWC+19],用于训练 GPT-3 的数据集对新闻文章的加权要少得多,因此尝试通过原始无条件样本生成新闻文章的效果较差——例如,GPT-3 经常将“新闻文章”的建议第一句话解释为推文,然后发布合成回复或后续推文。为了解决这个问题,我们利用了 GPT-3 的少样本学习能力,在模型的上下文中提供了三篇先前的新闻文章来对其进行条件化。有了建议的下一篇文章的标题和副标题,模型就能够可靠地生成“新闻”体裁的短文章。

为了衡量 GPT-3 生成新闻文章的质量(我们认为这可能与一般的条件样本生成质量相关),我们决定测量人类区分 GPT-3 生成的文章与真实文章的能力。类似的工作已由 Kreps 等人 [KMB20] 和 Zellers 等人 [ZHR+19] 进行。生成语言模型经过训练以匹配人类生成内容的分布,因此人类区分两者的(不)能力是潜在的重要质量衡量标准。³

为了查看人类检测模型生成文本的效果如何,我们任意选择了来自网站 newser.com 的 25 个文章标题和副标题(平均长度:215 个单词)。然后,我们从四个规模从 125M 到 175B (GPT-3) 参数的语言模型中生成了这些标题和副标题的补全(平均长度:200 个单词)。对于每个模型,我们向大约 80 名美国参与者展示了一个测验,该测验由这些真实的标题和副标题组成,随后是人类编写的文章或模型生成的文章⁴。参与者被要求选择文章是“非常可能是人类写的”、“更可能是人类写的”、“我不知道”、“更可能是机器写的”还是“非常可能是机器写的”。

我们选择的文章不在模型的训练数据中,并且模型输出经过程序化格式化和选择,以防止人类挑选。所有模型都使用相同的上下文来对输出进行条件化,并且使用相同的上下文大小进行预训练,并且相同的文章标题和副标题被用作每个模型的提示。然而,我们也运行了一个实验来控制参与者的努力和注意力,该实验遵循相同的格式,但涉及故意糟糕的模型生成文章。这是通过从“控制模型”生成文章来完成的:一个具有无上下文和增加输出随机性的 160M 参数模型。


³ 此任务也与第 6.1 节中讨论的语言模型潜在滥用相关。 ⁴ 我们想确定互联网上的普通人在检测语言模型输出方面的能力如何,因此我们专注于从美国普通人群中抽取的参与者。有关详细信息,请参阅附录 E。


平均准确率95% 置信区间 (低, 高)与控制相比的 t 值 (p 值)“我不知道”分配
控制(故意糟糕的模型)86%83%–90%-3.6 %
GPT-3 Small76%72%–80%3.9 (2e-4)4.9%
GPT-3 Medium61%58%–65%10.3 (7e-21)6.0%
GPT-3 Large68%64%–72%7.3 (3e-11)8.7%
GPT-3 XL62%59%–65%10.7 (1e-19)7.5%
GPT-3 2.7B62%58%–65%10.4 (5e-19)7.1%
GPT-3 6.7B60%56%–63%11.2 (3e-21)6.2%
GPT-3 13B55%52%–58%15.3 (1e-32)7.1%
GPT-3 175B52%49%–54%16.9 (1e-34)7.8%

表 3.11:人类识别短(200\sim 200 单词)新闻文章是否为模型生成的准确率。我们发现人类准确率(以正确分配与非中性分配的比率衡量)从控制模型的 86% 到 GPT-3 175B 的 52% 不等。此表比较了五个不同模型之间的平均准确率,并显示了每个模型与控制模型(具有增加输出随机性的无条件 GPT-3 Small 模型)之间平均准确率差异的两个样本 T 检验结果。

人类检测故意糟糕的文章是模型生成的平均准确率(每位参与者的正确分配与非中性分配的比率)为 86%\sim 86\%,其中 50% 是随机水平性能。相比之下,人类检测由 175B 参数模型生成的文章的平均准确率仅略高于随机水平,为 52%\sim 52\%(见表 3.11)。⁵ 人类检测模型生成文本的能力似乎随着模型规模的增加而降低:随着模型规模的增加,似乎存在向随机准确率的趋势,并且人类对 GPT-3 的检测接近随机水平。⁶ 尽管参与者随着模型规模的增加在每个输出上花费更多时间,但事实确实如此(参见附录 E)。

来自 GPT-3 的合成文章示例在图 3.14 和 3.15 中给出。⁷ 大部分文本——正如评估所表明的那样——人类很难将其与真实的人类内容区分开来。事实不准确可能是文章是模型生成的指标,因为与人类作者不同,模型无法访问文章标题所指的特定事实或文章撰写的时间。其他指标包括重复、不合逻辑和不寻常的措辞,尽管这些通常足够微妙而未被注意到。

Ippolito 等人 [IDCBE19] 关于语言模型检测的相关工作表明,像 GROVER [ZHR+19] 和 GLTR [GSR19] 这样的自动判别器可能比人类评估者在检测模型生成的文本方面取得更大的成功。这些模型的自动检测可能是未来研究的一个有希望的领域。

Ippolito 等人 [IDCBE19] 还指出,人类检测模型生成文本的准确率随着人类观察到更多 token 而增加。为了初步调查人类在检测 GPT-3 175B 生成的更长新闻文章方面的表现如何,我们从路透社选择了 12 篇世界新闻文章,平均长度为 569 个单词,并从 GPT-3 生成了这些文章的补全,平均长度为 498 个单词(比我们最初的实验长 298 个单词)。遵循上述方法,我们进行了两次实验,每项实验有大约 80 名美国参与者,以比较人类检测 GPT-3 和控制模型生成的文章的能力。

我们发现,人类检测来自控制模型的故意糟糕的较长文章的平均准确率约为 88%\sim 88\%,而人类检测由 GPT-3 175B 生成的较长文章的平均准确率仍然仅略高于随机水平,约为 52%\sim 52\%(见表 3.12)。这表明,对于大约 500 个单词长的新闻文章,GPT-3 继续生成人类发现难以与人类撰写的新闻文章区分开来的文章。

3.9.5 学习和使用新词

发展语言学 [CB78] 中研究的一项任务是学习和利用新词的能力,例如在仅定义一次后在句子中使用一个单词,或者相反,仅从一次用法中推断出一个单词的含义。在这里,我们定性地测试 GPT-3 执行前者的能力。具体而言,我们给 GPT-3 一个不存在的单词的定义,例如“Gigamuru”,然后要求它在一个句子中使用它。我们提供一到五个先前的(单独的)示例


⁵ 我们使用两个样本的学生 T 检验来测试每个模型的参与者准确率平均值与控制模型之间的显著差异,并报告平均值的归一化差异(作为 t 统计量)和 p 值。 ⁶ 如果一个模型持续生成比人类文章更令人印象深刻的文本,人类在该任务上的表现可能会降至 50% 以下。事实上,许多个人参与者在该任务上的得分低于 50%。 ⁷ 额外的非新闻样本可以在附录 F 中找到。


图 3.13:人们识别新闻文章是否为模型生成的(以正确分配与非中性分配的比率衡量)能力随着模型规模的增加而降低。故意糟糕的控制模型(具有更高输出随机性的无条件 GPT-3 Small 模型)的输出准确率用顶部的虚线表示,随机机会 (50%) 用底部的虚线表示。最佳拟合线是具有 95% 置信区间的幂律。

平均准确率95% 置信区间 (低, 高)与控制相比的 t 值 (p 值)“我不知道”分配
控制88%84%–91%-2.7%
GPT-3 175B52%48%–57%12.7 (3.2e-23)10.6%

表 3.12:人们识别 500\sim 500 单词的文章是否为模型生成的(以正确分配与非中性分配的比率衡量)能力在控制模型上为 88%,在 GPT-3 175B 上为 52%。此表显示了 GPT-3 175B 与控制模型(具有增加输出随机性的无条件 GPT-3 Small 模型)之间平均准确率差异的两个样本 T 检验结果。

图 3.14:人类最难将其与人类撰写的文章区分开来的 GPT-3 生成的新闻文章(准确率:12%)。

图 3.15:人类发现最容易将其与人类撰写的文章区分开来的 GPT-3 生成的新闻文章(准确率:61%)。

图 3.16:GPT-3 为在句子中使用新词的少样本任务提供的代表性补全。粗体是 GPT-3 的补全,纯文本是人类提示。在第一个示例中,提示和补全均由人类提供;这随后作为后续示例的条件,其中 GPT-3 接收连续的额外提示并提供补全。除了此处显示的条件外,没有向 GPT-3 提供任何特定于任务的内容。

非现有单词被定义并在句子中使用,因此该任务在先前广泛任务的示例方面是少样本的,而在特定单词方面是单样本的。表 3.16 显示了我们生成的 6 个示例;所有定义都是人类生成的,第一个答案是作为条件的人类生成的,而后续答案是由 GPT-3 生成的。这些示例是在一次会议中连续生成的,我们没有省略或重复尝试任何提示。在所有情况下,生成的句子似乎都是对该单词的正确或至少是合理的用法。在最后一个句子中,模型为单词“screeg”生成了一个合理的变位(即“screeghed”),尽管该单词的用法略显尴尬(“screeghed at each other”),尽管在它可能描述玩具剑斗的意义上是合理的。总的来说,GPT-3 似乎至少精通在句子中使用新词的任务。

3.9.6 纠正英语语法

另一个非常适合少样本学习的任务是纠正英语语法。我们通过提供形式为 "Poor English Input: \n Good English Output: " 的提示,在少样本设置下用 GPT-3 测试这一点。我们给 GPT-3 一个人类生成的纠正,然后要求它再纠正 5 个(同样没有任何遗漏或重复)。结果如图 3.17 所示。

4 基准测试记忆的测量与预防

由于我们的训练数据集来源于互联网,我们的模型有可能是在我们的一些基准测试集上进行训练的。准确检测互联网规模数据集中的测试污染是一个没有既定最佳实践的新研究领域。虽然在不调查污染的情况下训练大型模型是常见的做法,但鉴于预训练数据集的规模不断扩大,我们认为这个问题变得越来越重要。

这种担忧不仅仅是假设性的。最早在 Common Crawl 数据上训练语言模型的论文之一 [TL18] 检测并删除了一个与他们评估数据集之一重叠的训练文档。其他工作如 GPT-2 [RWC+19] 也进行了事后重叠分析。他们的研究相对令人鼓舞,发现

图 3.17:GPT-3 为少样本纠正英语语法任务提供的代表性补全。粗体是 GPT-3 的补全,纯文本是人类提示。在最初的几个示例中,提示和补全均由人类提供;这随后作为后续示例的条件,其中 GPT-3 接收连续的额外提示并提供补全。除了作为条件的前几个示例和“Poor English input/Good English output”框架外,没有向 GPT-3 提供任何特定于任务的内容。我们注意到“差”和“好”英语(以及术语本身)之间的区别是复杂的、上下文相关的且有争议的。正如提到房屋租赁的示例所示,模型对什么是“好”的假设甚至可能导致它犯错(在这里,模型不仅调整了语法,还以改变含义的方式删除了单词“cheap”)。

虽然模型在训练和测试之间重叠的数据上表现确实稍好,但这并没有显著影响报告的结果,因为被污染的数据比例很小(通常只有几个百分点)。

GPT-3 在一个稍微不同的制度下运行。一方面,数据集和模型规模比 GPT-2 使用的大约两个数量级,并且包含大量的 Common Crawl,从而产生了更大的污染和记忆潜力。另一方面,正是由于数据量大,即使是 GPT-3 175B,相对于它被去重的留出验证集进行测量,其训练集也没有出现显著的过拟合(图 4.1)。因此,我们预计污染可能很频繁,但其影响可能不像担心的那么大。

我们最初试图通过主动搜索并尝试删除我们的训练数据与本文研究的所有基准测试的开发集和测试集之间的任何重叠来解决污染问题。不幸的是,一个错误导致仅部分删除了训练数据中所有检测到的重叠。由于训练成本的原因,重新训练模型是不可行的。为了解决这个问题,我们详细调查了剩余检测到的重叠如何影响结果。

对于每个基准测试,我们制作了一个“干净”版本,删除了所有潜在泄露的示例,大致定义为与预训练集中的任何内容有 13-gram 重叠的示例(或者当它短于 13-gram 时与整个示例重叠)。目标是非常保守地标记任何可能构成污染的内容,以便生成一个以高置信度免受污染的干净子集。确切的过程在附录 C 中详细说明。

然后,我们在这些干净的基准测试上评估 GPT-3,并与原始分数进行比较。如果干净子集上的分数与整个数据集上的分数相似,这表明污染即使存在,也不会对报告的结果产生显著影响。如果干净子集上的分数较低,这表明污染可能正在夸大结果。结果汇总在图 4.2 中。虽然潜在的污染通常很高(四分之一的基准测试得分超过 50%),但在大多数情况下,性能变化仅可忽略不计,并且我们没有看到污染水平和性能差异相关的证据。我们得出结论,要么我们的保守方法大大高估了污染,要么污染对性能影响很小。

下面,我们更详细地回顾了模型在干净版本上表现明显更差,或者潜在污染非常高,这使得测量性能差异变得困难的少数特定情况。

我们的分析标记了六组基准测试以供进一步调查:单词重组、阅读理解(QuAC、SQuAD2、DROP)、PIQA、Winograd、语言建模任务(Wikitext 任务、1BW)和德语到英语

图 4.1:GPT-3 训练曲线。我们在训练分布的去重验证分割上测量训练期间的模型性能。虽然训练和验证性能之间存在一些差距,但该差距仅随着模型规模和训练时间的增加而微小地增长,这表明大部分差距来自难度差异而不是过拟合。

翻译。由于我们的重叠分析旨在极其保守,我们预计它会产生一些误报。我们总结了下面每组任务的结果:

  • 阅读理解:我们的初步分析将来自 QuAC、SQuAD2 和 DROP 的 >90% 的任务示例标记为潜在污染,以至于即使在干净子集上测量差异也很困难。然而,经过人工检查,我们发现对于我们检查的每一个重叠,在所有 3 个数据集中,源文本都存在于我们的训练数据中,但问题/答案对不存在,这意味着模型仅获得了背景信息,无法记忆特定问题的答案。

  • 德语翻译:我们发现 WMT16 德语-英语测试集中的 25% 的示例被标记为潜在污染,相关的总效应大小为 1-2 BLEU。经检查,没有一个被标记的示例包含类似于 NMT 训练数据的配对句子,并且碰撞主要是单语匹配,大多是新闻中讨论的事件片段。

  • 反转单词和变位词:回想一下,这些任务的形式是“alaok = koala”。由于这些任务的长度较短,我们使用了 2-gram 进行过滤(忽略标点符号)。在检查了被标记的重叠后,我们发现它们通常不是训练集中真实反转或重组的实例,而是回文或琐碎的重组,例如“kayak = kayak”。重叠量很小,但删除琐碎任务导致难度增加,从而产生了虚假信号。与此相关,符号插入任务显示出高重叠但对性能没有影响——这是因为该任务涉及从单词中删除非字母字符,而重叠分析本身忽略了此类字符,导致许多虚假匹配。

  • PIQA:重叠分析将 29% 的示例标记为污染,并观察到干净子集上的性能下降了 3 个百分点(4% 的相对下降)。虽然测试数据集是在我们的训练集创建后发布的,并且其标签是隐藏的,但众包数据集创建者使用的一些网页包含在我们的训练集中。我们在一个容量小 25 倍、记忆能力小得多的模型中发现了类似的下降,这使我们怀疑这种转变很可能是统计偏差而不是记忆;工人复制的示例可能只是更容易。不幸的是,我们无法严格证明这一假设。因此,我们用星号标记我们的 PIQA 结果,以表示这种潜在的污染。

  • Winograd:重叠分析标记了 45% 的示例,并发现干净子集上的性能下降了 2.6%。对重叠数据点的人工检查显示,132 个 Winograd schemas 实际上存在于我们的训练集中,尽管呈现的格式与我们向模型呈现任务的格式不同。虽然性能下降很小,但我们在主论文中用星号标记了我们的 Winograd 结果。

  • 语言建模:我们发现 GPT-2 中测量的 4 个维基百科语言建模基准测试,加上 Children’s Book Test 数据集,几乎完全包含在我们的训练数据中。由于我们无法在此处可靠地提取干净的子集,因此我们不报告这些数据集的结果,即使我们在开始这项工作时打算这样做。我们注意到 Penn Tree Bank 由于其年龄而未受影响,因此成为了我们的主要语言建模基准测试。

我们还检查了污染很高但对性能影响接近于零的数据集,只是为了验证实际存在多少污染。这些似乎经常包含误报。它们要么没有实际污染,要么污染没有泄露任务的答案。一个值得注意的例外是 LAMBADA,它似乎有实质性的真实污染,但对性能的影响非常小,干净子集的分数在完整数据集的 0.5% 以内。此外,严格来说,我们的填空格式排除了最简单的记忆形式。尽管如此,由于我们在本文中在 LAMBADA 上取得了非常大的收益,因此在结果部分注明了潜在的污染。

我们污染分析的一个重要局限是,我们无法确定干净子集是否是从与原始数据集相同的分布中抽取的。记忆可能夸大了结果,但同时被导致干净子集更容易的某种统计偏差精确抵消,这种可能性仍然存在。然而,接近零的偏移量数量之多表明这不太可能,而且我们还观察到小型模型的偏移量没有明显差异,这些模型不太可能在进行记忆。

总的来说,我们已尽最大努力测量和记录数据污染的影响,并根据严重程度注明或直接删除有问题的结果。对于该领域来说,在设计基准测试和训练模型时,解决这个重要且微妙的问题还有很多工作要做。有关我们分析的更详细解释,我们请读者参阅附录 C。

5 局限性

GPT-3 和我们对它的分析有许多局限性。下面我们描述其中一些并建议未来工作的方向。

首先,尽管 GPT-3 有强大的定量和定性改进,特别是与它的直接前身 GPT-2 相比,它在文本合成和几个 NLP 任务上仍然有显著的弱点。在文本合成方面,虽然总体质量很高,但 GPT-3 样本有时会在文档级别语义上重复自己,在足够长的段落中开始失去连贯性,自相矛盾,并且偶尔包含不合逻辑的句子或段落。我们将

硬核测试

正确率:0 / 5
1

根据论文,GPT-3 在评估时主要采用了哪种学习范式以实现任务无关的性能?

2

文中提到的“少样本(Few-Shot)”学习设置中,通常允许模型在上下文窗口中包含多少个演示示例?

3

论文中提到的“数据污染”问题主要指的是什么?

4

关于模型规模对上下文学习能力的影响,论文得出了什么结论?

5

文中提到的“元学习(meta-learning)”在语言模型背景下指的是什么?