【ChatGPT 翻译】Language Models are Few-Shot Learners

本文由chatGPT-3完全翻译,未经过人工调整(翻译包括公式,包括公式,包括公式!!!!)。

摘要 Abstract

最近的研究表明,通过在大型语料库上进行预训练,然后在特定任务上进行微调,可以在许多NLP任务和基准测试中取得实质性的收益。尽管在体系结构上通常是任务不可知的,但是这种方法仍然需要数千或数万个示例的特定任务微调数据集。相比之下,人类通常可以仅仅通过几个示例或简单的指令来执行新的语言任务,而当前的NLP系统仍然在很大程度上难以做到这一点。在这里,我们展示了放大语言模型可以大大提高任务不可知的少量示例性能,有时甚至达到了先前最先进的微调方法的竞争力。具体来说,我们训练GPT-3,一种具有175亿个参数的自回归语言模型,是以前任何非稀疏语言模型的10倍,并在少量示例设置中测试其性能。对于所有任务,GPT-3都没有任何梯度更新或微调,任务和少量示例演示仅通过与模型的文本交互来指定。GPT-3在许多NLP数据集上取得了很好的表现,包括翻译、问答和填空任务,以及一些需要即时推理或领域适应的任务,如打乱单词、在句子中使用新单词或执行3位数算术。与此同时,我们还发现GPT-3在少量示例学习中仍然存在困难的数据集,以及GPT-3在训练大型网络语料库时面临的一些方法学问题的数据集。最后,我们发现GPT-3可以生成新闻文章的样本,人类评估者很难区分这些文章是由人类编写的。我们讨论了这一发现以及GPT-3的更广泛的社会影响。

1 引言 Introduction

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

这最后一种范式在许多具有挑战性的NLP任务上取得了实质性的进展,如阅读理解、问答、文本蕴涵等,并且基于新的架构和算法继续发展[RSR + 19,LOG + 19,YDY + 19,LCG + 19]。然而,这种方法的一个主要局限性是,尽管架构是任务不可知的,但仍然需要特定任务的数据集和特定任务的微调:要在所需的任务上取得较强的性能,通常需要在数千到数十万个特定于该任务的示例上进行微调。出于几个原因,去除这种限制是可取的。

首先,从实际角度来看,每个新任务都需要大量标记示例的需求限制了语言模型的适用性。存在着非常广泛的可能有用的语言任务,包括从纠正语法到生成抽象概念的示例,再到批评短篇小说。对于许多这样的任务,很难收集大量的监督训练数据集,特别是当每个新任务都必须重复这个过程时。

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

第三,人类不需要大量的监督数据集来学习大多数语言任务-自然语言中的简短指令(例如“请告诉我,这句话描述的是快乐的事情还是悲伤的事情”)或者最多只有少量的示范(例如“这里有两个人表现出勇敢的例子;请给出第三个勇敢的例子”)通常足以使人类以至少合理的能力水平来执行新任务。除了指出我们当前NLP技术的概念限制外,这种适应性还具有实际优势-它允许人类在许多任务和技能之间无缝混合或切换,例如在漫长的对话中执行加法。为了具有广泛的用途,我们有一天希望我们的NLP系统也具有同样的流动性和普遍性。

Figure 1.1: 语言模型元学习。在无监督预训练期间,语言模型发展出一系列技能和模式识别能力。然后,它在推理时使用这些能力来快速适应或识别所需的任务。我们使用“上下文学习”一词来描述此过程的内循环,该过程在每个序列的前向传递中发生。此图中的序列不是代表模型在预训练期间看到的数据,而是用来表明有时在单个序列中嵌入了重复的子任务。

解决这些问题的一个潜在途径是元学习1-在语言模型的背景下,这意味着模型在训练时发展出一系列技能和模式识别能力,然后在推理时使用这些能力来快速适应或识别所需的任务(图1.1所示)。最近的工作[RWC + 19]试图通过我们称之为“上下文学习”的方式来实现这一目标,使用预训练语言模型的文本输入作为任务规范的形式:模型受到自然语言指令和/或任务的几个示范的影响,然后只需预测接下来会发生什么,就可以完成进一步的任务实例。

虽然它已经显示出一些初步的希望,但这种方法仍然取得的结果远远低于微调-例如[RWC + 19]在自然问题上只达到4%,甚至其55 F1 CoQa结果现在也落后于现有技术35分以上。元学习显然需要大幅改进才能成为解决语言任务的实用方法。

语言建模的另一个最新趋势可能提供了一条前进的道路。近年来,变压器语言模型的容量大大增加,从1亿个参数[RNSS18]到3亿个参数[DCLT18],到15亿个参数[RWC + 19],到80亿个参数[SPP + 19],110亿个参数[RSR + 19],最后是170亿个参数[Tur20]。每次增加都带来了文本合成和/或下游NLP任务的改进,有证据表明,与许多下游任务相关的对数损失随规模的增加而呈现出平稳的改善趋势[KMH + 20]。由于上下文学习涉及在模型参数中吸收许多技能和任务,因此有理由相信,上下文学习能力可能会显示出类似的强大收益。

在本文中,我们通过训练一个175亿参数的自回归语言模型(我们称之为GPT-3),并测量其上下文学习能力,来测试这一假设。具体而言,我们评估GPT-3在超过二十多个NLP数据集上的表现,以及几个旨在测试对不太可能直接包含在训练集中的任务的快速适应能力的新颖任务。对于每个任务,我们在3种情况下评估GPT-3:(a)“少量学习”,或者上下文学习,我们允许尽可能多的演示适合模型的上下文窗口(通常为10到100);(b)“一次学习”,我们只允许一次演示;(c)“零射击”学习,不允许任何演示,只给模型一个自然语言指令。原则上,GPT-3也可以按照传统的微调设置进行评估,但我们将留待以后的工作。

Figure 1.2说明了我们研究的条件,并显示了一个简单任务的少量学习,该任务要求模型从单词中删除多余的符号。模型性能随着自然语言任务描述的增加和模型上下文中的示例数量的增加而改善,K。少量学习也随着模型大小的增加而急剧提高。虽然这种情况下的结果特别引人注目,但模型大小和上下文中示例数量的一般趋势在我们研究的大多数任务中都成立。我们强调,这些“学习”曲线不涉及梯度更新或微调,只是增加了作为条件给出的示例数量。

Figure 1.2: 较大的模型越来越有效地利用上下文信息。我们在一个简单的任务上展示了上下文学习性能,该任务要求模型从单词中删除随机符号,无论是否有自然语言任务描述(参见3.9.2节)。大型模型的“上下文学习曲线”越陡,表明从上下文信息中学习任务的能力得到改善。我们在各种任务中看到了定性相似的行为。
总的来说,在NLP任务中,GPT-3在零射击和一次射击设置中取得了令人满意的结果,在少量射击设置中有时与最先进的技术相比甚至偶尔超越最先进的技术(尽管最先进的技术是由微调模型持有的)。例如,GPT-3在零射击设置中在CoQA上达到81.5 F1,在一次射击设置中达到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的优势和劣势的广泛描述,包括这些局限性,我们希望能够刺激语言模型中少量学习的研究,并引起人们对最需要进步的地方的关注。

Figure 1.3可以看出整体结果的启发式感觉,它聚合了各种任务(尽管不应将其视为严格或有意义的基准)。
Figure 1.3: 所有42个以准确度为基准的基准测试的总体表现虽然零射击性能随模型大小稳步提高,但少量射击性能却更快地增加,表明较大的模型更熟练地进行上下文学习。有关SuperGLUE的更详细分析,请参见3.8节,这是一个标准的NLP基准测试套件。
我们还进行了一项关于“数据污染”的系统研究,这是在诸如Common Crawl之类的数据集上训练高容量模型时日益严重的问题,因为这些内容往往存在于网络上,因此可能包括来自测试数据集的内容。在本文中,我们开发了系统工具来测量数据污染并量化其扭曲效果。尽管我们发现数据污染对GPT-3在大多数数据集上的性能影响很小,但我们确实发现了一些数据集,其可能会放大结果,我们要么不报告这些数据集的结果,要么根据严重程度用星号标注它们。

除了以上所有内容,我们还训练了一系列较小的模型(从1.25亿个参数到130亿个参数),以便将它们的性能与GPT-3在零、一和少量射击设置中进行比较。总体而言,对于大多数任务,我们发现在所有三个设置中模型容量的相对平滑缩放;一个显着的模式是零、一和少量射击性能之间的差距通常随着模型容量的增加而增加,这也许表明较大的模型更有效地进行元学习。

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

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

2 方法

我们的基本预训练方法,包括模型、数据和训练,与[RWC + 19]中描述的过程相似,模型大小、数据集大小和多样性以及训练时间的相对直接缩放。我们使用的上下文学习也类似于[RWC + 19],但在这项工作中,我们系统地探索了不同的上下文学习设置。因此,我们在本节开始时明确定义和对比了我们将在其上评估GPT-3或原则上可以评估GPT-3的不同设置。这些设置可以被看作处于一个谱系上,它们倾向于依赖多少特定任务的数据。具体而言,我们可以在这个谱系上至少识别出四个点(见图2.1):

  • 微调(FT)近年来一直是最常见的方法,涉及通过在特定于所需任务的监督数据集上训练来更新预训练模型的权重。通常使用数千到数十万个标记的示例。微调的主要优点是在许多基准测试中表现出色。主要缺点是每个任务都需要一个新的大型数据集,可能出现分布式质量低下的潜在风险[MPL19],以及可能利用训练数据的虚假特征[GSL + 18,NK19],可能导致与人类表现的不公平比较。在这项工作中,我们不会微调GPT-3,因为我们的重点是任务无关的性能,但GPT-3原则上可以微调,这是未来工作的一个有前途的方向。
  • 我们在这项工作中使用的术语“少量射击(FS)”是指在推理时给定任务的几个示例作为条件[RWC + 19],但不允许更新权重的设置。如图2.1所示,对于典型的数据集,一个示例具有上下文和所需的完成(例如英语句子和法语翻译),少量射击通过给出K个上下文和完成的示例,然后给出一个最终的上下文示例,要求模型提供完成。我们通常将K设置在10到100的范围内,因为这是可以适应模型上下文窗口(nctx = 2048)中的示例数量。少量射击的主要优点是大大减少了对特定任务数据的需求,并减少了从大但狭窄的微调数据集中学习过于狭窄分布的潜在风险。主要缺点是,迄今为止,这种方法的结果远远低于最先进的微调模型。此外,仍然需要少量特定任务的数据。正如名称所示,这里描述的语言模型的少量射击学习与机器学习中其他上下文中使用的少量射击学习[HYC01,VBL + 16]有关-两者都涉及基于广泛任务分布(在本例中隐含于预训练数据中)的学习,然后快速适应新任务。
  • 一次性(1S)与少量射击相同,只是除了如图1所示的任务的自然语言描述之外,还允许一次示范。将一次性与少量射击和零射击(下文)区分开来的原因是,它最接近某些任务向人类传达的方式。例如,当要求人类在人力工作服务(例如MechanicalTurk)上生成数据集时,通常会给出一个任务的示范。相比之下,如果没有给出示例,则有时很难传达任务的内容或格式。
  • 零射击(0S)与一次性射击相同,只是不允许示范,并且只给出描述任务的自然语言指令。该方法提供了最大的便利性,潜在的鲁棒性以及避免虚假相关性(除非它们在大型预训练数据语料库中广泛发生),但也是最具挑战性的设置。在某些情况下,甚至可能对人类来说很难理解没有先前示例的任务格式,因此在某些情况下,这种设置“不公平地困难”。例如,如果有人被要求“制作200米短跑的世界纪录表”,这个要求可能是模糊的,因为可能不清楚表格应该具有什么样的格式或应该包括什么(即使进行仔细的澄清,也很难准确理解所需的内容)。尽管如此,对于至少一些设置,零射击最接近人类执行任务的方式-例如,在图2.1中的翻译示例中,人类可能只需要文本指令就知道该做什么。

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

Figure 2.1: 零射击,一次性和少量射击与传统的微调相对比。上面的面板显示了使用语言模型执行任务的四种方法-微调是传统的方法,而零,一,少量射击,我们在这项工作中研究,只需要在测试时仅进行前向传递即可完成任务。我们通常在少量射击设置中向模型提供几十个示例。附录G中可以找到所有任务描述,示例和提示的确切措辞。

2.1-2.3节分别详细介绍了我们的模型,训练数据和训练过程。第2.4节讨论了我们如何进行少量射击,一次性和零射击评估的细节。

2.1 模型和体系结构

我们使用与GPT-2 [RWC + 19]相同的模型和体系结构,包括其中描述的修改后的初始化,预规范化和可逆令牌化,除了我们在变压器层中使用交替密集和局部带状稀疏注意模式,类似于Sparse Transformer [CGRS19]。为了研究机器学习性能对模型大小的依赖性,我们训练了8种不同大小的模型,范围从1.25亿参数到17.5亿参数,其中最后一个是我们称之为GPT-3的模型。先前的研究[KMH + 20]表明,随着足够的训练数据,验证损失的缩放应该大致是一个平滑的幂律函数,其中大小为参数;训练许多不同大小的模型可以让我们既测试验证损失的假设,又测试下游语言任务的假设。

Table 2.1显示了我们8个模型的大小和体系结构。这里nparams是可训练参数的总数,nlayers是总层数,dmodel是每个瓶颈层中的单元数(我们总是将前馈层的大小设为瓶颈层的四倍,dff = 4∗dmodel),dhead是每个注意头的维度。所有模型都使用nctx = 2048个令牌的上下文窗口。我们沿着深度和宽度维度将模型划分为多个GPU,以最小化节点之间的数据传输。每个模型的精确架构参数是基于GPU上模型布局的计算效率和负载平衡来选择的。先前的研究[KMH + 20]表明,验证损失对这些参数的敏感性不强,在合理的范围内。
Table 2.1: 我们训练的模型的大小,体系结构和学习超参数(令牌批量大小和学习率)。所有模型总共训练了30亿个令牌。

2.2 训练数据集

语言模型的数据集迅速扩大,最终形成了几乎一万亿字的Common Crawl数据集2 [RSR + 19]。这个数据集的大小足以训练我们最大的模型,而不必再次更新相同的序列。但是,我们发现未经过滤或轻微过滤的Common Crawl版本的质量要低于更多精心编辑的数据集。因此,我们采取了3个步骤来提高数据集的平均质量:(1)我们下载并根据与一系列高质量参考语料库的相似性过滤了CommonCrawl的版本,(2)我们在文档级别,跨数据集内部和跨数据集之间进行模糊去重,以防止冗余并保持我们保留的验证集作为过度拟合的准确度量,(3)我们还将已知的高质量参考语料库添加到训练中,以增强CommonCrawl并提高其多样性。

关于前两点(处理Common Crawl)的详细信息请参见附录A。对于第三点,我们添加了几个精心编辑的高质量数据集,包括WebText数据集[RWC + 19]的扩展版本,通过长时间爬取链接收集,并首次在[KMH + 20]中描述,两个基于互联网的图书语料库(Books1和Books2)和英语维基百科。

Table 2.2显示了我们在训练中使用的数据集的最终混合。CommonCrawl数据是从2016年到2019年的41个月CommonCrawl中下载的,构成45TB的压缩纯文本,过滤后为570GB,大致相当于40亿字节对编码令牌。请注意,在训练期间,数据集不是按其大小抽样,而是我们认为质量更高的数据集被抽样更频繁,因此CommonCrawl和Books2数据集在训练期间不被抽样,但其他数据集被抽样2-3次。这实际上接受了一小部分过度拟合,以换取更高质量的训练数据

Figure 2.2: 训练期间使用的总计算量。根据《神经语言模型的扩展定律》[KMH + 20]中的分析,我们训练的模型比典型的模型要大得多,但令牌数量要少得多。因此,尽管GPT-3 3B比RoBERTa-Large(355M参数)大几乎10倍,但两个模型在预训练期间大约都需要50 petaflop / s-days的计算量。这些计算的方法可以在附录D中找到。
Table 2.2: 用于训练GPT-3的数据集。“训练混合中的权重”是指训练期间从给定数据集中抽取的样本的比例,我们有意不使其与数据集的大小成比例。因此,当我们训练300亿个令牌时,某些数据集在训练期间被看到多达3.4次,而其他数据集则少于一次。
语言模型在广泛的互联网数据上进行预训练的一个主要方法学问题,特别是具有记忆大量内容能力的大型模型,是由于在预训练期间无意中看到测试或开发集而导致下游任务受到污染的可能性。为了减少这种污染,我们搜索并尝试删除本文研究的所有基准测试的开发和测试集之间的任何重叠。不幸的是,过滤中的一个错误导致我们忽略了一些重叠,由于训练的成本,重新训练模型是不可行的。在第4节中,我们描述了剩余重叠的影响,在未来的工作中,我们将更加积极地消除数据污染。

2.3 训练过程

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

2.4 评估

对于少量学习,我们通过从该任务的训练集中随机抽取K个示例作为条件,由1或2个换行符限定,来评估评估集中的每个示例,具体取决于任务。对于LAMBADA和Storyclozet,没有可用的监督训练集,因此我们从开发集中抽取条件示例,并在测试集上进行评估。对于沃诺格拉德(原始版本,而不是SuperGLUE版本),只有一个数据集,因此我们直接从中抽取条件示例。

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

在涉及从几个选项中选择一个正确完成的任务(多选)中,我们提供K个上下文加正确完成的示例,然后是一个仅包含上下文的示例,并比较LM可能性的每个完成。对于大多数任务,我们比较每个令牌的可能性(以标准化长度),但是在少数数据集(ARC,OpenBookQA和RACE)上,我们通过计算P(completion | context)/ P(completion | answercontext)来标准化每个完成的无条件概率,其中answercontext是字符串“Answer:”或“A:”,用于提示完成应该是答案,但在其他方面是通用的,从而在开发集上测量到额外的好处。

对于涉及二元分类的任务,我们给出更具语义意义的选项名称(例如“真”或“假”而不是0或1),然后将任务视为多选;我们有时也会框架任务类似于[RSR + 19]所做的(参见附录G)的细节。

对于具有自由形式完成的任务,我们使用与[RSR + 19]相同的参数的波束搜索:波束宽度为4,长度惩罚α= 0.6。我们根据手头的数据集的标准使用F1相似度分数,BLEU或精确匹配来评分模型。

当公开可用时,最终结果将在测试集上报告,每个模型大小和学习设置(零,一,少)。当测试集是私有的时,我们的模型通常太大而无法适应测试服务器,因此我们在开发集上报告结果。我们确实提交到测试服务器上的一小部分数据集(SuperGLUE,TriviaQA,PiQa),我们能够使提交工作,我们只提交200B少量结果,并且报告开发集结果的其他所有内容。

3 结果

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

下面,我们评估第2节中描述的8个模型(175亿参数参数GPT-3和7个较小的模型)在各种数据集上的表现。我们将数据集分为9类,代表大致相似的任务。

在3.1节中,我们评估传统的语言建模任务和类似语言建模的任务,例如Cloze任务和句子/段落完成任务。在3.2节中,我们评估“封闭书”问答任务:需要使用模型参数中存储的信息来回答一般知识问题的任务。在3.3节中,我们评估模型在语言之间翻译(特别是一次性和少量)的能力。在3.4节中,我们评估模型在Winograd Schema类任务上的表现。在3.5节中,我们评估涉及常识推理或问答的数据集。在3.6节中,我们评估阅读理解任务,在3.7节中,我们评估SuperGLUE基准套件,在3.8节中,我们简要探讨NLI。最后,在3.9节中,我们发明了一些专门用于探测上下文学习能力的额外任务-这些任务专注于即时推理,适应技能或开放式文本合成。我们在少量,一次性和零量设置中评估所有任务。

Figure 3.1: 性能随计算的平滑缩放。性能(以交叉熵验证损失的形式衡量)随着用于训练的计算量呈幂律趋势。[KMH + 20]中观察到的幂律行为在另外两个数量级内仅有微小偏差,而不会偏离预测曲线。对于这张图,我们排除嵌入参数的计算和参数计数
Table 3.1: PTB语言建模数据集的零射击结果。由于其他许多常见的语言建模数据集是从GPT-3训练数据中包含的维基百科或其他来源派生而来,因此被省略了。a[RWC + 19]

3.1 语言建模、完形填空和完成任务

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

3.1.1 语言模型

我们计算[RWC + 19]中Penn Tree Bank(PTB)[MKM + 94]数据集的零射击困惑度。我们省略了该工作中的4个与维基百科相关的任务,因为它们完全包含在我们的训练数据中,我们还省略了由于该数据集的大部分包含在我们的训练集中而导致的10亿字基准。由于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%。
Table 3.2: 在填空和完成任务上的表现。GPT-3在LAMBADA上显着提高了SOTA,同时在两个困难的完成预测数据集上取得了令人满意的表现。a[Tur20]b[RWC + 19]c[LDL19]d[LCH + 20]
Figure 3.2: 在LAMBADA上,语言模型的少量能力会大大提高准确性。GPT-32.7B在此设置中优于17B参数Turing-NLG [Tur20]的SOTA,而GPT-3 175B将艺术水平提高了18%。请注意,零射击使用的格式与文本中描述的一次性和少量射击不同。
LAMBADA也是少量射击学习灵活性的一个示例,因为它提供了一种解决这个数据集传统上发生的问题的方法。尽管LAMBADA中的完成总是句子的最后一个单词,但标准语言模型无法知道这个细节。因此,它不仅分配概率给正确的结尾,还分配概率给段落的其他有效继续。过去已经部分解决了这个问题,使用停止词过滤器[RWC + 19](禁止“继续”单词)。少量射击设置可以让我们将任务“框定”为填空测试,并允许语言模型从示例中推断出只需要一个单词的完成。我们使用以下填空格式:

Alice was friends with Bob. Alice went to visit her friend_____.→Bob
George bought some baseball equipment, a ball, a glove, and a______.→

当以这种方式呈现示例时,GPT-3在少量射击设置中达到86.4%的准确率,比以前的最新技术水平提高了18%以上。我们观察到,少量射击性能随着模型大小的增加而大大提高。虽然这种设置使最小模型的性能降低了近20%,但对GPT-3来说,它可以提高10%的准确性。最后,填空法在一次性射击中无效,它的表现总是比零射击设置差。也许这是因为所有模型仍然需要几个示例才能识别模式。

Table 3.3: 三个开放领域QA任务的结果。与封闭书籍和开放领域设置的先前SOTA结果相比,GPT-3在少量、一次和零射击设置中均有所体现。TriviaQA少量射击结果在wiki分割测试服务器上进行评估。
一个警告是,对测试集污染的分析发现,LAMBADA数据集的一个重要少数似乎存在于我们的训练数据中-但是第4节中的分析表明对性能的影响微乎其微。

3.1.3 HellaSwag

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

3.1.4 StoryCloze

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

3.2 闭卷问答

在本节中,我们衡量GPT-3回答关于广泛的事实知识的问题的能力。由于可能的查询数量巨大,通常使用信息检索系统来查找相关文本,并结合学习模型来生成给定问题和检索文本的答案。由于这种设置允许系统搜索和调整可能包含答案的文本,因此被称为“开放式书籍”。[RRS20]最近证明,大型语言模型可以直接回答问题,而无需调整辅助信息,表现出令人惊讶的好。他们将这种更严格的评估设置称为“封闭式书籍”。他们的工作表明,即使是更高容量的模型也可以表现得更好,我们用GPT-3来测试这一假设。我们使用[RRS20]中的3个数据集评估GPT-3:Natural Questions [KPR + 19],WebQuestions [BCFL13]和TriviaQA [JCWZ17],使用相同的分割。请注意,除了所有结果都处于封闭式设置外,我们使用少量射击,一次性射击和零射击评估也代表了比以前的封闭式QA工作更严格的设置:除了不允许使用外部内容外,还不允许在Q&A数据集本身上进行微调。GPT-3的结果如表3.3所示。在TriviaQA上,我们在零射击设置中达到64.3%,在一次性射击设置中达到68.0%,在少量射击设置中达到71.2%。零射击结果已经超过了经过微调的T5-11B 14.2%,也超过了在预训练期间使用Q&A定制跨度预测的版本3.8%。一次性结果提高了3.7%,并且与一个开放领域QA系统的SOTA相匹配,该系统不仅进行微调,还利用了一个15.3B参数密集向量索引的21M文档[LPP + 20]。GPT-3的少量射击结果进一步提高了性能,超过了3.2%。

在WebQuestions(WebQs)上,GPT-3在零射击设置中达到14.4%,在一次性射击设置中达到25.3%,在少量射击设置中达到41.5%。这与经过微调的T5-11B的37.4%和使用Q&A特定预训练程序的经过微调的T5-11B + SSM的44.7%相比。在少量射击设置中,GPT-3接近最先进的微调模型的性能。值得注意的是,与TriviaQA相比,WebQS从零射击到少量射击(实际上其零射击和一次性射击性能很差)有着更大的收益,这也许表明WebQs问题及其答案的风格对GPT-3来说是超出分布的。尽管如此,GPT-3似乎能够适应这种分布,在少量射击设置中恢复强大的性能。

Figure 3.3: 在TriviaQA上,GPT3的性能随模型大小平稳增长,表明语言模型随着容量的增加继续吸收知识。一次性和少量射击性能比零射击行为有显著收益,匹配并超过了SOTA微调开放领域模型RAG [LPP + 20]的性能。
在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),可能反映了模型容量直接转换为模型参数中吸收的“知识”的想法。

翻译

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

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

结果如表3.4所示。零射击GPT-3,只接收任务的自然语言描述,仍然低于最近的无监督NMT结果。但是,仅为每个翻译任务提供一个示例演示,可以将性能提高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,该SOTA是通过无监督预训练,608K标记示例的监督微调以及反向翻译[LHCG19b]实现的。

Figure 3.3:少量GPT-3在翻译成英语时,比先前的无监督NMT工作提高了5个BLEU,反映了它作为英语LM的优势。我们使用multi-bleu.perl和XLM的令牌化测量WMT'14 Fr↔En,WMT'16 De↔En和WMT'16 Ro↔En数据集的BLEU分数,以便与先前的无监督NMT工作最接近地进行比较。附录H中报告的SacreBLEUf[Pos18]结果。下划线表示无监督或少量射击SOTA,粗体表示带有相对置信度的监督SOTA。a[EOAG18]b[DHKH14]c[WXH + 18]d[oR16]e[LGG + 20]f[SacreBLEU签名:BLEU + case.mixed + numrefs.1 + smooth.exp + tok.intl + version.1.2.20]
Figure 3.4:随着模型规模的增加,6种语言对的少量翻译性能。在所有数据集上,随着模型的扩展,性能都有一个一致的改善趋势,以及翻译成英语的倾向比翻译成英语更强的趋势。
Table 3.5: 我们在Winograd模式和对抗Winogrande数据集的WSC273版本上的结果。有关Winograd测试集可能受到污染的详细信息,请参见第4节。a[SBBC19]b[LYN+20]
随着模型容量的增加,对抗Winogrande数据集的零,一,少射击性能。缩放相对平稳,少量学习的收益随模型大小增加,少量GPT-3 175B与微调的RoBERTA-large具有竞争力。

最后,在所有语言对和三种设置(零,一,少)中,随着模型容量的增加,性能都有一个平稳的改善趋势。这在图3.4中以少量射击结果为例,并且在附录H中显示了所有三种设置的缩放情况。

3.4 Winograd-Style任务

Winograd模式挑战[LDM12]是NLP中的一项经典任务,涉及确定代词指的是哪个单词,当代词在语法上模糊但在语义上对人类来说是明确的时候。最近,微调的语言模型在原始Winograd数据集上取得了接近人类的性能,但像对抗挖掘的Winogrande数据集[SBBC19]这样的更困难的版本仍然明显落后于人类性能。我们按照零,一,少射击设置,测试GPT-3在Winograd和Winogrande上的性能。在Winograd上,我们使用[RWC + 19]中描述的相同的“部分评估”方法,在273个Winograd模式上测试GPT-3。请注意,此设置与SuperGLUE基准测试中的WSC任务略有不同,它被呈现为二进制分类,并需要实体提取才能转换为本节中描述的形式。在Winograd上,GPT-3在零射击,一射击和少射击设置中分别达到88.3%,89.7%和88.6%,没有明显的上下文学习,但在所有情况下都取得了强大的结果,仅比最新技术和估计的人类性能低几个点。我们注意到,污染分析发现了一些Winograd模式在训练数据中,但这似乎只对结果产生了很小的影响(见第4节)。在更困难的Winogrande数据集上,我们确实发现了上下文学习的收益:GPT-3在零射击设置中达到70.2%,在一射击设置中达到73.2%,在少射击设置中达到77.7%。相比之下,微调的RoBERTA模型达到79%,最新技术是用微调的高容量模型(T5)达到84.6%,[SBBC19]报道的人类性能为94.0%。
表3.6:GPT-3在三个常识推理任务PIQA,ARC和OpenBookQA上的结果。GPT-3少射击PIQA结果在测试服务器上进行评估。有关PIQA测试集可能受到污染的详细信息,请参见第4节
图3.6:GPT-3在零射击,一射击和少射击设置中的PIQA结果。最大的模型在所有三种情况下在开发集上的分数都超过了任务上记录的最佳分数。

3.5 Common Sense Reasoning

在这里插入图片描述
接下来,我们考虑三个尝试捕获物理或科学推理的数据集,这与句子完成,阅读理解或广泛的知识问答有所不同。第一个,PhysicalQA(PIQA)[BZB + 19],询问关于物理世界如何运作的常识问题,旨在探测对世界的基础理解。GPT-3在零射击,一射击和少射击(最后在PIQA的测试服务器上测量)中均达到81.0%的准确率。这与微调的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要差得多,其挑战集上的少射击结果比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 Reading Comprehension

接下来,我们评估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展示了它的少射击学习能力,与零射击设置相比,提高了近10 F1(达到69.8)。这使它略胜于原始论文中最佳的微调结果。在RACE [LXL + 17]中,一个中学和高中英语考试的多项选择数据集,GPT-3表现相对较弱,只与最早利用上下文表示的工作相比,仍然落后SOTA 45%。

3.7 SuperGLUE

为了更好地聚合NLP任务的结果,并以更系统的方式与BERT和RoBERTa等流行模型进行比较,我们还评估了GPT-3在标准化数据集集合SuperGLUE基准测试[WPN + 19] [WPN + 19] [CLC + 19] [DMST19] [RBG11] [KCR + 18] [ZLL + 18] [DGM06] [BHDD + 06] [GMDD07] [BDD + 09] [PCC18] [PHR + 18]上的表现。表3.8显示了GPT-3在SuperGLUE数据集上的测试集性能。在少射击设置中,我们为所有任务使用32个示例,这些示例是从训练集中随机抽取的。除了WSC和MultiRC之外,我们为每个问题采样一组新的示例来使用上下文。对于WSC和MultiRC,我们使用从训练集中随机抽取的相同组示例作为我们评估的所有问题的上下文。我们观察到GPT-3在任务上的表现有很大的差异。在COPA和ReCoRD中,GPT-3在一次射击和少射击设置中达到了接近SOTA的性能,COPA仅比SOTA低几分,并在排行榜上获得第二名,第一名由一个微调的110亿参数模型(T5)拿到。在WSC上,性能仍然相对强劲,在少射击设置中达到80.1%(请注意,GPT-3在第3.4节中描述的原始温诺格拉德数据集上达到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)。我们将Kup缩放到每个任务32个示例,之后,额外的示例将无法可靠地适应我们的上下文。当扫描K的值时,我们发现GPT-3需要每个任务不到八个总示例才能超越微调的BERT-Large在整体SuperGLUE分数上。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.8 NLI

自然语言推理(NLI)[Fyo00]涉及理解两个句子之间的关系。实际上,这个任务通常被结构化为两个或三个类别的分类问题,其中模型分类第二句是否从逻辑上跟随第一句,与第一句矛盾,或者可能是真实的(中立)。SuperGLUE包括一个NLI数据集RTE,它评估了该任务的二进制版本。在RTE上,只有最大版本的GPT-3在任何评估设置中都比随机表现得更好(56%),但在少射击设置中,GPT-3的表现与单任务微调的BERT Large类似。我们还评估了最近推出的对抗性自然语言推理(ANLI)数据集[NWD + 19]。 ANLI是一个困难的数据集,采用了三轮(R1,R2和R3)的一系列对抗挖掘的自然语言推理问题。类似于RTE,我们的所有模型都比GPT-3小,即使在少射击设置中也几乎等于随机机会(约33%),而GPT-3本身在第三轮中显示出生命迹象。图3.9突出显示了ANLI R3的结果,所有轮次的完整结果可以在附录H中找到。这些RTE和ANLI的结果表明,NLI仍然是语言模型非常困难的任务,它们才刚刚开始显示出进步的迹象。

在这里插入图片描述

3.9 Synthetic and Qualitative Tasks

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

3.9.1 Arithmetic

为了测试GPT-3执行简单算术运算而无需特定任务的训练,我们开发了一个小电池,其中包括10个测试,要求GPT-3用自然语言提出一个简单的算术问题:
•2位数加法(2D +)- 要求模型从[0,100)中均匀采样两个整数,并以问题的形式表达,例如“Q:48加76是多少?A:124。”
•2位数减法(2D-)- 要求模型从[0,100)中均匀采样两个整数,答案可能为负数。例如:“Q:34减53是多少?A:-19”。
•3位数加法(3D +)- 与2位数加法相同,只是数字均匀采样自[0,1000)。
•3位数减法(3D-)- 与2位数减法相同,只是数字均匀采样自[0,1000)。
•4位数加法(4D +)- 与3位数加法相同,只是均匀采样自[0,10000)。
•4位数减法(4D-)- 与3位数减法相同,只是均匀采样自[0,10000)。
•5位数加法(5D +)- 与3位数加法相同,只是均匀采样自[0,100000)。
•5位数减法(5D-)- 与3位数减法相同,只是均匀采样自[0,100000)。
•2位数乘法(2Dx)- 要求模型从[0,100)中均匀采样两个整数,例如“Q:24乘以42是多少?A:1008”。
•一位复合数(1DC)- 要求模型对三个1位数执行复合操作,最后两个数字用括号括起来。例如,“Q:6 +(4 * 8)是多少?A:38”。这三个1位数从[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所示,小型模型在所有这些任务上表现都不佳-即使是175亿参数的最大模型(第二大模型)也只能解决2位数加减法的一半,其他操作的准确率不到10%。与少射击性能相比,一射击和零射击性能有所降低,表明适应任务(或者至少识别任务)对于正确执行这些计算是很重要的。尽管如此,一射击性能仍然很强,甚至完全GPT-3的零射击性能也明显优于所有较小模型的少射击学习。完整GPT-3的三种设置如表3.9所示,所有三种设置的模型容量缩放如附录H所示。

为了检查模型是否只是记忆特定的算术问题,我们从测试集中取出3位数算术问题,并以“ + =”和“ plus ”的形式在训练数据中搜索它们。在2,000个加法问题中,我们只找到17个匹配(0.8%),在2,000个减法问题中,我们只找到2个匹配(0.1%),表明正确答案中只有微不足道的一部分可以被记忆。此外,检查错误答案可以发现模型经常犯错,例如不进位“1”,表明它实际上正在尝试执行相关计算,而不是记忆表格。总的来说,GPT-3在少射击、一射击甚至零射击设置中,在中等复杂的算术方面表现出合理的熟练程度。

3.9.2 Word Scrambling and Manipulation Tasks

为了测试GPT-3从少量示例中学习新的符号操作的能力,我们设计了一个小型电池,其中包含5个“字符操作”任务。每个任务都涉及给出模型一个由混淆、添加或删除字符组合而成的单词,并要求其恢复原始单词。这5个任务是:
•单词中的循环字母(CL)-给出一个单词,其字母被循环,然后是“=”符号,期望输出原始单词。例如,它可能被给出“lyinevitab”,应输出“inevitably”。
•除第一个和最后一个字符外的所有字母的变位(A1)-给出一个单词,其中除了第一个和最后一个字母外的所有字母都被随机打乱,并必须输出原始单词。例如:criroptuon = corruption。
•除第一个和最后两个字符外的所有字母的变位(A2)-给出一个单词,其中除了第一个和最后两个字母外的所有字母都被随机打乱,并必须恢复原始单词。例如:opoepnnt→opponent。
•单词中的随机插入(RI)-在单词的每个字母之间插入一个随机的标点符号或空格字符,模型必须输出原始单词。例如:s.u!c/c!e.s s i/o/n = succession。
•反转单词(RW)-给出一个倒着写的单词,必须输出原始单词。例如:stcejbo→objects。对于每个任务,我们生成10,000个示例,这些示例是根据[Nor09]测量的长度超过4个字符且小于15个字符的最常见的10,000个单词。少射击结果如

在一次射击设置中,性能明显较弱(降低一半或更多),在零射击设置中,模型很少能够执行任何任务(表3.10)。这表明,模型确实似乎在测试时学习这些任务,因为模型无法零射击执行它们,而它们的人工性质使它们不太可能出现在预训练数据中(尽管我们无法确定这一点)。我们可以通过绘制“上下文学习曲线”来进一步量化性能,该曲线显示任务性能与上下文示例数量的函数关系。我们在图1.2中显示了符号插入任务的上下文学习曲线。我们可以看到,较大的模型能够越来越有效地利用上下文信息,包括任务示例和自然语言任务描述。最后,值得一提的是,解决这些任务需要字符级操作,而我们的BPE编码是在一个单词的重要部分上操作的(平均值为每个令牌∼0.7个单词),因此,从LM的角度来看,成功完成这些任务不仅需要操纵BPE令牌,还需要理解和拆分它们的子结构。此外,CL,A1和A2不是双射(即,未混淆的单词不是混淆单词的确定函数),需要模型执行一些搜索才能找到正确的反混淆。因此,所涉及的技能似乎需要非平凡的模式匹配和计算。

3.9.3 SAT Analogies

为了测试GPT-3在与文本的典型分布相比有些不寻常的另一项任务上,我们收集了374个“SAT类比”问题[TLBS03]。类比是一种多项选择题,2005年之前构成了SAT大学入学考试的一个部分。典型的例子是“大胆的是勇敢,(a)虔诚的是虚伪,(b)匿名的是身份,(c)懊悔的是坏事,(d)有害的是结果,(e)易受影响的是诱惑”。学生应该选择五个单词对中与原始单词对具有相同关系的单词对;在这个例子中,答案是“虔诚的是虚伪”。在这项任务中,GPT-3在少量设置中达到65.2%,在一次设置中达到59.1%,在零射击设置中达到53.7%,而大学申请人的平均得分为57%[TL05](随机猜测得分为20%)。如图3.12所示,结果随规模增加而改善,全部1.75万亿模型比1.3万亿参数模型提高了10%以上。
在这里插入图片描述

3.9.4 News Article Generation

先前的生成语言模型通过从给定人类编写的提示(包含新闻故事的合理第一句)的模型中有条件地采样,定性地测试了它们生成合成“新闻文章”的能力[RWC + 19]。与[RWC + 19]相比,用于训练GPT-3的数据集更少地倾向于新闻文章,因此通过原始无条件样本来尝试生成新闻文章效果不佳-例如,GPT-3经常将所提出的“新闻文章”的第一句解释为推文,然后发布合成回复或后续推文。为了解决这个问题,我们通过在模型的上下文中提供三篇以前的新闻文章来利用GPT-3的少量学习能力。有了所提议的下一篇文章的标题和副标题,模型能够可靠地生成“新闻”类型的短文章。为了衡量GPT-3生成新闻文章的质量(我们相信这可能与一般条件样本生成质量有关),我们决定衡量人类区分GPT-3生成的文章与真实文章的能力。Kreps等人[KMB20]和Zellers等人[ZHR + 19]也进行了类似的工作。生成语言模型被训练以匹配人类生成的内容分布,因此人类(不)能够区分这两者可能是质量的重要衡量标准。3

为了查看人类能够检测模型生成的文本的程度,我们从网站newser.com中任意选择了25篇文章的标题和副标题(平均长度:215个字)。然后,我们从125M到175B(GPT-3)参数(平均长度:200个字)的四种语言模型中生成这些标题和副标题的完成内容。对于每个模型,我们向80多名美国参与者提供了一个测验,其中包括这些真实的标题和副标题,以及由人类编写的文章或由模型生成的文章4。参与者被要求选择文章是“非常可能由人类编写”,“更可能由人类编写”,“我不知道”,“更可能由机器编写”还是“非常可能由机器编写”。我们选择的文章不在模型的训练数据中,模型输出是经过格式化和程序选择的,以防止人类挑选。所有模型都使用相同的上下文来调节输出,并且使用相同的上下文大小进行预训练,并且使用相同的文章标题和副标题作为每个模型的提示。但是,我们还进行了一项实验,以控制参与者的努力和注意力,该实验遵循相同的格式,但涉及有意识的糟糕的模型生成文章。这是通过生成“控制模型”的文章来实现的:一个没有上下文,输出随机性增加的160M参数模型。

在这里插入图片描述
平均人类准确度(每位参与者正确分配与非中性分配的比率)在检测有意识的糟糕文章是模型生成的情况下为∼86%,其中50%是机会水平表现。相比之下,检测由175B参数模型生成的文章的人类准确度仅略高于机会水平,为∼52%(见表3.11)。[5]人类检测模型生成的文本的能力会随着模型大小的增加而降低:随着模型大小的增加,似乎存在一种趋势,即机会准确度,而人类检测GPT-3接近机会。[6]尽管参与者随着模型大小的增加而花费更多的时间(见附录E),但这是事实。GPT-3的合成文章的示例见图3.14和3.15.[^7]根据评估,其中许多文本很难让人类区分出真实的人类内容。事实上的不准确可以作为文章是模型生成的指标,因为与人类作者不同,模型无法访问文章标题所指的特定事实或文章何时被写入。其他指标包括重复,不合逻辑和不寻常的措辞,尽管这些往往足够微妙,以至于没有被注意到。Ippolito等人[IDCBE19]关于语言模型检测的相关工作表明,像GR O V E R[ZHR + 19]和GLTR[GSR19]这样的自动鉴别器可能比人类评估者更容易检测模型生成的文本。这些模型的自动检测可能是未来研究的一个有前途的领域。

Ippolito等人[IDCBE19]还指出,随着人类观察更多令牌,人类检测模型生成的文本的准确度会增加。为了对人类检测GPT-3 175B生成的较长新闻文章的能力有一个初步的调查,我们从路透社选择了12篇世界新闻文章,平均长度为569个字,并从GPT-3生成了这些文章的完成内容,平均长度为498个字(比我们最初的实验长出298个字)。按照上述方法,我们进行了两项实验,每项实验都在80多名美国参与者中进行,以比较人类检测GPT-3生成的文章和控制模型的能力。我们发现,检测控制模型中有意识的糟糕较长文章的平均人类准确度为∼88%,而检测由GPT-3 175B生成的较长文章的平均人类准确度仍然略高于机会水平,为∼52%(见表3.12)。这表明,对于大约500个字长的新闻文章,GPT-3仍然会产生人类难以区分的文章

[^5] We use a two-sample Student’s T-Test to test for significant difference between the means of the participant accuracies of eachmodel and the control model and report the normalized difference in the means (as the t-statistic) and the p-value.
[^6] If a model consistently produces texts that are more impressive than human articles, it is possible that human performance onthis task would drop below 50%. Indeed, many individual participants scored below 50% on this task.
[^7] Additional non-news samples can be found in Appendix F.

3.9.5 Learning and Using Novel Words

发展语言学[CB78]中研究的一项任务是学习和使用新词的能力,例如仅看到一次定义就在句子中使用一个词,或者相反,仅从一次使用中推断一个词的含义。在这里,我们定性地测试GPT-3做前者的能力。具体来说,我们给GPT-3一个不存在的词的定义,例如“Gigamuru”,然后要求它在一个句子中使用它。我们提供一到五个先前的例子,每个例子都是一个(单独的)不存在的词被定义并用于一个句子中,因此这个任务在广泛任务的先前例子中是少数示例,而在特定词中是一次性的。表3.16显示了我们生成的6个例子;所有的定义都是人类生成的,第一个答案是人类生成的,而后续答案是由GPT-3生成的。这些例子是连续在一个坐位上生成的,我们没有省略或重复尝试任何提示。在所有情况下,生成的句子似乎是正确的或至少是合理的使用该词。在最后一句中,模型为单词“screeg”生成了一个合理的变位(即“screeghed”),尽管使用该词有点尴尬(“screeghed at each other”),尽管从描述玩具剑斗的意义上来说是合理的。总的来说,GPT-3似乎至少熟练地使用新词句子中的任务。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.9.6 Correcting English Grammar

另一个适合少数示例学习的任务是纠正英语语法。我们通过给出形式为“较差的英语输入:<句子>\n良好的英语输出:<句子>”的提示来用GPT-3在少数示例设置中测试这一点。我们给GPT-3一个人类生成的纠正,然后要求它纠正5个(再次没有任何省略或重复)。结果如图3.17所示。

4 Measuring and Preventing Memorization Of Benchmarks

由于我们的训练数据来源于互联网,因此有可能我们的模型已经在我们的基准测试集上进行了训练。准确检测来自互联网规模数据集的测试污染是一个没有确定的最佳实践的新领域。虽然在不调查污染的情况下训练大型模型是常见的做法,但鉴于预训练数据集的规模越来越大,我们认为这个问题变得越来越重要。这种担忧不仅是假设性的。第一篇在Common Crawl数据上训练语言模型的论文[TL18]检测并删除了一个与他们的评估数据集重叠的训练文档。其他研究,如GPT-2[RWC + 19]也进行了事后重叠分析。他们的研究相对令人鼓舞,发现尽管模型在训练和测试之间重叠的数据上表现得更好,但由于受污染的数据量很小(通常只有几个百分点),这并没有显着影响报告的结果。GPT-3的运行机制有些不同。一方面,数据集和模型大小比GPT-2使用的大约两个数量级大,包括大量的Common Crawl,增加了污染和记忆的潜力。另一方面,正是由于大量的数据,即使是GPT-3 175B也没有通过与它重复的保留验证集相对的显着量来过度拟合其训练集(图4.1)。因此,我们预计污染可能是经常发生的,但其影响可能不像人们担心的那样大。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们最初试图通过主动搜索并尝试删除本文研究的所有基准测试集的训练数据和开发数据集之间的任何重叠来解决污染问题。不幸的是,一个错误导致只有部分删除了所有检测到的重叠。由于训练的成本,重新训练模型是不可行的。为了解决这个问题,我们详细研究了剩余检测到的重叠如何影响结果。对于每个基准,我们生成一个“干净”版本,它删除了所有潜在泄漏的示例,大致定义为与预训练集中的任何内容有13克重叠的示例(或者当它小于13克时与整个示例重叠)。目标是非常保守地标记任何可能污染的东西,以便产生一个清洁的子集,可以高度确信地免受污染。具体程序详见附录C。然后,我们评估GPT-3在这些干净的基准上,并与原始分数进行比较。如果清洁子集的分数与整个数据集的分数相似,则表明即使存在污染,也不会对报告的结果产生重大影响。如果清洁子集的分数较低,则表明污染可能会使结果夸大。结果概括如图4.2所示。尽管潜在的污染往往很高(四分之一的基准得分超过50%),但在大多数情况下,性能变化只是微不足道的,我们没有看到污染水平和性能差异相关的证据。我们得出结论,要么我们的保守方法大大高估了污染,要么污染对性能的影响很小。

下面,我们将更详细地回顾一下几个特定情况,即(1)模型在清洁版本上表现明显更差,或(2)潜在污染非常高,这使得测量性能差异变得困难。我们的分析标记了六组基准测试需要进一步调查:单词混淆,阅读理解(QuAC,SQuAD2,DROP),PIQA,Winograd,语言建模任务(Wikitext任务,1BW)和德语到英语翻译。由于我们的重叠分析旨在极其保守,我们希望它能产生一些假阳性。我们下面概括每组任务的结果:
•阅读理解:我们的初步分析标记了QuAC,SQuAD2和DROP的任务示例中超过90%的示例可能受到污染,因此污染程度很高,甚至很难在清洁子集上测量差异。但是,经过手动检查,我们发现,在所有3个数据集中,对于我们检查的每个重叠,源文本都存在于我们的训练数据中,但问题/答案对不存在,这意味着模型只能获得背景信息,而不能记住特定问题的答案。
•德语翻译:我们发现WMT16德英测试集中25%的示例被标记为可能受到污染,相关的总效应大小为1-2 BLEU。经检查,没有一个被标记的示例包含类似NMT训练数据的配对句子,而碰撞主要是新闻中讨论的事件片段的单语匹配。
•反转单词和字谜:请记住,这些任务的形式是“alaok = koala”。由于这些任务的短时间,我们使用2克重叠(忽略标点符号)进行过滤。检查标记的重叠后,我们发现它们通常不是训练集中真正的反转或拆字的实例,而是回文或微不足道的拆字,例如“kayak = kayak”。重叠量很小,但是删除了这些微不足道的任务会增加难度,从而产生虚假信号。与此相关,符号插入任务显示出高重叠,但对性能没有影响-这是因为该任务涉及从单词中删除非字母字符,而重叠分析本身忽略了这些字符,导致许多虚假匹配。
•PIQA:重叠分析标记了29%的示例受到污染,并在清洁子集上观察到3个百分点的绝对减少(相对减少4%)的性能。尽管测试数据集是在我们的训练集创建后发布的,其标签是隐藏的,但是众包数据集创建者使用的一些网页包含在我们的训练集中。我们发现在25倍较小的模型中也有类似的减少,该模型的记忆能力要小得多,这使我们怀疑这种转变可能是统计偏差,而不是记忆;工人复制的示例可能只是更容易。不幸的是,我们无法严格证明这一假设。因此,我们用星号标记我们的PIQA结果,以表示这种潜在的污染。
•Winograd:重叠分析标记了45%的示例,并在清洁子集上发现2.6%的性能下降。检查重叠数据点显示,132个Winograd模式实际上存在于我们的训练集中,尽管以与模型不同的格式呈现。尽管性能下降很小,但我们在主文章中仍用星号标记我们的Winograd结果。语言建模:我们发现GPT-2测量的4个维基百科语言建模基准以及儿童书测试数据集几乎完全包含在我们的训练数据中。由于我们无法可靠地提取清洁子集,因此我们不报告这些数据集的结果,即使我们在开始这项工作时也有意这样做。我们注意到,由于它的年龄,Penn Tree Bank没有受到影响,因此成为我们的主要语言建模基准。

我们还检查了污染高但性能影响接近于零的数据集,仅仅是为了验证实际污染的程度。这些似乎经常包含假阳性。它们要么没有实际污染,要么没有暴露任务答案的污染。一个值得注意的例外是LAMBADA,它似乎有大量真正的污染,但性能的影响很小,清洁子集的得分仅比全数据集低0.5%。此外,严格来说,我们的填空格式排除了最简单的记忆形式。尽管如此,由于我们在本文中在LAMBADA上取得了非常大的进步,因此在结果部分中提到了潜在的污染。我们污染分析的一个重要局限性是我们无法确定清洁子集是从原始数据集中抽取的。记忆仍然可能会抬高结果,但同时也会被某种统计偏差恰好抵消,导致清洁子集变得更容易。然而,接近零的大量变化表明这种情况不太可能发生,我们也没有注意到小型模型的变化,这些模型不太可能被记忆。总的来说,我们已经尽最大努力测量和记录数据污染的影响,并根据严重程度注意或直接删除有问题的结果。在设计基准和训练模型时,该领域还有很多工作要做来解决这个重要而微妙的问题。有关我们分析的更详细解释,请参阅附录C。

5 Limitations

GPT-3及其分析存在许多限制。下面我们将描述其中一些,并提出未来工作的方向。首先,尽管GPT-3的定量和定性改进非常显著,特别是与其直接前任GPT-2相比,但它在文本合成和几项NLP任务中仍然存在明显的弱点。在文本合成方面,尽管整体质量很高,GPT-3样本有时会在文档级别上重复自身的语义,在足够长的段落中开始失去连贯性,相互矛盾,偶尔包含不合逻辑的句子或段落。我们将发布一个由500个未经策划的无条件样本组成的集合,以帮助更好地了解GPT-3在文本合成方面的局限性和优势。在离散语言任务领域,我们非正式地注意到,尽管GPT-3在某些数据集(例如PIQA[BZB + 19])上表现良好,但它似乎在“常识物理”方面有特殊的困难。具体而言,GPT-3在“如果我把奶酪放进冰箱,它会融化吗?”这类问题上有困难。定量而言,GPT-3在我们的基准测试套件中的上下文学习性能存在一些显着差距,如第3节所述,特别是在一些“比较”任务上,它的一次性甚至少数次性评估几乎没有比机会更好,例如确定句子中两个单词是否使用相同的方式,或者一个句子是否意味着另一个(分别为WIC和ANLI),以及阅读理解任务的子集。考虑到GPT-3在许多其他任务上的强大的少数击表现,这一点尤其引人注目。

本文描述的一般方法的一个更根本的局限性是,它可能最终会遇到(或已经遇到)预训练目标的局限性。我们目前的目标将每个令牌平等地加权,缺乏对预测最重要的内容以及不太重要的内容的概念。[RRS20]展示了定制预测对感兴趣实体的好处。此外,使用自我监督的目标,任务规范依赖于将所需任务强加到预测问题中,而最终,有用的语言系统(例如虚拟助手)可能更好地被视为采取目标导向的行动,而不仅仅是做预测。最后,大型预训练语言模型没有基于其他领域的经验,例如视频或现实世界的物理交互,因此缺乏关于世界的大量背景[BHT + 20]。出于所有这些原因,纯粹的自我监督预测可能会遇到局限,并且可能需要增强不同的方法。朝着这个方向的有希望的未来方向可能包括从人类学习目标函数[ZSW + 19a],使用强化学习进行微调,或添加其他模态,如图像以提供接地和更好的世界模型[CLY + 19]。语言模型普遍共享的另一个局限性是预训练时样本效率低下。尽管GPT-3朝着更接近人类的测试时样本效率(一次性或零次性)迈出了一步,但它在预训练期间看到的文本仍然比人类一生看到的文本多得多[Lin20]。提高预训练样本效率是未来工作的重要方向,可能来自物理世界的接地以提供额外的信息,或来自算法改进。

GPT-3中的少量学习的局限性或不确定性在于,不清楚少量学习是否在推理时间实际上从零学习新任务,还是只是识别和识别在训练期间学习的任务。这些可能性存在于一个谱系中,从训练集中的示例与测试时间的示例完全相同的分布,到识别相同的任务但以不同的格式,到适应QA等一般任务的特定风格,到完全从头学习技能。GPT-3在这个谱系中的位置也可能因任务而异。语法任务,如字母混淆或定义无意义的单词似乎特别可能是从头学习的,而翻译显然必须在预训练期间学习,尽管可能从组织和风格与测试数据非常不同的数据中学习。最终,甚至不清楚人类从零开始学习与先前示范有何不同。即使在预训练期间组织不同的示范并在测试时识别它们,对语言模型也是一种进步,但是理解少量学习如何工作仍然是未来研究的一个重要的未开发方向。

GPT-3规模的模型所关联的局限性,无论目标函数或算法如何,都是它们在执行推理时既昂贵又不方便,这可能会给这种规模的模型的实际应用带来挑战。解决这个问题的一个可能的未来方向是将大型模型提炼[HVD15]到特定任务的可操作大小。GPT-3等大型模型包含了非常广泛的技能,其中大多数对于特定任务都是不必要的,这表明原则上可以进行积极的蒸馏。蒸馏在一般情况下已经得到了很好的探索[LHCG19a],但是尚未尝试过数十亿参数的规模;应用于这种规模的模型可能会带来新的挑战和机会。最后,GPT-3具有与大多数深度学习系统相同的一些局限性:它的决策不易解释,它在新输入上的预测不一定很好校准,因为在标准基准测试中,它的性能变化要比人类大得多,它保留了它所接受训练的数据的偏差。最后一点——数据中的偏差可能导致模型产生刻板或偏见的内容——从社会角度来看是一个特别重要的问题,将在下一节更广泛的影响(第6节)中与其他问题一起讨论。

6 Broader Impacts

语言模型具有广泛的有益于社会的应用,包括代码和写作自动完成、语法辅助、游戏叙事生成、改善搜索引擎响应以及回答问题。但它们也具有潜在的有害应用。GPT-3比较小的模型提高了文本生成的质量和适应性,并增加了区分合成文本和人类书写文本的难度。因此,它有可能推进语言模型的有益和有害应用。在这里,我们主要关注改进语言模型的潜在危害,不是因为我们认为危害一定更大,而是为了刺激研究和减轻这些危害的努力。像GPT-3这样的语言模型的更广泛影响是众多的。我们重点关注两个主要问题:第6.1节中故意滥用GPT-3等语言模型的潜在可能性,以及第6.2节中GPT-3等模型中的偏差、公平性和表示问题。我们还简要讨论了能源效率问题(第6.3节)。

6.1 Misuse of Language Models

6.1.1 Potential Misuse Applications

6.1.2 Threat Actor Analysis

6.1.3 External Incentive Structures

6.2 Fairness, Bias, and Representation

6.2.1 Gender

6.2.2 Race

6.2.3 Religion

6.2.4 Future Bias and Fairness Challenges

6.3 Energy Usage

实际的大规模预训练需要大量的计算,这是耗能的:训练GPT-3175B在预训练期间消耗了几千个拍每秒天的计算量,而1.5B参数GPT-2模型只需要几十个拍每秒天的计算量(图2.2)。这意味着我们应该意识到这类模型的成本和效率,就像[SDSE19]所倡导的那样。大规模预训练的使用也为我们提供了另一种查看大型模型效率的视角——我们不仅应该考虑训练它们所消耗的资源,还应该考虑这些资源在模型的使用寿命中如何摊销,该模型随后将用于各种用途并针对特定任务进行微调。尽管像GPT-3这样的模型在训练期间消耗了大量资源,但一旦训练完成,它们可能会出人意料地高效:即使是完整的GPT-3 175B,从训练模型生成100页内容的成本也只有0.4 kW-hr左右,或者只有几分钱的能源成本。此外,像模型蒸馏[LHCG19a]这样的技术可以进一步降低这类模型的成本,让我们采用训练单个大规模模型的范式,然后为适当的上下文创建更高效的版本。算法进步也可能自然地随着时间的推移进一步提高这类模型的效率,类似于图像识别和神经机器翻译[HB20]中观察到的趋势。

7 Related Work

有几种工作致力于增加语言模型中的参数数量和/或计算量,以提高生成或任务性能。早期的工作将基于LSTM的语言模型扩展到超过10亿个参数[JVS + 16]。一种工作方法直接增加变压器模型的大小,将参数和每个令牌的FLOPS大致成比例地扩大。这种工作连续增加了模型大小:原始论文中的2.13亿个参数[VSP + 17],3亿个参数[DCLT18],15亿个参数[RWC + 19],80亿个参数[SPP + 19],110亿个参数[RSR + 19],最近17亿个参数[Tur20]。第二种工作重点是增加参数数量而不增加计算量,以增加模型存储信息的能力而不增加计算成本。这些方法依赖于条件计算框架[BLC13],具体而言,混合专家方法[SMM + 17]已被用于生成1000亿参数模型,最近50亿参数翻译模型[AJF19],尽管每次正向传递只使用少量参数。第三种方法是在不增加参数的情况下增加计算量;此方法的示例包括自适应计算时间[Gra16]和通用变压器[DGV + 18]。我们的工作重点是第一种方法(通过直接使神经网络变大来同时扩展计算和参数),并且比采用此策略的先前模型增加了10倍的模型大小。

还有几项工作系统地研究了规模对语言模型性能的影响。[KMH + 20,RRBS19,LWS + 20,HNA + 17]发现,随着自回归语言模型的扩大,损失呈平滑的幂律趋势。这项工作表明,随着模型继续扩大,这种趋势在很大程度上仍然存在(尽管图3.1中可能会检测到轻微的弯曲),我们也发现许多(但不是所有)下游任务在扩大3个数量级的情况下相对平稳地增加。另一种工作与扩展相反,试图在尽可能小的语言模型中保持较强的性能。这种方法包括ALBERT[LCG + 19]以及语言模型蒸馏的通用[HVD15]和特定于任务[SDCW19,JYS + 19,KR16]方法。这些架构和技术可能与我们的工作是互补的,可以用来减少巨型模型的延迟和内存占用。

随着微调的语言模型在许多标准基准任务上接近人类表现,人们已经致力于构建更困难或开放式任务,包括问答[KPR + 19,IBGC + 14,CCE + 18,MCKS18],阅读理解[CHI + 18,RCM19]和敌对构建的数据集,旨在为现有的语言模型构建困难[SBBC19,NWD + 19]。在这项工作中,我们在许多这些数据集上测试我们的模型。许多先前的工作专门关注问答,这构成了我们测试的任务的重要部分。最近的工作包括[RSR + 19,RRS20],它对110亿参数的语言模型进行了微调,以及[GLT + 20],它专注于在测试时间对大型语料库进行关注。我们的工作不同之处在于专注于上下文学习,但未来可以与[GLT + 20,LPP + 20]结合起来。语言模型元学习已经在[RWC + 19]中使用,尽管结果要少得多,没有系统的研究。更广泛地说,语言模型元学习具有内循环外循环结构,使其在结构上与一般ML应用的元学习类似。这里有一个广泛的文献,包括匹配网络[VBL + 16],RL2[DSC + 16],学习优化[RL16,ADG + 16,LM17]和MAML[FAL17]。我们用先前的例子填充模型的上下文的方法与RL2最为结构相似,也类似于[HYC01],即通过模型的激活在时间步骤中进行适应的内循环,而不更新权重,而外循环(在本例中只是语言模型的预训练)更新权重,并隐含地学习在推理时定义任务的适应或至少识别的能力。少量自回归密度估计已经在[RCP + 17]中探索,[GWC + 18]研究了低资源NMT作为少量学习问题。

虽然我们的少量方法的机制有所不同,但先前的工作也探索了使用预训练语言模型与梯度下降结合进行少量学习[SS20]的方法。另一个具有类似目标的子领域是半监督学习,其中UDA[XDH + 19]等方法也探索了在非常少量的标记数据可用时进行微调的方法。[MKXS18]首次将多任务模型指令形式化为监督设置,并用[RWC + 19]在语言模型中用于某些任务(如汇总)。在文本到文本变换器[RSR + 19]中也探索了以自然语言呈现任务的概念,尽管在那里它被应用于多任务微调,而不是用于没有权重更新的上下文学习。增加语言模型的一般性和转移学习能力的另一种方法是多任务学习[Car97],它对下游任务的混合进行微调,而不是单独更新每个任务的权重。如果成功的多任务学习可以允许使用单个模型来完成许多任务,而无需更新权重(类似于我们的上下文学习方法),或者可以提高新任务更新权重时的样本效率。多任务学习已经显示出一些有希望的初步结果[LGH + 15,LSP + 18],多阶段微调最近已成为某些数据集SOTA结果的标准部分[PFB18],并推动了某些任务的边界[KKS + 20],但仍受到手动策划数据集集合和设置训练课程的限制。相比之下,足够大规模的预训练似乎提供了一种“自然”的广泛任务分布,隐含地包含在预测文本本身中。未来的工作方向可能是尝试生成更广泛的显式任务集合用于多任务学习,例如通过程序生成[TFR + 17],人机交互[ZSW + 19b]或主动学习 [Mac92]。

过去两年来,语言模型的算法创新巨大,包括基于去噪的双向性[DCLT18],前缀LM[DL15]和编码器-解码器架构[LLG + 19,RSR + 19],训练期间的随机排列[YDY + 19],提高采样效率的架构[DYY + 19],数据和训练程序的改进[LOG + 19]以及嵌入参数的效率提高[LCG + 19]。许多这些技术都可以显着提高下游任务的性能。在这项工作中,我们继续专注于纯自回归语言模型,既是为了关注上下文学习性能,又是为了减少大型模型实现的复杂性。但是,很可能将这些算法进步纳入GPT-3的下游任务性能,特别是在微调设置中,将GPT-3的规模与这些算法技术相结合是未来工作的一个有希望的方向。

8 Conclusion

我们提出了一个1750亿参数的语言模型,它在零点、一点和少量设置的许多NLP任务和基准测试中表现出色,在某些情况下几乎匹配最先进的微调系统的性能,并且可以生成高质量的样本和强烈的定性性能,任务定义即时。我们记录了在不使用微调的情况下性能的大致可预测的趋势。我们还讨论了这类模型的社会影响。尽管存在许多限制和弱点,但这些结果表明,非常大的语言模型可能是开发可适应、通用语言系统的重要组成部分。

Acknowledgements

作者要感谢Ryan Lowe就论文草稿提供了详细的反馈。感谢Jakub Pachocki和Szymon Sidor建议的任务,以及Greg Brockman,Michael Petrov,Brooke Chan和Chelsea Voss帮助在OpenAI的基础设施上运行评估。感谢David Luan最初支持扩大这个项目,Irene Solaiman讨论了处理和评估偏见的方法,Harrison Edwards和Yura Burda讨论和实验上下文学习,Geoffrey Irving和Paul Christiano早期讨论语言模型缩放,Long Ouyang就人类评估实验的设计提供建议,Chris Hallacy讨论数据收集,Shan Carter帮助视觉设计。感谢数百万人创建用于模型训练的内容,以及那些参与索引或对内容投票(在WebText的情况下)的人们。此外,我们要感谢整个OpenAI基础设施和超级计算团队,使得在这个规模上训练模型成为可能。

Contributions

Tom Brown,Ben Mann,Prafulla Dhariwal,Dario Amodei,Nick Ryder,Daniel M Ziegler和Jeffrey Wu实现了大规模模型,训练基础设施和模型并行策略。
Tom Brown,Dario Amodei,Ben Mann和Nick Ryder进行了预训练实验。
Ben Mann和Alec Radford收集,过滤,去重复和对训练数据进行重叠分析。
Melanie Subbiah,Ben Mann,Dario Amodei,Jared Kaplan,Sam McCandlish,Tom Brown,Tom Henighan和Girish Sastry实现了下游任务和支持它们的软件框架,包括创建合成任务。
Jared Kaplan和Sam McCandlish最初预测巨型语言模型应该显示持续的收益,并应用缩放定律来帮助预测和指导研究的模型和数据缩放决策。
Ben Mann实现了训练期间的无替换采样。
Alec Radford最初证明了少量学习发生在语言模型中。
Jared Kaplan和Sam McCandlish表明,较大的模型在上下文中学习得更快,并系统地研究了上下文学习曲线,任务提示和评估方法。
Prafulla Dhariwal实现了代码库的早期版本,并开发了完全半精度训练的内存优化。
Rewon Child和Mark Chen开发了模型并行策略的早期版本。
Rewon Child和Scott Gray贡献了稀疏变换器。
Aditya Ramesh尝试了预训练的损失缩放策略。
Melanie Subbiah和Arvind Neelakantan实现,实验和测试波束搜索。
Pranav Shyam负责SuperGLUE,并协助连接少量学习和元学习文献。
Sandhini Agarwal进行了公平和表示分析。
Girish Sastry和Amanda Askell进行了模型的人类评估。
Ariel Herbert-Voss对恶意使用进行了威胁分析。
Gretchen Krueger编辑和红色团队论文的政策部分。
Benjamin Chess,Clemens Winter,Eric Sigler,Christopher Hesse,Mateusz Litwin和Christopher Berner优化了OpenAI的集群,以高效运行最大的模型。
Scott Gray开发了训练期间使用的快速GPU内核。
Jack Clark领导了道德影响的分析-公平和代表性,模型的人类评估以及更广泛的影响分析,并就Gretchen,Amanda,Girish,Sandhini和Ariel的工作提供建议。
Dario Amodei,Alec Radford,Tom Brown,Sam McCandlish,Nick Ryder,Jared Kaplan,Sandhini Agarwal,Amanda Askell,Girish Sastry和Jack Clark撰写了论文。
Sam McCandlish领导了模型缩放的分析,并就Tom Henighan和Jared Kaplan的工作提供建议。
Alec Radford从NLP的角度为项目提供建议,提出任务,将结果置于上下文中,并证明了权重衰减对训练的好处。
Ilya Sutskever是大规模生成可能性模型缩放的早期倡导者,并就Pranav,Prafulla,Rewon,Alec和Aditya的工作提供建议。
Dario Amodei设计并领导了研究。

(未完待续…)


  1. 在语言模型的背景下,这有时被称为“零射击转移”,但这个术语可能会产生混淆:该方法在某种意义上是“零射击”,因为没有执行梯度更新,但它通常涉及向模型提供推理时间示范,因此不是真正从零示例中学习。为了避免这种混淆,我们使用“元学习”一词来捕捉一般方法的内循环/外循环结构,并使用“上下文学习”一词来指元学习的内循环。我们进一步将描述专门化为“零射击”、“一射击”或“少射击”,具体取决于推理时提供了多少示范。这些术语旨在保持不可知论,关于模型是在推理时从头学习新任务,还是只是识别训练期间看到的模式-这是我们稍后在论文中讨论的重要问题,但“元学习”旨在包容这两种可能性,只是描述了内外循环结构。 ↩︎

  2. https://commoncrawl.org/the-data/ ↩︎

  3. This task is also relevant to the potential misuse of language models discussed in Section 6.1. ↩︎

  4. We wanted to identify how good an average person on the internet is at detecting language model outputs, so we focused onparticipants drawn from the general US population. See Appendix E for details.25 ↩︎

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提到了GPT-3模型在不同样本推理形式下的表现。其中,One-shot是指模型只使用一条样本进行推理,Few-shot是指模型使用少量样本进行推理(例如64条样本)。这些推理形式展示了GPT-3模型在处理自然语言任务时的能力。通过比较GPT-3模型和微调模型在TriviaQA数据集上的实验结果,可以看出,GPT-3模型在One-shot情况下已经能够与最好的微调模型相媲美,在Few-shot情况下甚至超过了微调模型的效果。这表明GPT-3模型在处理任务时具有较强的推理能力。然而,需要注意的是,GPT-3模型的参数量非常庞大(1750亿),在现有的硬件条件下,实际应用仍然存在一定的困难。此外,GPT-3模型采用的是从左到右的建模方式,对于需要结合上下文的NLU任务来说,GPT-3的效果可能不如预期。因此,虽然GPT-3模型在某些方面表现出强大的性能,但在实际应用中仍然面临一些挑战。引述了GPT-3模型在处理自然语言任务时的能力,特别是在One-shot和Few-shot情况下的表现。这些实验结果表明,GPT-3模型具有较强的推理能力,并且在某些情况下能够超越微调模型的效果。然而,需要注意的是,GPT-3模型的参数量非常庞大,这对于实际应用来说可能存在一些限制。此外,GPT-3模型的建模方式也可能对某些任务的效果产生一定影响。因此,在使用GPT-3模型时需要综合考虑其性能和适用性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [四两拨千斤,训练大模型的PEFT方法](https://blog.csdn.net/Solo95/article/details/131584584)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [论文笔记:Making Pre-trained Language Models Better Few-shot Learners](https://blog.csdn.net/qq_43183860/article/details/120660668)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值