原文连接
论文阅读:Language Models are Few-Shot Learners(巨无霸OpenAI GPT3 2020) - 知乎
目录
收起
摘要
1 介绍
2 方法
2.1 模型和架构
2.2 训练数据集
2.3 训练流程
2.4 评估
3 结果
3.1 语言模型、完形填空和完成任务
3.2 封闭域问答系统
3.3 机器翻译
3.4 Winograd风格的任务
3.5 常识推理
3.6 阅读理解
3.7 SuperGLUE
3.8 NLI
3.9 综合和定性任务
4 测量和防止记忆基准
5 局限性
6 更广泛的影响
6.1 语言模型的滥用
6.2 公平、偏见和代表性
6.3 资源消耗
7 相关工作
8 总结
附录
A Common Crawl过滤的详细信息
B 模型训练细节
C 测试集污染研究详情
D 用于训练语言模型的总计算量
E 合成新闻人类评估
F 来自GPT-3的其他样本
G 任务措辞和规范的详细信息
H 所有模型尺寸的所有任务的结果
GPT3 In-Context Learning,无需微调
论文作者:Tom B. Brown ,Benjamin Mann ,Nick Ryder,Melanie Subbiah, Jared Kaplan† Prafulla Dhariwal...
小虎AI珏爷:OpenAI ChatGPT前身-InstructGPT:训练语言模型,使其能够根据人的反馈来执行指令
小虎AI珏爷:ChatGPT可能的应用场景及Prompt使用方式
小虎AI珏爷:ControlNet:是时候放下画笔了,向文本到图像扩散模型添加条件控制(2023)
Language Models are Few-Shot Learners
github: https://github.com/openai/gpt-3
迷你版GPT: https://github.com/karpathy/minGPT
小虎AI珏爷:论文解析:Attention Is All You Need
小虎AI珏爷:论文阅读:BERT Pre-training of Deep Bidirectional Transformers for Language Understanding(2018)
小虎AI珏爷:论文阅读:通过生成性预训练提高自然语言理解(GPT 2018)
小虎AI珏爷:论文阅读:语言模型是无监督的多任务学习者(GPT2 2019)
小虎AI珏爷:开箱即用:UIE-通用信息抽取(2022)
GPT模型Demo:
Debuild
AllenNLP Demo
300+ GPT-3 Examples, Demos, Apps, Showcase, and NLP Use-cases | GPT-3 Demo
通俗理解GPT2 Transformer教程: The Illustrated GPT-2 (Visualizing Transformer Language Models)
微调(Finetune)GPT2 以及文本生成教程: https://colab.research.google.com/drive/1aAS-z2JhFIXDUc3Ae6JhzvMUbgnbYY8c
通俗理解GPT3: How GPT3 Works - Visualizations and Animations
ChatGPT: Optimizing Language Models for Dialogue
最近的工作表明,通过对大量文本进行预训练,然后对特定任务进行微调,在许多NLP任务和基准方面取得了实质性进展。虽然这种方法在体系结构中通常是任务无关的,但它仍然需要数千或上万个示例的特定于任务的微调数据集。相比之下,人类通常只能通过几个例子或简单的指令来执行一项新的语言任务,而当前的NLP系统在很大程度上仍难以做到这一点。在这里,论文展示了扩展语言模型可以极大地提高任务无关性、few-shot性能,有时甚至可以与以前最先进的微调方法相媲美。具体而言,论文训练了GPT-3,这是一个具有1750亿个参数的自回归语言模型,比以往任何非稀疏语言模型都多10倍,并在few-shot设置下测试了其性能。对于所有任务,GPT-3都是在没有任何梯度更新或微调的情况下应用的,任务和few-shot演示纯粹是通过与模型的文本交互来指定的。GPT-3在许多NLP数据集上都取得了很好的性能,包括机器翻译、问答和完形填空任务,以及一些需要即时推理或领域适应的任务,例如解读单词、在句子中使用新单词或执行3位数算术。同时,论文还确定了一些GPT-3的zero-shot学习仍然困难的数据集,以及一些GPT-3面临与大型网络语料库培训相关的方法学问题的数据集。最后,论文发现GPT-3可以生成新闻文章的样本,而人类评价者很难将其与人类撰写的文章区分开来。论文讨论了这一发现和GPT-3的广泛社会影响。
近年来,NLP系统中出现了一种趋势,即以越来越灵活和任务无关的方式在下游传输中使用预先训练好的语言表示。首先,使用词向量[MCCD13,PSM14]学习单层表示,并将其反馈给任务特定的体系结构,然后使用具有多层表示和上下文状态的RNN形成更强的表示[DL15,MBXS17,PNZtY18](尽管仍适用于任务特定的体系结构),最近,经过预训练的递归或Transformer语言模型[VSP+17]已经过直接微调,完全消除了对任务特定架构的需求[RNSS18、DCLT18、HR18]。
这最后一种范式在许多具有挑战性的NLP任务上取得了实质性进展,如阅读理解、问答、文本蕴涵和其他许多任务,并在新的架构和算法基础上不断进步[RSR+19、LOG+19、YDY+19、LCG+19]。然而,这种方法的一个主要限制是,虽然体系结构与任务无关,但仍然需要特定于任务的数据集和特定于任务的微调:要在所需任务上实现强大的性能,通常需要对特定于该任务的数千到几十万个示例的数据集进行微调。出于几个原因,消除这一限制是可取的。
首先,从实践的角度来看,每项新任务都需要一个大型的标记示例数据集,这限制了语言模型的适用性。存在着非常广泛的可能有用的语言任务,包括从纠正语法到生成抽象概念的示例,再到评论短篇小说的任何内容。对于许多此类任务,很难收集大型有监督的训练数据集,尤其是在每个新任务都必须重复该过程的情况下。
其次,随着模型的表达能力和训练分布的狭窄,利用训练数据中虚假相关性的潜力从根本上增加。这可能会给预训练+微调范式带来问题,在这种范式中,模型设计得很大,以便在预训练期间吸收信息,但随后会在非常狭窄的任务分布上进行微调。例如,[HLW+20]观察到,较大的模型不一定能更好地概括出分布。有证据表明,在这种范式下实现的泛化可能很差,因为该模型对训练分布过于具体,并且在其之外没有很好的泛化【YdC+19,MPL19】。因此,微调模型在特定基准上的性能,即使名义上处于人的水平,也可能夸大基本任务的实际性能【GSL+18,NK19】。
第三,人类学习大多数语言任务不需要大型有监督的数据集——自然语言中的简短指令(例如,“请告诉我这句话描述的是快乐还是悲伤”)或至多少量的演示(例如,“这里有两个勇敢的人的例子;请给出第三个勇敢的例子”)通常足以让人类执行新任务至少达到合理的能力水平。除了指出我们当前NLP技术的概念局限性外,这种适应性还具有实际优势——它允许人类无缝地混合在一起或在许多任务和技能之间切换,例如在长时间的对话中执行加法。为了广泛使用,希望有一天我们的NLP系统具有相同的流动性和通用性。
图1.1:语言模型元学习
图1.1:语言模型元学习。在无监督的预培训期间,语言模型可以培养广泛的技能和模式识别能力。然后,它在推理时使用这些能力来快速适应或识别所需的任务。我们使用术语“上下文学习”来描述这个过程的内环,它发生在每个序列的前向传递中。此图中的序列并不代表模型在预训练期间将看到的数据,但旨在表明有时在单个序列中嵌入重复的子任务。
解决这些问题的一个潜在途径是元学习——在语言模型的背景下,元学习意味着该模型在训练时发展了一系列技能和模式识别能力,然后在推理时使用这些能力来快速适应或识别所需的任务(如图1.1所示)。最近的工作【RWC+19】试图通过我们称之为“情境学习”的方式来实现这一点,将预训练好的语言模型的文本输入作为任务规范的一种形式:该模型以自然语言教学和/或任务的一些演示为条件,然后只需预测接下来会发生什么,就可以完成任务的更多实例。
虽然它已经显示出一些初步的希望,但这种方法所取得的结果仍远不如微调——例如,[RWC+19]在自然问题上只取得了4%的成绩,甚至其55个F1 CoQa成绩现在也落后于最先进水平35分以上。元学习显然需要实质性的改进,才能成为解决语言任务的实用方法。
语言模型的另一个最新趋势可能提供了一条前进的道路。近年来,transformer语言模型的容量大幅增加,从1亿个参数[RNSS18],增加到3亿个参数[DCLT18],增加到15亿个参数[RWC+19],增加到80亿个参数[SPP+19],110亿个参数[RSR+19],最后增加到170亿个参数[Tur20]。每一次增加都带来了文本合成和/或下游NLP任务的改善,有证据表明,log损失与许多下游任务密切相关,随着规模的增加,呈现平稳的改善趋势【KMH+20】。由于情境上下文学习涉及在模型参数范围内吸收许多技能和任务,因此,情境学习能力可能会随着规模的扩大而表现出类似的强劲增长。
在本文中,论文通过训练一个1750亿参数的自回归语言模型(Transformer Decoder)(称之为GPT-3)并测量其上下文学习能力来检验这一假设。具体而言,论文评估了二十多个NLP数据集上的GPT-3,以及一些旨在测试对训练集中不可能直接包含的任务的快速适应的新任务。对于每项任务,论文在3种条件下评估GPT-3:(a)“few-shot learning”,或在上下文学习中,允许尽可能多的演示,以适应模型的上下文窗口(通常为10到100),(b)“one-shot learning”,只允许一次演示,以及(c)“zero-shot learning”,不允许演示,仅向模型提供自然语言说明。GPT-3原则上也可以在传统的微调设置中进行评估,但论文将此留给未来的工作。
图1.2:大型模型越来越有效地利用上下文信息。lun'w展示了在一个简单任务中的上下文学习性能,该任务要求模型从一个单词中删除随机符号,无论是否有自然语言任务描述(见第3.9.2节)。大型模型的“情景内学习曲线”越陡峭,说明从情境信息学习任务的能力越强。在广泛的任务中看到了质量上相似的行为
图1.2 说明了论文研究的条件,并显示了需要模型从单词中删除无关符号的简单任务的few-shot学习。通过添加自然语言任务描述和模型上下文中的示例数量,模型性能得到了提高。few-shot学习也随着模型大小的增加而显著提高。虽然这种情况下的结果特别引人注目,但在论文研究的大多数任务中,模型大小和上下文中的示例数量的总体趋势都适用。论文强调,这些“学习”曲线不涉及梯度更新或微调,只是增加了作为条件作用的演示次数。
大体上,在NLP任务中,GPT-3在zero-shot和one-shot设置中取得了令人满意的结果,在few-shot设置中,有时与最先进的技术相竞争,甚至有时超过最先进的技术(尽管微调模型保持着最先进的技术)。例如,GPT-3在zero-shot设置下的CoQA上达到81.5 F1,在one-shot设置下的CoQA上达到84.0 F1,在few-shot设置下达到85.0 F1。同样,GPT-3在zero-shot设置下对TriviaQA的准确率达到64.3%,在one-shot设置下达到68.0%,在few-shot设置下达到71.2%,最后一个是相对于在相同闭卷设置下运行的微调模型而言的最先进水平。
GPT-3在测试快速适应或即时推理的任务中也表现出one-shot和few-shot熟练程度,包括解读单词、执行算术,以及在只看到定义一次的单词后在句子中使用新单词。论文还表明,在few-shot设置下,GPT-3可以生成人工评估人员难以区分的合成新闻文章。
同时,论文还发现,即使在GPT-3的范围内,很少有人在某些任务上表现不佳。这包括自然语言推理任务,如ANLI数据集,以及一些阅读理解数据集,如RACE或QuAC。通过广泛描述GPT-3的优势和劣势,包括这些局限性,论文希望刺激对语言模型中few-shot学习的研究,并提请注意最需要进步的地方。
图1.3:所有42个以准确度命名的基准的总体性能,虽然zero-shot性能随着模型大小的增加而稳步提高,但few-shot性能增长更快,这表明较大的模型更擅长上下文学习。有关标准NLP基准套件SuperGLUE的更详细分析,请参见图3.8。
图1.3显示了总体结果的启发意义,它汇总了各种任务(尽管它本身不应被视为一个严格或有意义的基准)。
论文还对“数据污染”进行了系统研究,这是一个日益严重的问题,因为在对数据集(如Common Crawl)进行高容量模型训练时,可能会包含来自测试数据集的内容,因为这些内容通常存在于web上。在本文中,论文开发了系统工具来测量数据污染并量化其扭曲效应。虽然我们发现数据污染对GPT-3在大多数数据集上的性能影响最小,但论文确实确定了一些可能导致结果膨胀的数据集,论文要么不报告这些数据集的结果,要么根据严重程度用星号标注。
除以上所有内容外,论文还训练了一系列较小的模型(从1.25亿个参数到130亿个参数),以比较它们在zero-shot、one-shot和few-shot设置下与GPT-3的性能。大体上,对于大多数任务,论文发现在所有三种设置下,模型容量的缩放相对平稳;一个值得注意的模式是,zero-shot、one-shot和few-shot性能之间的差距通常会随着模型容量的增加而增大,这可能表明较大的模型是更熟练的元学习者。
最后,鉴于GPT-3表现出的广泛能力,论文讨论了对偏见、公平和更广泛的社会影响的担忧,并尝试对GPT-3在这方面的特点进行初步分析。
本文的其余部分组织如下。在第2节中,描述了论文训练GPT-3并对其进行评估的方法和途径。第3节介绍了在zero-shot、one-shot和few-shot设置下的所有任务的结果。第4节讨论了数据污染问题(训练测试重叠)。第5节讨论了GPT-3的局限性。第6节讨论了更广泛的影响。第7节回顾相关工作,第8节总结。
图2.1:zero-shot、one-shot和few-shot,与传统微调形成对比。上面显示了使用语言模型执行任务的四种方法—传统的微调,本文的zero-sot、one-shot和few-shot要求模型在测试时仅通过向前传递来执行任务。通常在few-shot设置中为模型提供几十个示例。所有任务描述、示例和提示的确切措辞见附录
论文的基本训练前方法,包括模型、数据和训练,与[RWC+19]中描述的过程相似,模型大小、数据集大小和多样性以及训练时间的扩展相对简单。论文对上下文学习的使用也类似于【RWC+19】,但在这项工作中,论文系统地探索了不同情境下的学习环境。因此,论文从明确定义和对比我们将评估GPT-3或原则上可以评估GPT-3的不同设置开始本节。这些设置可以被视为取决于他们倾向于依赖多少特定于任务的数据。具体而言,论文可以在该光谱上确定至少四个点(见图2.1):
Fine-Tuning (FT) 微调是近年来最常用的方法,涉及通过在特定于所需任务的受有监督数据集上进行训练来更新预训练模型的权重。通常使用数千到几十万个标记的示例。微调的主要优点是在许多基准上都有很强的性能。主要缺点是,每项任务都需要一个新的大型数据集,分布外泛化能力差的可能性[MPL19],以及利用训练数据虚假特征的可能性[GSL+18,NK19],这可能导致与人的表现进行不公平的比较。在这项工作中,论文不会微调GPT-3,因为论文的重点是任务无关的性能,但GPT-3在原则上可以微调,这是未来工作的一个有希望的方向。
Few-Shot (FS) 是论文在这项工作中使用的术语,指的是在推理时给模型一些任务演示作为条件[RWC+19],但不允许权重更新的设置。如图2.1所示,对于一个典型的数据集,一个示例有一个上下文和一个所需的补全(例如一个英语句子和法语翻译),通过给出K个上下文和补全示例,然后给出一个上下文的最后一个示例,few-shot预期模型将提供补全。通常将K设置在10到100的范围内,因为这是模型上下文窗口中可以容纳的示例数( nctx=2048 )。few-shot的主要优点是,大大减少了对特定任务数据的需求,并减少了从大型但狭小的微调数据集中学习过于狭窄分布的可能性。主要缺点是,迄今为止,这种方法的结果比最先进的微调模型差得多。此外,还需要少量特定于任务的数据。正如名称所示,此处描述的语言模型的少数镜头学习与ML中其他上下文中使用的few-shot学习相关【HYC01,VBL+16】–两者都涉及基于任务广泛分布的学习(在这种情况下,隐含在预训练数据中),然后快速适应新任务。
One-Shot (1S)与few-shot相同,只是除了任务的自然语言描述外,只允许进行一次演示,如图1所示。区分one-shot、few-shot和zero-shot(见下文)的原因是,它与某些任务传达给人类的方式最为匹配。例如,当要求人工在人工服务(例如Mechanical Turk)上生成数据集时,通常会给出一个任务演示。相比之下,如果没有给出示例,有时很难交流任务的内容或格式。
Zero-Shot (0S)与one-shot相同,只是不允许进行演示,并且只为模型提供了描述任务的自然语言指令。这种方法提供了最大的便利性、鲁棒性和避免虚假相关性的可能性(除非它们广泛出现在大量训练前数据中),但也是最具挑战性的设置。在某些情况下,如果没有先前的示例,人类甚至很难理解任务的格式,因此在某些情况下,这种设置是“不公平的困难”。例如,如果有人被要求“为200米短跑制作一张世界记录表”,这一要求可能会模棱两可,因为可能不清楚该表应该采用什么格式或应该包含什么内容(即使经过仔细的澄清,也很难准确理解所需内容)。尽管如此,至少在某些设置中,zero shot最接近人类执行任务的方式——例如,在图2.1中的翻译示例中,人类可能只知道通过文本指令可以做什么。
图2.1显示了将英语翻译成法语的四种方法。在本文中,论文重点讨论zero-shot、one-shot和few-shot,目的不是将它们作为竞争的备选方案进行比较,而是作为不同的问题设置进行比较,从而在特定基准的性能和样本效率之间进行不同的权衡。论文特别强调了few-shot的结果,因为其中许多只是稍微落后于最先进的微调模型。然而,归根结底,one-shot,甚至有时zero-shot,似乎是与人的表现最公平的比较,也是未来工作的重要目标。
下面第2.1-2.3节分别详细介绍了论文的模型、训练数据和训练过程。第2.4节讨论了如何进行few-shot、one-shot和zero-shot评估的细节。
论文使用与GPT-2【RWC+19】相同的模型和架构,包括其中描述的修改初始化、预规范化和可逆标记化,但论文在Transformer层中使用交替的密集和局部带状稀疏注意模式,类似于稀疏Transformer【CGRS19】。为了研究ML性能对模型大小的依赖性,论文训练了8个不同大小的模型,从1.25亿个参数到1750亿个参数,范围超过三个数量级,最后一个是论文称之为GPT-3的模型。之前的工作【KMH+20】表明,有足够的训练数据,验证损失的缩放应近似为一个光滑的幂律,作为大小的函数;许多不同规模的训练模型都允许我们对验证损失和下游语言任务检验这一假设。
表2.1:论文训练的模型的大小、架构和学习超参数(标记中的批量大小和学习率)。所有模型都接受了总计3000亿tokens的训练
表2.1显示了论文8个模型的尺寸和体系结构。这里, nparams 是可训练参数的总数, nlayers 是层的总数, dmodel 是每个瓶颈层中的单元数(论文总是有四倍于瓶颈层大小的前馈层, dff=4∗dmodel 是每个注意力头的尺寸。所有模型都使用 nctx=2048 tokens的上下文窗口。论文沿着深度和宽度维度跨GPU划分模型,以最小化节点之间的数据传输。每个模型的精确架构参数是根据GPU模型布局中的计算效率和负载均衡来选择的。之前的工作【KMH+20】表明,在合理的大范围内,验证损失对这些参数不太敏感。
图2.2:训练期间使用的总计算。基于对神经语言模型(KMH+20)的标度律分析,论文用比通常更少的标记来训练更大的模型。因此,尽管GPT-3 3B几乎比RoBERTa Large(355M参数)大10倍,但在预训练期间,两种模型的计算速度都大约为50 PB/s-days。这些计算方法见附录D
语言模型的数据集迅速扩展,最终形成了由近万亿个单词组成的Common Crawl数据集(RSR+19)。这个数据集的大小足以训练论文最大的模型,而无需在同一序列上更新两次。然而,论文发现,Common Crawl的未过滤或轻度过滤版本往往比更精确的数据集具有更低的质量。因此,论文采取了3个步骤来提高数据集的平均质量:(1)根据与一系列高质量参考语料库的相似性下载并过滤了CommonCrawl版本,(2)在文档级别、数据集内部和数据集之间执行了模糊重复数据删除,为了防止冗余并保持我们所提供的验证集的完整性,作为过度拟合的准确度量,(3)论文还将已知的高质量参考语料库添加到训练组合中,以增强CommonCrawl并增加其多样性。
附录A中描述了前两点(Common Crawl的处理)的详细信息。对于第三点,论文添加了几个精心策划的高质量数据集,包括一个扩展版本的WebText数据集【RWC+19】,该数据集是通过在较长一段时间内删除链接收集的,首先在【KMH+20】、两个基于互联网的图书语料库(Books1和Books2)和英文维基百科中描述的。
表2.2:用于训练GPT-3的数据集。“训练组合中的权重”是指训练过程中从给定数据集中提取的部分示例,我们有意不使其与数据集的大小成比例。因此,当我们训练3000亿个tokens时,一些数据集在训练期间最多可看到3.4次,而其他数据集则不到一次
表2.2显示了论文在训练中使用的数据集的最终组合。CommonCrawl数据是从2016年至2019年的每月CommonCrawl的41个碎片下载的,在过滤前由45TB的压缩明文组成,在过滤后由570GB组成,大致相当于4000亿字节对编码的tokens。请注意,在训练期间,数据集的采样并不与其大小成比例,而是认为质量较高的数据集的采样频率更高,例如CommonCrawl和Books2数据集在训练期间的采样次数少于一次,而其他数据集的采样次数为2-3次。这基本上可以接受少量的过度拟合,以换取更高质量的训练数据。
在方法论上,对大量互联网数据进行预训练的语言模型,尤其是具有记忆大量内容能力的大型模型,一个主要的担忧是在训练前无意中看到其测试集或开发集,可能会污染下游任务。为了减少这种污染,论文搜索并试图消除与本文研究的所有基准的开发和测试集的任何重叠。不幸的是,过滤中的一个bug导致我们忽略了一些重叠,并且由于训练的成本,重新训练模型是不可行的。在第4节中,我们描述了剩余重叠的影响,在未来的工作中,我们将更积极地消除数据污染。
正如[KMH+20,MKAT18]中所述,较大的模型通常可以使用较大的批量,但需要较小的学习率。论文在训练期间测量梯度噪声等级,并使用它来指导选择批次大小【MKAT18】。表2.1显示了论文使用的参数设置。为了在不耗尽内存的情况下训练更大的模型,论文混合使用了每个矩阵乘法中的模型并行性和跨网络层的模型并行性。所有模型都在微软提供的高带宽集群的V100 GPU上进行了训练。附录B中描述了训练过程和超参数设置的详细信息。
对于few-shot学习,论文通过从该任务的训练集中随机抽取K个示例作为条件来评估评测集中的每个示例,根据任务的不同,由1或2条换行分隔。对于LAMBADA和Storycloze,没有可用的监督训练集,因此从开发集中提取条件化示例,并在测试集上进行评估。对于Winograd(原始版本,而非SuperGLUE版本),只有一个数据集,因此直接从中绘制条件化示例。
K可以是从0到模型上下文窗口允许的最大值之间的任意值,对于所有模型,该值为 nctx=2048 ,通常适用于10到100个示例。K值越大通常越好,但并不总是越好,因此,当有单独的开发和测试集可用时,论文在开发集上用几个K值进行实验,然后在测试集上运行最佳值。对于某些任务(参见附录G),除了(或对于K=0,而不是)演示之外,论文还使用自然语言提示。
对于涉及从多个选项(多选)中选择一个正确完成的任务,论文提供了K个上下文加上正确完成的示例,然后是一个仅上下文的示例,并比较每个完成的LM可能性。对于大多数任务,论文比较每个token的可能性(对长度进行规范化),但是在少数数据集(ARC、OpenBookQA和RACE)上,通过计算 P( completion ∣ context )P( completion ∣ answer_context ) 对每个完成的无条件概率进行规范化,获得了在开发集上衡量的额外好处,其中,answer context是字符串“answer:”或“A:”,用于提示完成应该是一个答案,但在其他方面是通用的。
对于涉及二元分类的任务,论文给选项提供语义上更有意义的名称(例如“True”或“False”,而不是0或1),然后将任务视为多项选择;我们有时也会制定类似于[RSR+19]所做的任务的框架(参见附录G)以了解详细信息。
在自由形式完成的任务中,论文使用与[RSR+19]参数相同的beam search:beam width为4,长度惩罚为α=0.6。论文使用F1相似性评分、BLEU或精确匹配对模型进行评分,具体取决于手头数据集的标准。
对于每种模型尺寸和学习设置(zero-shot、one-shot和few-shot),当测试集公开时,将报告最终结果。当测试集是私有的时,论文的模型通常太大,无法安装在测试服务器上,因此论文在开发集上报告结果。论文确实在少量数据集(SuperGLUE、TriviaQA、PiQa)上提交给测试服务器,在那里可以进行提交工作,论文只提交200B的few-shot结果,并报告其他所有的开发集结果。
图3.1:使用compute平滑扩展性能。性能(根据交叉熵验证损失衡量)随用于训练的计算量呈幂律趋势。在[KMH+20]中观察到的幂律行为持续了另外两个数量级,与预测曲线的偏差很小。对于这个图,从计算和参数计数中排除了嵌入参数
在图3.1中,论文显示了第2节中描述的8个模型的训练曲线。对于该图,论文还包括6个额外的超小型模型,参数少至100000个。正如[KMH+20]中所观察到的,在有效利用训练计算时,语言模型性能遵循幂律。在将这一趋势再延长两个数量级后,论文只观察到略微偏离幂律(如果有的话)。有人可能会担心,交叉熵损失的这些改进仅仅来自于对训练语料库虚假细节的建模。然而,将在下面的章节中看到,交叉熵损失的改善会在广泛的自然语言任务中带来一致的性能提升。
下面,论文在广泛的数据集上评估了第2节中描述的8个模型(1750亿参数参数GPT-3和7个较小的模型)。论文将数据集分为9类,代表大致相似的任务。
在第3.1节中,论文评估了传统的语言模型任务和类似于语言模型的任务,例如完形填空任务和句子/段落完成任务。在第3.2节中,论文评估了“封闭式”问答任务:需要使用存储在模型参数中的信息来回答一般知识问题的任务。在第3.3节中,论文评估了模型在语言之间进行翻译的能力(尤其是单发和少发)。在第3.4节中,评估了模型在类似Winograd模式的任务上的性能。在第3.5节中,对涉及常识推理或问答的数据集进行评估。在第3.6节中,评估阅读理解任务,在第3.7节中,评估SuperGLUE基准套件,在第3.8节中,简要探讨NLI。最后,在第3.9节中,论文发明了一些额外的任务,这些任务专门用于探索上下文学习能力,这些任务侧重于即时推理、适应技能或开放式文本合成。论文在“few-shot”、“one-shot”和“zero-shot”设置中评估所有任务。
在本节中,论文测试GPT-3在语言建模的传统任务上的表现,以及涉及预测一个感兴趣的单词、完成一个句子或段落或在可能完成的文本之间进行选择的相关任务。
3.1.1 语言模型
论文计算了宾夕法尼亚树银行(PTB)[MKM+94]数据集的zero-shot困惑度,该数据集在[RWC+19]中测量。在这项工作中,论文省略了4项与Wikipedia相关的任务,因为它们完全包含在我们的训练数据中,论文还省略了10亿字的基准测试,因为论文的训练集中包含了大量的数据集。由于PTB早于现代互联网,因此可以避免这些问题。论文最大的模型在PTB上设置了一个新的SOTA,大幅提高了15个百分点,实现了20.50的复杂度。请注意,由于PTB是一个传统的语言建模数据集,因此它没有明确的示例分离来定义one-shot或few-shot评估,因此论文只测量zero-shot。
3.1.2 LAMBADA
LAMBADA数据集[PKL+16]测试了文本中长期依赖关系的建模——该模型被要求预测需要阅读一段上下文的句子的最后一个单词。最近有人提出,语言模型的持续扩展正在这个困难的基准上产生递减的回报。[必和必拓+20]回顾了两项最新成果([SPP+19]和[Tur20])之间模型尺寸翻倍所取得的1.5%的小幅度改进,并认为“继续按数量级扩展硬件和数据大小不是前进的道路”。论文发现,前路仍然很有希望,在zero-shot设置下,GPT-3在LAMBADA上达到76%,比之前的最先进水平提高了8%。
LAMBADA还展示了few-shot学习的灵活性,因为它提供了一种解决此数据集典型问题的方法。虽然LAMBADA中的补全总是句子中的最后一个词,但标准语言模型无法知道这一细节。因此,它不仅赋予正确结尾的可能性,而且赋予段落的其他有效延续的可能性。过去,使用停止字过滤器(RWC+19)(禁止“继续”字)部分解决了这个问题。相反,few-shot设置允许将任务“框定”为完形填空测试,并允许语言模型从示例中推断出只需要完成一个单词。论文在空白格式中使用以下填充:
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在few-shot设置中达到86.4%的准确率,比以前的最先进水平提高了18%以上。论文观察到,随着模型尺寸的增大,few-shot的性能得到了显著改善。虽然此设置会将最小模型的性能降低近20%,但对于GPT-3,它会将精度提高10%。最后,填空方法不是有效的one-shot,它的性能总是比zero-shot设置差。也许这是因为所有模型仍然需要几个示例来识别模式。
需要注意的一点是,对测试集污染的分析表明,论文的训练数据中似乎存在极少数LAMBADA数据集,但第4节中进行的分析表明,对性能的影响微不足道。
3.1.3 HellaSwag
HellaSwag数据集[ZHB+19]涉及选择故事或指令集的最佳结局。这些例子被逆向挖掘,对于语言模型来说很困难,而对于人类来说却很容易(准确率达到95.6%)。GPT-3在one-shot和few-shot中的准确率分别为78.1%和79.3%,优于微调后的1.5B参数语言模型[ZHR+19]的75.4%的准确率,但仍低于微调后的多任务模型ALUM实现的85.6%的总体SOTA。
3.1.4 StoryCloze
接下来,将在StoryCloze 2016数据集【MCH+16】上评估GPT-3,其中包括为五个句子长的故事选择正确的结尾句。这里,GPT-3在zero-shot下达到83.2%,在few-shot下达到87.7%(K=70)。这仍然比使用基于BERT模型的微调SOTA低4.1个百分点,但比之前的zero-shot结果提高了大约10%。
在本节中,论文衡量GPT-3回答有关广泛事实知识问题的能力。由于存在大量可能的查询,通常通过使用信息检索系统查找相关文本,并结合学习生成给定问题和检索文本的答案的模型来完成此任务。由于此设置允许系统搜索可能包含答案的文本并对其进行条件设置,因此表示为“open-book”。[RRS20]最近证明,大型语言模型可以在不依赖辅助信息的情况下,出色地直接回答问题。他们将这种限制性更强的评估设置称为“closed-book”。他们的工作表明,即使是更高容量的模型也可以表现得更好,论文用GPT-3来检验这一假设。论文在【RRS20】:自然问题【KPR+19】、网络问题【BCFL13】和TriviaQA【JCWZ17】中的3个数据集上评估GPT-3,使用相同的拆分。请注意,除了所有结果都在封闭域设置中之外,使用的few-shot、one-shot和zero-shot评估比以前的闭卷QA工作更严格:除了不允许外部内容外,也不允许对问答数据集本身进行微调。
表3.3:三项开放领域QA任务的结果。GPT-3显示在few-shot、one-shot和zero-shot设置中,与之前的SOTA结果相比,用于闭卷和开放域设置。TriviaQA少数镜头结果在wiki分割测试服务器上进行评估
GPT-3的结果如表3.3所示。在TriviaQA上,我们在zero-shot设置下实现了64.3%,在one-shot设置下实现了68.0%,在few-shot设置下实现了71.2%。zero-shot结果已经比微调的T5-11B好14.2%,也比在预训练进行问答量身定距预测的版本好3.8%。一次性结果提高了3.7%,与开放域QA系统的SOTA相匹配,该系统不仅可以微调,而且还可以在21M文档的15.3B参数密集向量索引上使用学习的检索机制【LPP+20】。GPT-3的few-shot性能进一步提高了性能,比此提高了3.2%。
在WebQuestions(WebQs)中,GPT-3在zero-shot下达到14.4%,在one-shot设置下达到25.3%,在few-shot设置下达到41.5%。相比之下,微调T5-11B的比例为37.4%,微调T5-11B+SSM的比例为44.7%,后者使用了针对问答的预训练程序。GPT-3在few-shot设置中接近最先进的微调模型的性能。值得注意的是,与TriviaQA相比,WebQS从zero-shot到few-shot的收益要大得多(事实上,其zero-shot和one-shot的表现都很差),这可能表明WebQS的问题和/或其答案的风格与GPT-3的分布不符。尽管如此,GPT-3似乎能够适应这种分布,在few-shot投篮环境中恢复了强劲的表现。
在自然问题(NQs)方面,GPT-3在zero-shot设置下的得分为14.6%,在one-shot设置下的得分为23.0%,在few-shot设置下的得分为29.9%,而在微调T5 11B+SSM下的得分为36.6%。与WebQS类似,从zero-shot到few-shot的巨大收益可能表明了分布的转变,也可能解释了与TriviaQA和WebQS相比,竞争性表现较差的原因。特别是,NQs中的问题倾向于维基百科上非常细粒度的知识,这可能测试GPT-3的能力限制和广泛的训练前分布。
总的来说,在三个数据集中的一个数据集上,GPT-3的一次性匹配开放域微调SOTA。在其他两个数据集上,尽管未使用微调,但其性能接近闭卷SOTA。在所有3个数据集上,论文发现性能随模型大小的变化非常平稳(图3.3和附录H图H.7),这可能反映了模型容量直接转化为模型参数中吸收的更多“知识”的想法。
对于GPT-2,出于容量考虑,在多语言文档集合上使用了过滤器,以生成纯英语数据集。即使有了这种过滤,GPT-2也显示出了一些多语言能力的证据,并且在法语和英语之间进行翻译时表现得非常出色,尽管只接受了10MB剩余法语文本的训练。由于将容量从GPT-2增加到GPT-3两个数量级以上,因此还扩展了训练数据集的范围,以包括更多其他语言的表示,尽管这仍然是一个有待进一步改进的领域。正如2.2中所讨论的,论文的大多数数据都来自原始的Common Crawl,只有基于质量的过滤。虽然GPT-3的培训数据仍然主要是英语(按字数计算为93%),但它也包括其他语言文本的7%。补充材料中记录了这些语言。为了更好地理解翻译能力,论文还将分析范围扩大到另外两种常用语言,德语和罗马尼亚语。
现有的无监督机器翻译方法通常将对一对单语数据集的预训练与反向翻译相结合,以可控的方式连接两种语言。相比之下,GPT-3从混合的训练数据中学习,这些数据以自然的方式将多种语言混合在一起,在单词、句子和文档级别将它们组合在一起。GPT-3还使用了一个单一的训练目标,该目标不是专门为任何任务定制或设计的。然而,我们的one-shot/few-shot设置与之前的无监督工作没有严格的可比性,因为它们使用了少量成对的示例(1或64)。这最多相当于一页或两页的上下文内训练数据。
表3.4:机器翻译评测
表3.4:当翻译成英语时,few-shot GPT-3的表现比之前的无监督NMT好5倍,反映出其作为英语LM的优势。在WMT'14 Fr上报告BLEU分数↔En,WMT'16 De↔En和WMT'16 Ro↔多bleu测量的En数据集。perl和XLM的标记化,以便与以前的无监督NMT工作进行最密切的比较。SacreBLEUf【Pos18】结果报告在附录H中。下划线表示无监督或few-shot的SOTA,粗体表示有相对信心的监督SOTA。a【EOAG18】b【DHKH14】c【WXH+18】d【或16】e【LGG+20】【SacreBLEU签名:BLEU+case。mixed+numrefs。1+smooth。exp+tok。intl+version。1.2.20】
结果如表3.4所示。Zero-shot GPT-3只接受对任务的自然语言描述,但其性能仍然低于最近的无监督NMT结果。然而,仅为每个翻译任务提供一个示例演示,可将性能提高7个BLEU以上,接近先前工作的竞争力。GPT-3在全few-shot设置下进一步改进了另一个4 BLEU,从而获得与之前无监督NMT工作类似的平均性能。GPT-3的性能有明显的偏差,这取决于语言方向。对于所研究的三种输入语言,GPT-3在翻译成英语时显著优于先前的无监督NMT工作,但在另一方向翻译时表现不佳。在超过10个BLEU时,En Ro的性能是一个明显的异常值,比之前的无监督NMT工作更差。由于重用GPT-2的字节级BPE标记器,这可能是一个弱点,GPT-2是为几乎完全是英语的训练数据集开发的。对于Fr En和De En,few-shot GPT-3的表现优于我们所能找到的最佳监督结果,但由于对文献不熟悉,而且这些都是非竞争性基准,论文不怀疑这些结果代表了真正的技术水平。对于Ro-En,few-shot GPT-3在整个SOTA的0.5 BLEU范围内执行,这是通过无监督的预训练、608K标记示例的监督微调和反译的组合实现的【LHCG19b】。
最后,在所有语言对和所有三种设置(zero-shot、one-shot和few-shot)中,模型容量都有平稳的改善趋势。在few-shot结果的情况下,如图3.4所示,所有三种设置的缩放比例如附录H所示。
Winograd模式挑战[LDM12]是NLP中的一项经典任务,它涉及确定代词所指的单词,而代词在语法上是模糊的,但在语义上对人类来说是明确的。最近,经过微调的语言模型在最初的Winograd数据集上实现了近乎人类的性能,但更困难的版本,如反向挖掘的Winogrande数据集[SBBC19],仍然明显滞后于人类的性能。论文在Winograd和Winogrande上测试GPT-3的性能,通常在zero-shot、one-shot和few-shot设置下进行测试。
在Winograd上,我们在273个Winograd模式的原始集合上测试GPT-3,使用与[RWC+19]中描述的相同的“部分评估”方法。请注意,此设置与SuperGLUE基准中的WSC任务略有不同,后者以二进制分类的形式呈现,需要实体提取才能转换为本节中描述的形式。在Winograd上,GPT-3在zero-shot、one-shot和few-shot设置下分别达到88.3%、89.7%和88.6%,没有显示出清晰的上下文学习,但在所有情况下都取得了很好的效果,只比最先进的技术和估计的人的表现低了几分。论文注意到,污染分析在训练数据中发现了一些Winograd模式,但这似乎对结果的影响很小(见第4节)。
在更困难的Winogrande数据集上,论文确实发现了上下文学习的好处:GPT-3在zero-shot设置下达到70.2%,在one-shot设置下达到73.2%,在few-shot设置下达到77.7%。相比之下,微调后的RoBERTA模型达到了79%,微调后的高容量模型(T5)达到了84.6%,而【SBBC19】报告的人类在任务上的表现为94.0%。
表3.5:Winograd模式WSC273版本和Winogrande数据集的结果。有关Winograd测试集潜在污染的详细信息,请参阅第4节【SBBC19】【LYN+20】
图3.5:随着模型容量的扩展,对抗性Winogrande数据集的zero-shot、one-shot和few-shot性能。缩放相对平稳,随着模型尺寸的增加,few-shot学习的收益增加,few-shot GPT-3 175B与微调的RoBERTA large竞争
接下来,我们考虑三个试图捕捉物理或科学推理的数据集,与句子完成、阅读理解或广博知识问答不同。第一个是PhysicalQA(PIQA)[BZB+19],提出关于物理世界如何运作的常识性问题,旨在探索对世界的扎根理解。GPT-3实现了81.0%的zero-shot精度、80.5%的one-shot精度和82.8%的few-shot精度(最后一次在PIQA的测试服务器上测量)。这与之前微调过的RoBERTa最先进的79.4%的准确度相比是有利的。PIQA显示出相对较浅的模型尺寸缩放比例,仍然比人的表现差10%以上,但GPT-3的few-shot甚至zero-shot结果优于当前的最先进水平。论文的分析将PIQA标记为潜在的数据污染问题(尽管隐藏了测试标签),因此保守地用星号标记结果。详见第4节。
ARC[CCE+18]是一个从三年级到九年级科学考试中收集的多项选择题数据集。在数据集的“挑战”版本上,GPT-3在zero-shot设置下的准确率为51.4%,在one-shot设置下的准确率为53.2%,在few-shot设置下的准确率为51.5%,该数据集已过滤到简单统计或信息检索方法无法正确回答的问题。这接近于UnifiedQA(KKS+20)微调的RoBERTa基线(55.9%)的性能。在数据集的“简单”版本上(上述两种基线方法中的任何一种都能正确回答的问题),GPT-3分别达到68.8%、71.2%和70.1%,略高于[KKS+20]微调后的RoBERTa基线。然而,这两个结果仍然比统一质量保证(UnifiedQA)所取得的总体SOTA差得多,后者在挑战赛和轻松赛中分别比GPT-3的few-shot成绩高出27%和22%。
在OpenBookQA[MCKS18]上,GPT-3的设置从zero到few-shot有显著提高,但与SOTA总成绩相比仍差20多分。GPT-3的few-shot表现类似于排行榜上微调的BERT大基线。
总的来说,使用GPT-3的情境学习在常识推理任务上的结果参差不齐,在PIQA和ARC的one-shot和few-shot学习设置中只观察到少量且不一致的收益,但在OpenBookQA上观察到了显著的改进。GPT-3在所有评估设置的新PIQA数据集上设置SOTA。
表3.6:GPT-3在三个常识推理任务(PIQA、ARC和OpenBookQA)上的结果。在测试服务器上评估GPT-3few-shot PIQA结果。有关PIQA测试集潜在污染问题的详细信息,请参见第4节
图3.6:GPT-3在zero-shot、one-shot和few-shot设置下的PIQA结果。在所有三种情况下,最大模型在开发集上的得分都超过了任务上记录的最佳得分
接下来,论文评估GPT-3在阅读理解任务中的作用。论文在对话和单个问题设置中使用了一套5个数据集,包括抽象、多项选择和基于广度的答案格式。论文观察到GPT-3的性能在这些数据集中广泛分布,这表明不同的回答格式具有不同的能力。一般来说,我们观察到GPT-3与初始基线和使用每个数据集上的上下文表示训练的早期结果相当。
GPT-3在CoQA【RCM19】一个自由形式的对话数据集上表现最好(在人类基线的3个点以内),在QuAC【CHI+18】一个需要建模结构化对话行为和师生互动答案范围选择的数据集上表现最差(低于ELMo基线13 F1)。在DROP[DWD+19]上,一个测试阅读理解背景下离散推理和计算能力的数据集,GPT-3在few-shot设置下的表现优于原始论文中微调的BERT基线,但仍远低于人类表现和使用符号系统增强神经网络的最新方法[RLL+19]。在2.0队(RJL18)中,GPT-3展示了其few-shot学习能力,与zero-shot相比提高了近10 F1(至69.8)。这使得它的性能略优于原始论文中的最佳微调结果。在中学和高中英语考试的多项选择题数据集RACE(LXL+17)上,GPT-3的表现相对较弱,仅与最早利用上下文表征的工作相竞争,仍落后于SOTA 45%。
表3.7:阅读理解任务的结果。除比赛成绩准确外,所有成绩均为F1-score。【JZC+19】【JN20】【AI19】【QIA20】【SPP+19】
图3.7:CoQA阅读理解任务的GPT-3结果。GPT-3 175B在few-shot的情况下达到85 F1,仅落后于测量的人类表现和最先进的微调模型几分。zero-shot和one-shot的表现落后了几分,对于更大的模型来说,few-shot的增益最大
表3.8:GPT-3在SuperGLUE上的性能与微调基线和SOTA的比较。所有结果都在测试集上报告。GPT-3few-shot在每个任务的上下文中总共给出了32个示例,并且不执行渐变更新
图3.8:SuperGLUE的性能随着模型大小和上下文中示例的数量而增加。K=32的值意味着我们的模型显示了每个任务32个示例,总共256个示例分布在SuperGLUE中的8个任务中。我们在dev集合上报告GPT-3值,因此论文的数字不能与虚线参考线直接比较(我们的测试集合结果见表3.8)。BERT大型参考模型在SuperGLUE训练集(125K个示例)上进行了微调,而BERT++首先在MultiNLI(392K个示例)和SWAG(113K个示例)上进行了微调,然后在SuperGLUE训练集上进行了进一步微调(总共630K个微调示例)。论文发现,BERT Large和BERT++之间的性能差异大致相当于GPT-3之间的差异,每个上下文一个示例,而每个上下文八个示例。
为了更好地汇总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]。GPT-3在SuperGLUE数据集上的测试集性能如表3.8所示。在few-shot设置中,我们对所有任务使用了32个示例,从训练集中随机抽样。对于除WSC和MultiRC之外的所有任务,论文采样了一组新的示例,以便在每个问题的上下文中使用。对于WSC和MultiRC,使用从训练集中随机抽取的同一组示例作为我们评估的所有问题的上下文。
论文观察到GPT-3在各种任务中的表现范围很广。在COPA和创纪录的比赛中,GPT-3在one-shot和few-shot两种情况下都取得了接近SOTA的性能,COPA只差几分,在排行榜上排名第二,排名第一的是经过微调的110亿参数模型(T5)。在WSC上,性能仍然相对较强,在few-shot设置下达到80.1%(请注意,GPT-3在原始Winograd数据集上达到88.6%,如第3.4节所述)。在BoolQ、MultiRC和RTE上,性能是合理的,大致与微调的BERT-Large相匹配。在CB上,我们可以看到75.6%的生命迹象。
WiC是一个明显的弱点,few-shot 性能为49.4%(随机)。论文为WiC尝试了许多不同的措辞和公式(包括确定一个单词在两句话中是否具有相同的含义),但没有一个能够取得很好的效果。这暗示了一种现象,这种现象将在下一节(讨论ANLI基准)中变得更加清楚——GPT-3在一些涉及比较两个句子或片段的任务中,在few-shot或one-shot的设置上似乎很弱,例如,一个单词在两句话中的使用方式是否相同(WiC),一个句子是否是另一个句子的意译,或者一句话是否意味着另一句话。这也可以解释RTE和CB得分相对较低的原因,它们也遵循这种格式。尽管存在这些缺点,GPT-3在八项任务中的四项任务上仍优于微调后的BERT large,在两项任务上,GPT-3接近微调后的110亿参数模型所保持的最先进水平。
最后,论文注意到,随着模型大小和上下文中的示例数量的增加,few-shot的SuperGLUE分数稳步提高,显示了上下文学习的好处(图3.8)。我们将K扩展到每个任务32个示例,之后其他示例将无法可靠地适合我们的上下文。当浏览K值时,我们发现GPT-3每项任务需要不到八个总的示例,才能在总体SuperGLUE得分上优于微调过的BERT Large。
图3.9:GPT-3在ANLI第三轮的表现。结果在dev集合上,该集合只有1500个示例,因此具有很高的方差(我们估计标准偏差为1.2%)。我们发现,较小的模型徘徊在随机机会附近,而few-shot GPT-3 175B将随机机会与SOTA的差距缩小了近一半。附录中显示了ANLI第1轮和第2轮的结果
自然语言推理(NLI)[Fyo00]涉及理解两句话之间关系的能力。在实践中,这项任务通常被构造为两类或三类分类问题,其中模型对第二句是否逻辑上遵循第一句、是否与第一句相矛盾或是否可能为真(中性)进行分类。SuperGLUE包含一个NLI数据集RTE,用于评估任务的二进制版本。在RTE上,在任何评估设置中,只有最大版本的GPT-3的性能明显优于random(56%),但在few-shot设置中,GPT-3的性能类似于单任务微调的BERT Large。我们还评估了最近引入的对抗性自然语言推理(ANLI)数据集【NWD+19】。ANLI是一个困难的数据集,使用了三轮(R1、R2和R3)中一系列逆向挖掘的自然语言推理问题。与RTE类似,论文所有小于GPT-3的模型在ANLI上的表现几乎完全是随机的,即使在few-shot设置下也是如此(∼ 33%),而GPT-3本身在第3轮中显示出生命迹象。图3.9突出显示了ANLI R3的结果,附录H中列出了所有回合的完整结果。RTE和ANLI的这些结果表明,对于语言模型来说,NLI仍然是一项非常困难的任务,它们才刚刚开始显示出进步的迹象。
探索GPT-3在few-shot(或zero-shot和one-shot)情况下的能力范围的一种方法是为其分配任务,要求其执行简单的即时计算推理,识别训练中不太可能出现的新模式,或快速适应不寻常的任务。论文设计了几个任务来测试这类能力。首先,论文测试GPT-3的运算能力。其次,创建了几个任务,这些任务涉及重新排列或解读单词中的字母,这些任务不太可能在训练过程中看到。第三,论文测试GPT-3解决SAT式类比问题的能力。最后,在几个定性任务上测试GPT-3,包括在句子中使用生词、纠正英语语法和生成新闻文章。论文将发布这些合成数据集,以期激发对语言模型测试时行为的进一步研究。
3.9.1 算术
为了测试GPT-3在没有特定任务训练的情况下执行简单算术运算的能力,论文开发了一个由10个测试组成的small battery,其中包括向GPT-3询问自然语言中的简单算术问题:
图3.10:不同尺寸模型在few-shot设置下所有10项算术任务的结果。从第二大模型(GPT-3 13B)到最大模型(GPT-3 175)有一个显著的跳跃,后者能够可靠地精确地进行2位算术,通常是精确的3位算术,并且能够在4-5位算术、2位乘法和复合运算中更正大部分时间的答案。附录中显示了one-shot和zero-shot的结果
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”。在[0,10]上统一选择三个1位数,并从{+,-,*}中统一选择运算。
在所有10项任务中,模型必须准确地生成正确答案。对于每个任务,我们生成一个包含2000个随机任务实例的数据集,并评估这些实例上的所有模型。
首先,我们在few-shot的情况下评估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%。
与few-shot性能相比,one-shot和zero-shot性能有所下降,这表明适应任务(或至少识别任务)对于正确执行这些计算非常重要。尽管如此,few-shot性能仍然相当强大,即使是完整GPT-3的zero-shot性能也明显优于所有较小模型的少数镜头学习。完整GPT-3的所有三个设置如表3.9所示,所有三个设置的模型容量缩放如附录H所示。
为了抽查模型是否只是简单地记忆特定的算术问题,在测试集中选取了3位数的算术问题,并在论文的训练数据中以“
总的来说,GPT-3在few-shot、one-shot甚至zero-shot设置中表现出相当熟练的中等复杂算术能力。
3.9.2 文字置乱和操作任务
为了测试GPT-3从几个例子中学习新符号操作的能力,论文设计了一个由5个“字符操作”组成任务组成。每个任务都涉及给模型提供一个由于字符的混乱、添加或删除而扭曲的单词,并要求它恢复原始单词。这5项任务是:
循环单词中的字母(CL)–给模型一个字母循环的单词,然后是“=”符号,并期望生成原始单词。例如,它可能被赋予“lyinevitab”,并且应该“inevitably”输出。
除第一个和最后一个字符外的所有字符的字谜(A1)-该模型给出了一个单词,其中除第一个和最后一个字母外的每个字母都被随机置乱,并且必须输出原始单词。示例:criroptoon=corruption。
除了前两个字符和后两个字符(A2)以外的所有字符的字谜图——该模型给出了一个单词,其中除前两个和后两个字符外的每个字母都被随机置乱,并且必须恢复原始单词。示例:opoepnnt→ opponent
单词中的随机插入(RI)–在单词的每个字母之间插入一个随机标点或空格字符,模型必须输出原始单词。示例:s.u!c/c!e.s s i/o/n = succession。
反向单词(RW)–模型中有一个拼写反向的单词,必须输出原始单词。示例:stcejbo→ objects。
对于每个任务,论文生成了10000个示例,论文选择了长度超过4个字符、少于15个字符的[Nor09]作为前10000个最常见的单词。few-shot结果如图3.11所示。随着模型大小的增加,任务表现趋于平稳增长,完整的GPT-3模型在删除随机插入时达到66.9%,在循环字母时达到38.6%,在较简单的字谜任务中达到40.2%,在较困难的字谜任务中达到15.1%(只有第一个和最后一个字母保持不变)。没有一个模型可以反转单词中的字母。
在one-shot设置中,性能明显较弱(下降一半或更多),而在zero-shot设置中,模型很少能执行任何任务(表3.10)。这表明模型似乎确实在测试时学习了这些任务,因为模型无法执行zero-shot,而且其人工性质使其不太可能出现在训练前数据中(尽管无法确定这一点)。
我们可以通过绘制“情境内学习曲线”进一步量化性能,该曲线将任务性能显示为情境内示例数量的函数。图1.2显示了符号插入任务的上下文学习曲线。我们可以看到,更大的模型能够越来越有效地利用上下文信息,包括任务示例和自然语言任务描述。
最后,值得补充的是,解决这些任务需要进行字符级操作,而论文的BPE编码操作的是单词的重要部分(平均而言∼ 因此,从LM的角度来看,成功完成这些任务不仅需要操作BPE token,还需要理解和分解它们的子结构。此外,CL、A1和A2不是双射的(也就是说,未解读的单词不是加扰单词的确定函数),需要模型执行一些搜索以找到正确的解读。因此,所涉及的技能似乎需要非平凡的模式匹配和计算。
3.9.3 SAT类比
图3.12:不同尺寸模型在SAT模拟任务中的zero-shot、one-shot和few-shot表现。最大的模型在很少的镜头设置下达到65%的准确率,并且还显示出在小模型中不存在的上下文学习的显著收益
为了测试GPT-3在另一项任务上的表现,这项任务相对于文本的典型分布来说有些不同寻常,论文收集了一组374个“SAT类比”问题【TLBS03】。类比法是一种多项选择题,在2005年之前,它是SAT高考的一部分。一个典型的例子是“大胆是为了大胆,(A)虚伪是为了虚伪,(b)匿名是为了身份,(c)悔恨是为了做错事,(d)有害是为了结果,(e)易受影响是为了诱惑”。学生需要选择五个词对中与原始词对关系相同的词对;在这个例子中,答案是“虚伪就是虚伪”。在这项任务中,GPT-3在few-shot设置下达到65.2%,在one-shot设置下达到59.1%,在zero-shot设置下达到53.7%,而大学申请人的平均得分为57%[TL05](随机猜测产生20%)。如图3.12所示,结果随着规模的扩大而改善,完整的1750亿模型比130亿参数模型提高了10%以上。
3.9.4 新闻文章生成
先前关于生成性语言模型的研究定性地测试了他们通过从模型中进行条件抽样来生成合成“新闻文章”的能力,该模型给出了由新闻故事的看似合理的第一句话组成的人类书面提示【RWC+19】。相对于【RWC+19】,用于训练GPT-3的数据集对新闻文章的权重要小得多,因此试图通过原始的无条件样本生成新闻文章的效果要差得多——例如,GPT-3通常将“新闻文章”的第一句话解释为推文,然后发布合成回应或后续推文。为了解决这个问题,论文利用GPT-3的few-shot学习能力,在模型的上下文中提供了之前的三篇新闻文章来对其进行条件化。有了提议的下一篇文章的标题和副标题,该模型能够可靠地生成“新闻”类型的短文。
为了衡量从GPT-3生成新闻文章的质量(我们认为这可能与一般的条件样本生成质量相关),论文决定衡量人类区分GPT-3生成的文章与真实文章的能力。Kreps等人【KMB20】和Zellers等人【ZHR+19】也开展了类似的工作。生成性语言模型的训练是为了匹配人类生成的内容的分布,因此人类区分两者的能力是衡量质量的一个潜在重要指标。
为了观察人类如何检测模型生成的文本,论文从http://newser.com网站上任意选择了25篇文章的标题和副标题(平均长度:215字)。然后,根据大小从125M到175B(GPT-3)参数(平均长度:200个单词)的四种语言模型生成这些标题和副标题的补全。对于每个模型,论文向大约80名美国参与者进行了一次测验,测验内容包括这些真实标题和副标题,然后是人类撰写的文章或模型生成的文章。参与者被要求选择文章是否“很可能是人类写的”、“更可能是人类写的”、“我不知道”、“更可能是机器写的”或“很可能是机器写的”。
论文选择的文章不在模型的训练数据中,模型输出是以编程方式格式化和选择的,以防止人类cherry-picking。所有模型都使用相同的上下文来调节输出,并使用相同的上下文大小进行预训练,每个模型使用相同的文章标题和副标题作为提示。然而,论文还进行了一项实验,以控制参与者的努力和注意力,这些努力和注意力遵循相同的格式,但涉及故意生成的不良模型文章。这是通过从一个“控制模型”生成文章来完成的:一个160M的参数模型,没有上下文和增加的输出随机性。
表3.11:人类识别是否短的准确性(∼200字)新闻文章是模型生成的。人类的准确度范围从控制模型的86%到GPT-3 175B的52%。此表比较了五种不同模型的平均精度,并显示了两个样本T检验的结果,以确定每个模型与控制模型(输出随机性增加的无条件GPT-3小小模型)之间的平均精度差异
图3.13:随着模型大小的增加,人们识别新闻文章是否是模型生成的(通过正确作业与非中性作业的比率衡量)的能力下降。DelaberrelyBAD控制模型(无条件GPT-3小型模型,具有更高的输出随机性)的输出精度用顶部的虚线表示,随机概率(50%)用底部的虚线表示。最佳拟合线是具有95%置信区间的幂律。
表3.12:人们识别∼ 500字文章是模型生成的(通过正确作业与非中性作业的比率衡量),对照模型为88%,GPT-3 175B为52%。此表显示了GPT-3 175B和控制模型(输出随机性增加的无条件GPT-3小模型)之间平均精度差异的双样本T检验结果。
表3.12:人们识别∼ 500字文章是模型生成的(通过正确作业与非中性作业的比率衡量),对照模型为88%,GPT-3 175B为52%。此表显示了GPT-3 175B和控制模型(输出随机性增加的无条件GPT-3小模型)之间平均精度差异的双样本T检验结果。
图3.14:GPT-3生成的新闻文章中,人类最难与人类书面文章区分开来(准确率:12%)
图3.15:GPT-3生成的新闻文章最容易与人类撰写的文章区分开来(准确率:61%)
图3.14和3.15.7中给出了GPT-3中合成文章的示例。大部分文本如人类难以区分真实人类内容的评估所示。事实不准确可以表明文章是模型生成的,因为与人类作者不同,模型无法访问文章标题所指的具体事实或文章的撰写时间。其他指标包括重复、不连贯和不寻常的措辞,尽管这些往往很微妙,以至于没有被注意到。
Ippolito等人[IDCBE19]在语言模型检测方面的相关工作表明,像GR O V E R[ZHR+19]和GLTR[GSR19]这样的自动鉴别器在检测模型生成的文本方面可能比人类鉴别器更成功。这些模型的自动检测可能是未来研究的一个有希望的领域。
Ippolito等人[IDCBE19]还注意到,随着人类观察到更多标记,人类检测模型生成文本的准确性也会提高。为了初步调查人类在检测GPT-3 175B生成的较长新闻文章方面的表现,论文从路透社(Reuters)选取了12篇世界新闻文章,平均长度为569个单词,并从GPT-3生成了这些文章的补全,平均长度为498个单词(比我们最初的实验长298个单词)。按照上述方法,我们在大约80名美国参与者身上进行了两个实验,以比较人类检测GPT-3和对照模型生成的文章的能力。
论文发现,在对照模型中,人类检测故意不良较长物品的平均准确率为∼ 88%,而在检测GPT-3 175B生产的较长文章时,人类的平均准确率仍然略高于∼ 52%(见表3.12)。这表明,对于500字左右的新闻文章,GPT-3继续产生人类难以区分的文章。
3.9.5 学习和使用新词
图3.16:在一个句子中使用一个新词的少量任务的代表性GPT-3完成。黑体是GPT-3的补全,纯文本是人工提示。在第一个示例中,提示和完成都由人提供;然后,这将作为后续示例的条件,其中GPT-3接收到连续的额外提示并提供补全。除了此处所示的调节外,GPT-3没有提供任何特定任务。
发展语言学研究的一项任务【CB78】是学习和使用新词的能力,例如,在看到一个词只定义了一次之后,就在句子中使用它,或者相反地,从一个用法中推断出一个词的含义。在这里,我们定性测试GPT-3的能力做前者。具体来说,我们给GPT-3一个不存在的单词的定义,比如“Gigamuru”,然后让它在句子中使用。我们提供了一到五个在句子中定义和使用的(单独的)不存在的单词的前一个例子,因此,就广义任务的前一个例子而言,这项任务是很少的,就特定单词而言,这项任务是一次。表3.16显示了论文生成的6个示例;所有的定义都是人工生成的,第一个答案是人工生成的条件,而随后的答案是由GPT-3生成的。这些示例是在一次会议中连续生成的,论文没有省略或重复尝试任何提示。在所有情况下,生成的句子似乎是该词的正确用法,或者至少是似是而非的用法。在最后一句话中,该模型为“screeg”一词(即“screeghed”)生成了一个似是而非的共轭词,尽管该词的使用有点尴尬(“screeghed at each other”),尽管从某种意义上说它可以描述玩具剑战。总的来说,GPT-3似乎至少擅长在句子中使用新单词。
3.9.6 纠正英语语法
图3.17:纠正英语语法的few-shot任务的代表性GPT-3完成情况
图3.17:纠正英语语法的few-shot任务的代表性GPT-3完成情况。黑体是GPT-3的补全,纯文本是人工提示。在前几个例子中,提示和完成都是由人提供的;然后,这将作为后续示例的条件,其中GPT-3接收到连续的额外提示并提供补全。除了前几个例子作为条件作用和“Poor English input/Good English output”框架外,GPT-3没有提供任何特定的任务。论文注意到,“差”和“好”英语(以及术语本身)之间的区别是复杂的、上下文相关的和有争议的。正如提到房屋租金的例子所示,该模型对“好”的假设甚至可能导致错误(在这里,该模型不仅调整语法,还以改变含义的方式删除了“便宜”一词)。
另一项非常适合少数人学习的任务是纠正英语语法。论文在fewshot设置中用GPT-3测试这一点,给出“Poor English Input:
由于论文的训练数据集来自互联网,因此论文的模型可能是在一些基准测试集上训练的。在没有既定最佳实践的情况下,从互联网规模的数据集中准确检测测试污染是一个新的研究领域。虽然在不调查污染的情况下训练大型模型是常见的做法,但鉴于训练前数据集的规模不断扩大,论文认为这个问题正变得越来越重要。
这种担忧不仅仅是假设。最早在Common Crawl数据上训练语言模型的论文之一【TL18】检测到并删除了与其中一个评估数据集重叠的训练文档。GPT-2【RWC+19】等其他工作也进行了事后重叠分析。他们的研究相对令人鼓舞,他们发现,虽然模型在训练和测试之间重叠的数据上的表现稍好一些,但这并没有对报告的结果产生显著影响,因为数据被污染的比例很小(通常只有几个百分比)。
图4.1: GPT-3训练曲线 在训练分布的重复数据消除验证分割上测量训练期间的模型性能。虽然在训练和验证性能之间存在一些差距,但随着模型大小和训练时间的增加,差距只会最小,这表明大部分差距来自难度的差异,而不是过度拟合。
GPT-3的运作模式略有不同。一方面,数据集和模型的大小大约比GPT-2所用的数据集和模型大两个数量级,并且包括大量Common Crawl,从而增加了污染和记忆的可能性。另一方面,正是由于数据量大,即使是GPT-3 175B也没有过多地拟合其训练集,这是相对于重复数据消除所用的已进行验证集而言的(图4.1)。因此,论文预计污染可能会频繁发生,但其影响可能没有人们担心的那么大。
论文最初试图通过主动搜索并试图消除我们的训练数据与本文研究的所有基准的开发和测试集之间的任何重叠来解决污染问题。不幸的是,一个bug只导致从训练数据中部分删除所有检测到的重叠。由于训练成本,对模型进行再训练是不可行的。为了解决这个问题,论文详细研究了剩余检测到的重叠如何影响结果。
对于每个基准测试,论文都会生成一个“干净”的版本,删除所有可能泄漏的示例,粗略定义为与预训练集中的任何内容重叠13克的示例(或当其短于13克时与整个示例重叠)。论文的目标是非常保守地标记可能存在污染的任何内容,以便生成一个干净的子集,该子集具有很高的可信度,没有污染。具体程序详见附录C。
图4.2:基准污染分析
图4.2:基准污染分析我们构建了每个基准的清洁版本,以检查训练集中的潜在污染。x轴是已知数据集中有多少数据是干净的且置信度很高的保守下限,y轴显示了仅对已验证干净子集进行评估时的性能差异。大多数基准的绩效变化很小,但有些被标记为进一步审查。在检查中,论文发现了一些PIQA和Winograd结果受到污染的证据,论文在第3节中用星号标记了相应的结果。论文没有发现其他基准受到影响的证据。
然后,论文在这些干净的基准上评估GPT-3,并与原始分数进行比较。如果干净子集上的得分与整个数据集上的得分相似,这表明污染即使存在,也不会对报告的结果产生显著影响。如果干净子集的得分较低,这表明污染可能会扩大结果。图4.2总结了结果。虽然潜在污染通常很高(四分之一的基准得分超过50%),但在大多数情况下,性能变化很小,而且论文看不到任何证据表明污染水平和性能差异是相关的。论文得出结论,要么保守方法大大高估了污染,要么污染对性能几乎没有影响。
下面,论文将更详细地回顾以下几种具体情况:(1)模型在清洁版本上的性能明显较差,或(2)潜在污染非常高,这使得性能差异难以测量。
论文的分析标记了六组有待进一步研究的基准:单词置乱、阅读理解(QuAC、SQuAD2、DROP)、PIQA、Winograd、语言建模任务(Wikitext任务,1BW)和德语到英语翻译。由于重叠分析设计得非常保守,论文预计它会产生一些误报。将每组任务的结果总结如下:
我们还检查了污染严重但对性能的影响接近于零的数据集,只是为了验证实际存在的污染程度。这些似乎经常包含误报。他们要么没有实际的污染,要么污染没有给出任务的答案。一个值得注意的例外是LAMBADA,它似乎有大量的真实污染,但对性能的影响非常小,干净的子集得分在完整数据集的0.5%以内。而且,严格地说,论文的填空格式排除了最简单的记忆形式。尽管如此,由于论文在本文中对LAMBADA取得了很大的进展,结果部分指出了潜在的污染。
论文的污染分析的一个重要限制是,无法确保干净的子集是从与原始数据集相同的分布中提取的。记忆可能会扩大结果,但同时也会被一些统计偏差所抵消,从而使干净的子集变得更容易。然而,接近零的移位数量表明这是不可能的,并且论文也观察到小模型的移位没有明显的差异,这些模型不太可能被记忆。
总的来说,论文已经尽了最大努力来衡量和记录数据污染的影响,并根据严重程度来注意或彻底消除有问题的结果。无论是在设计基准还是在训练模型时,要解决这一重要而微妙的问题,还有许多工作要做。有关论文分析的更详细解释,请参阅附录C。
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在许多其他任务中表现出色,这一点尤其引人注目。
GPT-3有几个结构和算法限制,这可以解释上述一些问题。论文专注于探索自回归语言模型中的上下文学习行为,因为使用该模型类可以直接对可能性进行采样和计算。因此,论文的实验不包括任何双向架构或其他训练目标,如去噪。这与最近的许多文献有明显的不同,这些文献记录了在使用这些方法而不是标准语言模型时,改进的微调性能【RSR+19】。因此,论文的设计决策是以在经验上受益于双向性的任务上的潜在较差性能为代价的。这可能包括填空任务、涉及回顾和比较两段内容的任务,或者需要重读或仔细考虑一篇长文章,然后生成一个非常简短的答案的任务。这可能是GPT-3在一些任务上表现落后的一个可能的解释,例如WIC(涉及比较两句话中单词的使用)、ANLI(涉及比较两句话以确定其中一句是否暗示另一句)和一些阅读理解任务(例如QuAC和RACE)。我们还根据过去的文献推测,大型双向模型在微调时比GPT-3更强。在GPT-3的规模上建立一个双向模型,和/或尝试使双向模型在很少或零炮学习的情况下工作,是未来研究的一个有希望的方向,并有助于实现“两全其美”。
本文所述的一般方法的一个更根本的局限性是,它最终可能会(或可能已经)达到预训练目标的限制,即扩大任何类似LM的模型,无论是自回归模型还是双向模型。论文目前的目标是平等地衡量每一个标志,缺乏预测什么最重要,什么不那么重要的概念。【RRS20】展示了为感兴趣的实体定制预测的好处。此外,对于自监督的目标,任务规范依赖于将所需的任务强制纳入预测问题,而最终,有用的语言系统(例如虚拟助理)可能更好地被认为是采取目标导向的行动,而不仅仅是进行预测。最后,大型预训练的语言模型没有建立在其他经验领域的基础上,例如视频或真实世界的物理交互,因此缺乏大量关于世界的上下文[BHT+20]。由于所有这些原因,缩放纯自监督预测可能会达到极限,并且可能需要使用不同的方法进行增强。这方面有希望的未来方向可能包括从人类身上学习目标函数[ZSW+19a],通过强化学习进行微调,或添加其他模式,如图像,以提供基础和更好的世界模型[CLY+19]。
语言模型普遍存在的另一个限制是预训练期间的样本效率低。虽然GPT-3朝着测试时间样本效率更接近人类(一次或零次)的方向迈出了一步,但它在训练前看到的文本仍然比人类一生中看到的文本多得多【Lin20】。提高训练前样本的效率是未来工作的一个重要方向,可能来自于在物理世界中提供额外信息的基础,也可能来自算法的改进。
GPT-3中与few-shot学习相关的一个限制,或至少是不确定性,是关于few-shot学习是否真的在推理时“从头开始”学习新任务,还是仅仅识别和识别它在训练期间学习的任务的模糊性。这些可能性存在于不同的范围内,从训练集中的演示(从与测试时完全相同的分布中提取)到识别相同的任务但格式不同,到适应QA等一般任务的特定风格,再到完全从头学习技能。GPT-3在这一范围内的位置也可能因任务而异。合成任务,如拼字或定义无意义的单词,似乎特别容易从头学习,而翻译显然必须在训练前学习,尽管可能来自组织和风格与测试数据非常不同的数据。最终,甚至不清楚人类从白手起家和之前的演示中学到了什么。即使在训练前组织不同的演示,并在测试时识别它们,对于语言模型来说都是一种进步,但准确地理解射门学习的有效性是未来研究中一个尚未探索的重要方向。
无论目标函数或算法如何,与GPT-3规模的模型相关的一个限制是,它们既昂贵又不方便进行推理,这可能对当前形式的该规模模型的实际适用性提出挑战。解决这一问题的一个可能的未来方向是将大型模型提炼为可管理的大小,以用于特定任务。GPT-3等大型模型包含非常广泛的技能,其中大多数技能不需要用于特定任务,这表明原则上可以进行积极蒸馏。蒸馏在总体上得到了很好的探索【LHCG19a】,但尚未在千亿参数的规模上进行尝试;将其应用于这种规模的模型可能会带来新的挑战和机遇。
最后,GPT-3与大多数深度学习系统有一些共同的局限性——它的决策不容易解释,它对新输入的预测不一定能很好地校准,因为在标准基准上,它的性能差异比人类高得多,而且它保留了它所训练过的数据的偏差。最后一个问题——可能导致模型产生刻板印象或偏见内容的数据偏差——从社会角度来看是一个特别值得关注的问题,下一节将与其他问题一起讨论更广泛的影响(第6节)。
语言模型对社会有着广泛的有益应用,包括代码和写作自动完成、语法辅助、游戏叙事生成、改进搜索引擎响应和回答问题。但它们也有潜在的有害应用。与较小的模型相比,GPT-3提高了文本生成的质量和适应性,并增加了区分合成文本和人类书写文本的难度。因此,它有可能促进语言模型的有益和有害应用。
在这里,论文关注改进语言模型的潜在危害,不是因为论文认为危害必然更大,而是为了激发研究和缓解它们的努力。像这样的语言模型的广泛影响是多方面的。论文关注两个主要问题:第6.1节中GPT-3等语言模型被蓄意滥用的可能性,以及第6.2节中GPT-3等模型中的偏见、公平性和代表性问题。我们还简要讨论了能效问题(第6.3节)。
恶意使用语言模型可能有点难以预测,因为它们通常涉及在与研究人员预期截然不同的环境中或为不同的目的重新调整语言模型的用途。为了帮助实现这一点,我们可以从传统安全风险评估框架的角度进行思考,该框架概述了关键步骤,如识别威胁和潜在影响,评估可能性,以及确定风险作为可能性和影响的组合【Ros12】。论文讨论三个因素:潜在的滥用应用程序、威胁因素和外部激励结构。
6.1.1 潜在误用应用
任何依赖于生成文本的有害社会活动都可以通过强大的语言模型来增强。这方面的例子包括错误信息、垃圾邮件、网络钓鱼、滥用法律和政府程序、欺诈性学术论文写作和社会工程借口。这些应用程序中的许多都限制了人类编写足够高质量的文本。生成高质量文本的语言模型可以降低开展这些活动的现有障碍,提高其效率。
随着文本合成质量的提高,语言模型的误用可能性增加。GPT-3能够生成几个段落的合成内容,人们很难将其与3.9.4中的人类书面文本区分开来,这是这方面一个令人担忧的里程碑。
6.1.2 威胁因素分析
威胁行为体可以按技能和资源级别进行组织,范围从能够制造恶意产品的低技能或中等技能和资源的行为体到“高级持续威胁”(APT):具有长期议程的高技能和资源充足(如国家赞助)的团体【SBC+19】。
为了了解中低技能演员如何看待语言模型,论文一直在监控论坛和聊天组,其中经常讨论错误信息战术、恶意软件分发和计算机欺诈。虽然在2019年春季GPT-2首次发布后,论文确实发现了关于滥用的重要讨论,但论文发现实验实例较少,自那以后没有成功部署。此外,这些误用讨论与媒体对语言模型技术的报道有关。从这一点来看,论文评估,这些行为体的滥用威胁并非立即发生,但可靠性的显著提高可能会改变这一情况。
由于APT通常不会公开讨论操作,论文已经咨询了专业威胁分析师,了解APT可能涉及使用语言模型的活动。自GPT-2发布以来,在使用语言模型可能带来潜在收益的操作方面没有明显差异。评估认为,语言模型可能不值得投入大量资源,因为没有令人信服的证据表明,当前的语言模型明显优于当前的文本生成方法,而且“针对性”或“控制”语言模型内容的方法仍处于非常早期的阶段。
6.1.3 外部激励结构
每个威胁行为体小组也有一套战术、技术和程序(TTP),他们依靠这些战术、技术和程序来完成议程。TTP受经济因素的影响,如可扩展性和易部署性;网络钓鱼在所有群体中都非常流行,因为它提供了一种低成本、低投入、高收益的部署恶意软件和窃取登录凭据的方法。使用语言模型来扩充现有TTP可能会导致更低的部署成本。
易用性是另一个重要的激励因素。拥有稳定的基础设施对TTP的采用有很大的影响。然而,语言模型的输出是随机的,尽管开发人员可以约束这些输出(例如使用top-k截断),但如果没有人为的反馈,它们就无法一致地执行。如果社交媒体虚假信息机器人在99%的时间内产生可靠的输出,但在1%的时间内产生不一致的输出,这可能会减少操作该机器人所需的人力。但是仍然需要一个人来过滤输出,这限制了操作的可伸缩性。
基于论文对该模型的分析以及对威胁行为者和环境的分析,论文怀疑人工智能研究人员最终会开发出足够一致和可控的语言模型,从而使恶意行为者更感兴趣。论文预计这将给更广泛的研究社区带来挑战,并希望通过缓解研究、原型设计和与其他技术开发人员协调的结合来解决这一问题。
训练数据中存在的偏见可能会导致模型产生刻板印象或偏见内容。这是令人担忧的,因为模式偏见可能会以不同的方式伤害相关群体中的人,因为它会强化现有的刻板印象,并在其他潜在伤害中产生贬低人格的描述【Cra17】。论文对模型中的偏差进行了分析,以便更好地理解GPT-3在公平性、偏差和代表性方面的局限性。
论文的目标不是详尽地描述GPT-3,而是对其一些局限性和行为进行初步分析。论文关注与性别、种族和宗教有关的偏见,尽管可能存在许多其他类型的偏见,可以在后续工作中进行研究。这是一个初步分析,即使在所研究的类别内,也不能反映模型的所有偏差。
广义上,论文的分析表明,互联网训练模型存在互联网规模偏差;模型往往反映其训练数据中存在的刻板印象。下面我们将讨论我们在性别、种族和宗教方面的偏见的初步发现。论文研究了1750亿参数模型和类似的较小模型中的偏差,以了解它们在这个维度上是否存在差异以及如何存在差异。
6.2.1 性别
在论文对GPT-3中的性别偏见的调查中,论文关注性别与职业之间的关系。论文发现,在诸如“职业是一个”(中性变量)这样的背景下,一般来说,职业后面有男性性别识别码的概率高于女性性别识别码(换句话说,他们倾向于男性)。在我们测试的388个职业中,83%的职业更可能在GPT-3后出现男性识别码。我们通过向模型输入一个上下文(如“那个侦探是个”)来衡量这一点,然后观察模型后续出现男性指示词(如男性、男性等)或女性指示词(女性、女性等)的概率。特别是,表现出较高教育水平的职业,如立法者、银行家或名誉教授,以及需要艰苦体力劳动的职业,如梅森、米尔赖特和警长,都有着强烈的男性倾向。女性识别码更可能遵循的职业包括助产士、护士、接待员、管家等。
论文还测试了当论文将上下文转换为“胜任{职业}是一个”(胜任变量)时,以及当论文将上下文转换为“胜任{职业}是”(胜任变量)时,数据集中每个职业的这些概率是如何变化的。论文发现,当提示“胜任的{职业}是”时,大多数职业后面跟着男性识别码的概率甚至比后面跟着女性识别码的概率更高,而我们原来的中立提示“胜任的{职业}是”。在提示“不称职的{职业}是”的情况下,大多数职业仍然倾向于男性,其概率与我们最初的中立提示相似。平均职业偏差- 1njobs ∑jobs log(P( female ∣ Context )P( male|Context ))) 对于中性变体,−2.14适用于合格变型和−1.15对于不合格的变体。
论文还使用两种方法对Winogender数据集[RNLVD18]进行代词解析,这进一步证实了该模型倾向于将大多数职业与男性联系起来。一种方法测量了模型将代词正确指定为职业或参与者的能力。例如,论文为模型提供了一个上下文,例如“顾问与被建议者会面,因为她想获得有关求职的建议。”她“引用”并找到两个可能选项中概率最低的选项(职业选项:顾问;参与者选项:被建议者)。
“职业”和“参与者”这两个词往往带有社会偏见,例如假设大多数居住者默认为男性。论文发现,语言模型学习到了其中一些偏见,比如女性代词比男性代词更倾向于将女性代词与参与者的位置联系起来。GPT-3 175B在这项任务的所有模型中具有最高的准确性(64.17%)。这也是唯一一个女性占有者句子(正确答案是职业选项的句子)的准确率高于男性的模型(81.7%对76.7%)。与女性代词相比,所有其他模型对有职业句子的男性代词的准确率都较高,但论文的第二大模型GPT-3 13B除外,GPT-3 13B对这两种代词的准确率相同(60%)。这提供了一些初步证据,表明在偏见问题可能使语言模型容易出错的地方,较大的模型比较小的模型更稳健。
论文还进行了共现测试,分析了哪些单词可能出现在其他预选单词附近。论文创建了一个模型输出样本集,为数据集中的每个提示生成800个长度为50的输出,每个输出的温度为1,顶部p为0.9。对于性别,论文有“他非常”、“她非常”、“他会被描述为”、“她会被描述为”9这样的提示。论文使用现成的词性标记来查看前100个最受欢迎单词中的形容词和副词【LB02】。论文发现,与男性相比,女性更常使用“美丽”和“华丽”等以外表为导向的词来描述,而男性则更常使用范围更广的形容词来描述。
表6.1:175B模型中最具偏见的描述性词语
表6.1显示了该模型中最受欢迎的前10个描述性单词,以及每个单词与代词指示符共现的原始次数。这里的“最受欢迎”指的是最偏向某一类别的词,与另一类别相比,它与该类别的共现率更高。为了更好地了解这些数字,论文还包括了每个性别所有限定词共现次数的平均值。
6.2.2 种族
图6.1:不同模型的种族情绪
为了调查GPT-3中的种族偏见,论文在模型中植入了诸如“种族男性非常”、“种族女性非常”和“人们会将种族人描述为”等提示,并为上述每个提示生成了800个样本,{race}替换为表示白人或亚洲人等种族类别的术语。然后,论文测量生成的样本中的单词共现。鉴于先前的研究表明,当职业等特征发生变化时,语言模型会产生不同情绪的文本,论文探讨了种族如何影响情绪。论文使用Senti WordNet(BES10)对每个种族中出现比例不成比例的词语进行情绪测量。每个单词的情绪从100到-100不等,正面分数表示正面单词(例如:奇妙:100,友好:87.5),负面分数表示负面单词(例如:不幸:-87.5,恐怖:-87.5),0分表示中性单词(例如:倾斜,小屋)。
应该指出的是,论文明确鼓励模型讨论种族,这反过来又产生了侧重于种族特征的文本;这些结果并非来自于模型在野外谈论种族,而是在一个实验装置中谈论种族,在那里他们已经做好了这样做的准备。此外,由于论文只是通过观察单词共现来衡量情绪,因此产生的情绪可以反映社会历史因素,例如,与奴隶制讨论相关的文本通常会有负面情绪,这可能导致人口统计学与此测试方法下的负面情绪相关联。
在论文分析的所有模型中,“亚洲人”的情绪一直很高,在7个模型中的3个中排名第一。另一方面,“黑人”的情绪一直很低,在7个模型中,有5个排名最低。这些差异在较大型号上略有缩小。该分析给出了不同模型的偏差,并强调需要对情绪、实体和输入数据之间的关系进行更复杂的分析。
6.2.3 宗教
表6.2:显示了GPT-3 175B模型中关于每种宗教的十个最受欢迎的词。
论文通过生成800个长度的模型输出,研究了哪些单词与无神论、佛教、基督教、印度教、伊斯兰教和犹太教相关的宗教术语共同出现≈50,温度为1,每个提示符的顶部p为0.9。论文对上述六个宗教类别中的每一个都给出了性质为“{宗教从业者}”的提示(例如“基督徒”)。然后,论文允许该模型自然地进行补全,并创建了一个补全语料库,用于研究单词的共现。
以下是模型的输出示例:
佛教徒分为两大分支——小乘和大乘。小乘是较为保守的分支,以僧侣生活和最早的佛经为中心,拒绝承认后来的大乘佛经为真经。
与种族相似,论文发现这些模型与宗教术语相关联,表明一些倾向于反映这些术语有时在世界上的表现方式。例如,在伊斯兰教中,论文发现诸如斋月、先知和清真寺等词语的共同出现率高于其他宗教。论文还发现,与其他宗教相比,暴力、恐怖主义和恐怖主义等词与伊斯兰教的共同出现率更高,在GPT-3中,这些词位列伊斯兰教最受欢迎的40个词之首。
6.2.4 未来偏见和公平挑战
论文提出了这一初步分析,以分享论文发现的一些偏差,以推动进一步的研究,并强调在大规模生成模型中描述偏差的固有困难;论文希望这将是我们不断研究的领域,并很高兴与社区讨论不同的方法论方法。我们将本节中的工作视为主观的路标——我们选择了性别、种族和宗教作为出发点,但论文认识到这一选择中固有的主观性。论文的工作受到了有关描述模型属性的文献的启发,以开发信息性标签,如模型卡,用于模型报告(MWZ+18)。
归根结底,重要的不仅仅是描述语言系统中的偏见,还要进行干预。关于这方面的文献也很广泛[QMZH19,HZJ+19],因此论文仅对大型语言模型的未来方向提供一些简短的评论。为了为在通用模型中有效预防偏见铺平道路,需要建立一个共同的词汇表,将这些模型在减少偏见方面的规范、技术和经验挑战联系在一起。有更多的研究空间,涉及NLP之外的文献,更好地阐明关于危害的规范性陈述,以及受NLP系统影响的社区的生活经验【BBDIW20】。因此,缓解工作不应仅以指标驱动的目标来“消除”偏差,因为这已被证明存在盲点【GG19,NvNvdG19】,而应以整体的方式进行。
实际的大规模预训练需要大量的计算量,这是一种能耗高的计算:训练GPT-3 175B在预训练期间消耗了数千PB/s-days的计算量,而1.5B参数GPT-2模型则消耗了数十PB/s-days的计算量(图2.2)。这意味着我们应该认识到[SDSE19]所倡导的此类模式的成本和效率。
大规模预训练的使用还提供了另一个视角,通过它可以查看大型模型的效率——论文不仅应该考虑用于训练它们的资源,还应该考虑这些资源如何在模型的生命周期内摊销,这些资源随后将用于各种目的,并针对特定任务进行微调。虽然像GPT-3这样的模型在训练过程中消耗大量资源,但一旦训练好,它们的效率可能会出人意料:即使使用完整的GPT-3 175B,从一个经过训练的模型生成100页内容的成本大约为0.4千瓦时,或者仅需几美分的能源成本。此外,模型蒸馏(LHCG19a)等技术可以进一步降低此类模型的成本,使论文能够采用一种范式,即训练单个大规模模型,然后创建更高效的模型版本,以便在适当的环境中使用。随着时间的推移,算法的进步也会自然地进一步提高此类模型的效率,类似于在图像识别和神经机器翻译中观察到的趋势[HB20]。
有几行工作集中于增加语言模型中的参数计数和/或计算,以此作为提高生成或任务性能的手段。早期的一项工作将基于LSTM的语言模型扩展到超过10亿个参数(JVS+16)。一行工作直接增加了Transformer模型的大小,按比例放大了每个令牌的参数和触发器。这方面的工作相继增加了模型尺寸:原始论文中的2.13亿个参数[VSP+17],3亿个参数[DCLT18],15亿个参数[RWC+19],80亿个参数[SPP+19],110亿个参数[RSR+19],最近的170亿个参数[Tur20]。第二条工作重点是增加参数计数,而不是计算,这是一种在不增加计算成本的情况下增加模型存储信息能力的方法。这些方法依赖于条件计算框架[BLC13],具体而言,专家混合方法[SMM+17]已用于生成1000亿个参数模型,最近生成了500亿个参数转换模型[AJF19],尽管每个正向传递中实际使用的参数只有一小部分。第三种方法在不增加参数的情况下增加计算量;这种方法的示例包括自适应计算时间[Gra16]和通用Transformer[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]中得到了应用,尽管结果非常有限,也没有系统的研究。更广泛地说,语言模型metalearning有一个内循环-外循环结构,这使得它在结构上与一般应用于ML的metalearning相似。这里有大量文献,包括匹配网络【VBL+16】、RL2【DSC+16】、学习优化【RL16、ADG+16、LM17】和MAML【FAL17】。论文用前面的示例填充模型上下文的方法在结构上最类似于RL2,也类似于[HYC01],即通过计算跨时间步的模型激活来进行内部适应循环,而不更新权重,而外部循环(在本例中仅为语言模型预训练)更新权重,并隐式学习适应或至少识别推理时定义的任务的能力。【RCP+17】探讨了few-shot自回归密度估计,【GWC+18】将低资源NMT研究为一个少镜头学习问题。
虽然我们的few-shot方法的机制不同,但之前的工作也探索了使用预先训练的语言模型结合梯度下降来执行few-shot学习的方法【SS20】。另一个目标类似的子领域是半监督学习,其中UDA[XDH+19]等方法也探索了在标记数据非常少的情况下进行微调的方法。
用自然语言给出多任务模型指令首先在有监督的环境中用[MKXS18]形式化,并在语言模型中用[RWC+19]用于某些任务(如摘要)。文本到文本转换器[RSR+19]中也探讨了以自然语言呈现任务的概念,尽管它适用于多任务微调,而不是无权重更新的上下文学习
提高语言模型通用性和迁移学习能力的另一种方法是多任务学习[Car97],它将下游任务的混合微调在一起,而不是单独更新每个任务的权重。如果成功的多任务学习可以允许在不更新权重的情况下将单个模型用于多个任务(类似于论文的上下文学习方法),或者可以在更新新任务的权重时提高样本效率。多任务学习已显示出一些有希望的初步结果[LGH+15,LSP+18],多阶段微调最近已成为一些数据集SOTA结果的标准化部分[PFB18],并推动了某些任务的界限[KKS+20],但仍受到手动管理数据集集合和设置培训课程的需要的限制。相比之下,规模足够大的预培训似乎提供了预测文本本身隐含的“自然”广泛的任务分布。未来工作的一个方向可能是尝试为多任务学习生成更广泛的显式任务集,例如通过程序生成[TFR+17]、人机交互[ZSW+19b]或主动学习[Mac92]。
过去两年中,语言模型的算法创新非常巨大,包括基于去噪的双向性[DCLT18]、前缀[DL15]和编解码器架构[LLG+19,RSR+19]、训练期间的随机排列[YDY+19]、提高采样效率的架构[DYY+19]、数据和训练过程的改进[LOG+19],嵌入参数[LCG+19]提高了效率。其中许多技术在下游任务中提供了显著的收益。在这项工作中,论文继续关注纯自回归语言模型,以关注上下文学习性能,并降低大型模型实现的复杂性。然而,结合这些算法进步很可能会提高GPT-3在下游任务中的性能,尤其是在微调设置中,并且将GPT-3的规模与这些算法技术相结合是未来工作的一个有希望的方向。
论文提出了一个1750亿参数的语言模型,该模型在zero-shot、one-shot和few-shot设置下的许多NLP任务和基准测试中显示出强大的性能,在某些情况下几乎与最先进的微调系统的性能相匹配,并且在动态定义的任务中生成高质量的样本和强大的定性性能。论文记录了在不使用微调的情况下性能扩展的大致可预测趋势。论文还讨论了这类模型的社会影响。尽管有许多局限性和弱点,这些结果表明,非常大的语言模型可能是开发适应性强的通用语言系统的一个重要因素。
如第2.2节所述,论文采用了两种技术来提高Common Crawl数据集的质量:(1)过滤Common Crawl和(2)模糊重复数据删除:
为了提高Common Crawl的质量,论文开发了一种自动过滤方法来删除低质量的文档。使用原始WebText作为高质量文档的代理,论文训练了一个分类器来区分这些文档和原始的Common Crawl。然后,使用该分类器对Common Crawl进行重新采样,对分类器预测质量较高的文档进行排序。该分类器使用具有Spark标准标记器和HashingTF 10特征的logistic回归分类器进行训练。对于积极的例子,论文使用了一组精心策划的数据集,如WebText、Wikiedia和我们的网络图书语料库作为积极的例子,对于消极的例子,论文使用了未过滤的Common Crawl。论文使用这个分类器对常见的爬网文档进行评分。论文把每一份文件都保存在数据库中。
np.random.pareto (α)>1 - document_score
论文选择α=9,以获取分类器得分较高的大部分文档,但仍包括一些未分发的文档。选择α来匹配我们的分类器在WebText上的分数分布。论文发现,这种重新加权提高了质量,这是通过一系列分布外生成文本样本的损失来衡量的。
为了进一步提高模型质量并防止过度拟合(随着模型容量的增加,过度拟合变得越来越重要),论文使用Spark的MinHashLSH实现和10个哈希,使用与上述分类相同的功能,在每个数据集中模糊地消除重复文档(即删除与其他文档高度重叠的文档)。论文还模糊地从Common Crawl.中删除了WebText。总体而言,数据集大小平均减少了10%。
在筛选重复项和质量之后,论文还部分删除了基准数据集中出现的文本,如附录C所述。
为了训练GPT-3的所有版本,论文使用β1=0.9、β2=0.95和 ϵ=10−8 的Adam,论文将梯度的全局范数裁剪为1.0,并使用余弦衰减将学习率降低到其值的10%,超过2600亿个tokens(在2600亿个tokens之后,训练将以原始学习率的10%继续进行)。在前3.75亿tokens上存在线性LR预热。论文还根据模型大小,在前40-120亿个训练tokens上,将批量大小从一个小值(32k tokens)线性增加到完整值。在训练期间(直到到达历元边界)对数据进行采样而不进行替换,以最小化过度拟合。所有模型都使用0.1的权重衰减来提供少量正则化[LH17]。
在训练期间,论文总是按照完整 nctx=2048 token上下文窗口的序列进行训练,当文档短于2048时,将多个文档打包到单个序列中,以提高计算效率。具有多个文档的序列不会以任何特殊方式屏蔽,而是使用特殊的文本结尾标记来分隔序列中的文档,从而为语言模型提供必要的信息,以推断由文本结尾标记分隔的上下文是不相关的。这允许有效的训练,而无需任何特殊的序列特定掩码。
在第4节中,论文对测试集污染研究进行了高度概述。在本节中,论文将详细介绍方法和结果。
表C.1:从最脏到最干净的所有数据集的重叠统计。如果一个数据集示例与训练语料库中的任何文档有一个N-gram冲突,将其视为脏数据集示例。“Clean与All的相对差异”显示了基准测试中只有Clean示例与所有示例之间的性能变化百分比。“Count”显示示例数。“干净百分比”是干净示例与总示例的百分比。
初始训练集筛选 论文试图通过搜索13−gram在本工作中使用的所有测试/开发集与论文的训练数据之间存在重叠,论文删除了冲突13−grams及其周围200个字符的窗口,将原始文档拆分为多个部分。出于过滤目的,将gram定义为不带标点符号的小写、空格分隔的单词。长度小于200个字符的片段被丢弃。分为10多个部分的文件被认为已被污染,并被彻底销毁。最初,在发生一次冲突的情况下删除了整个文档,但这会过度惩罚长文档,如图书的误报。假阳性的一个例子可能是基于维基百科的测试集,其中维基百科的文章引用了一本书中的一行。论文忽略了13−grams与10多个训练文件相匹配的GRAM,因为检查表明,其中大多数包含可能确实希望模型学习的常见文化短语、法律模板或类似内容,而不是与测试集不希望出现的特定重叠。各种频率的示例可以在GPT-3发布库中找到。
重叠方法 对于论文的基准重叠分析,在第4节中,论文使用可变数量的单词N来检查每个数据集的重叠,其中N是单词中的第5百分位示例长度,忽略所有标点、空格和大小写。由于N值较低的伪碰撞,论文在非合成任务中使用的最小值为8。出于性能原因,论文将所有任务的最大值设置为13。表C.1中显示了N值和标记为脏的数据量。与GPT-2使用bloom过滤器计算测试污染的概率边界不同,论文使用Apache Spark计算所有训练集和测试集的精确碰撞。论文计算测试集和完整训练语料库之间的重叠,尽管根据第2.2节的规定,论文只对40%的过滤后的Common Crawl文档进行了训练。
论文将“脏”示例定义为与任何训练文档有任何N-gram重叠的示例,“干净”示例定义为没有冲突的示例。
尽管一些测试拆分未标记,但测试和验证拆分的污染水平相似。由于该分析揭示了一个错误,上述过滤在长文档(如书籍)上失败。出于成本考虑,不可能在修正后的训练数据集上对模型进行再训练。因此,一些语言模型基准测试加上儿童读物测试显示出几乎完全的重叠,因此本文不包括在内。重叠如表C.1所示
重叠结果 为了了解看到一些数据对模型执行下游任务有多大帮助,论文按脏度过滤每个验证和测试集。然后,对仅干净的示例进行评估,并报告干净分数和原始分数之间的相对百分比变化。如果干净的分数比总分差1%或2%以上,这表明该模型可能与它所看到的例子过于吻合。如果干净的分数明显更好,论文的过滤方案可能会优先将较简单的示例标记为脏的。
对于包含从web(如从Wikipedia提取的SQuAD)中提取的背景信息(但不是答案)或长度小于8个单词的示例的数据集,这种重叠度量往往会显示较高的误报率,而论文在筛选过程中忽略了这些信息(加词任务除外)。这种方法似乎无法发出良好信号的一个例子是DROP,这是一项阅读理解任务,其中94%的例子都是脏的。回答问题所需的信息是提供给模型的一篇文章,因此在训练期间看到这篇文章,而不是问答,并不意味着构成作弊。论文确认,每个匹配的训练文档只包含源文章,数据集中没有任何问题和答案。对性能下降更可能的解释是,过滤后剩下的6%的示例来自与脏示例略有不同的分布。
图4.2显示,随着数据集变得更加污染,清洁/全部分数的方差增加,但没有明显偏向于性能的改善或降低。这表明GPT-3对污染相对不敏感。有关论文标记以供进一步审查的数据集的详细信息,请参见第4节。
本附录包含用于推导用于训练图2.2中语言模型的近似计算的计算。作为一个简化的假设,论文忽略了注意力操作,因为它通常使用不到正在分析的模型总计算量的10%。
计算见表D.1,并在表标题中解释。
表D.1 模型计算量比较
表D.1:从右侧开始,向左移动,论文从每个模型使用的训练token的数量开始。接下来,论文注意到,由于T5使用编码器-解码器模型,在向前或向后传递期间,每个token只有一半的参数处于活动状态。论文注意到,每个token都涉及向前传递中每个活动参数的一次加法和一次乘法(忽略注意)。然后,论文添加一个3x的乘数来计算向后传递(计算 ∂params∂loss 和 ∂acts∂loss 的计算量与向前传球的计算量相似。结合前两个数字,论文得到每个token的每个参数的flops数。将该值乘以总训练token和总参数,得出训练期间使用的总flops数。论文报告了每秒的flops和petaflop/s-day(每一个都是8.64e+19flops)。
本附录详细介绍了衡量人类区分GPT-3生成的合成新闻文章与真实新闻文章的能力的实验。论文首先描述了在∼ 200字新闻文章,然后描述初步调查∼ GPT-3生成的500字新闻文章。
参与者:论文招募了718名独特的参与者参与6个实验。97名参与者因未通过互联网检查问题而被排除在外,共有621名参与者:343名男性,271名女性,7名其他参与者。参与者平均年龄为∼ 38岁。所有参与者都是通过Positly招募的,Positly维护着Mechanical Turk高绩效员工的白名单。所有参与者均来自美国,但没有其他人口限制。根据试运行确定的60分钟任务时间估计,参与者的参与费用为12美元。为了确保每个实验测验的参与者样本是唯一的,参与者不得多次参加实验。
程序与设计:论文任意选择了25篇出现在http://newser.com上的新闻文章于2020年初发布。论文使用文章标题和副标题生成125M、350M、760M、1.3B、2.7B、6.7B、13.0B和200B(GPT-3)参数语言模型的输出。每个模型生成每个问题五个输出,自动选择字数最接近人类书写文章的生成。这是为了尽量减少完成时间对参与者判断的影响。除删除正文中所述的故意损坏的控制模型外,每个模型的输出程序相同。
表E.1:每个实验的参与者详细信息和文章长度,以评估人类对∼ 200字模型生成新闻文章。由于互联网检查失败,参与者被排除在外。
图E.1:随着模型尺寸的增加,参与者花费更多的时间试图确定每一篇新闻文章是否是机器生成的。控制模型上的持续时间用虚线表示。最佳拟合线是对数标度上的线性模型,具有95%的置信区间。
在每个实验中,一半的参与者被随机分配到测验A,一半被随机分配到测验B。每个测验由25篇文章组成:一半(12-13)是人类书写的,一半(12-13)是模型生成的:测验A中有人类书写完成的文章在测验B中有模型生成完成的,反之亦然。测验问题的顺序对每个参与者进行了调整。参与者可以留下评论,并被要求说明他们之前是否看过这些文章。参与者被要求在测验期间不要查阅文章或其内容,并在测验结束时被问及是否在测验期间查阅了任何内容。
统计检验:为了比较不同运行的平均值,我们对每个模型的独立组与对照组进行了两样本t检验。这是使用scipy在Python中scipy.stats.ttest_ind函数实现的。在平均参与者准确度与模型大小的关系图中绘制回归线时,论文拟合了 ax−b 形式的幂律置信区间,由样本平均值的t分布估计。
表E.2:研究人类检测到∼ 500字模型生成新闻文章。由于互联网检查失败,参与者被排除在外。
持续时间统计:在正文中,论文讨论了一个发现,即人类参与者区分模型和人类生成的新闻文章的能力随着论文的模型变大而降低。论文还发现,一组给定问题的平均时间随着模型大小的增加而增加,如图E.1所示。尽管参与者投入了更多的时间,但准确度得分较低,这支持了一个发现,即较大的模型生成的新闻文章更难区分。
初步调查∼ 500字文章:论文招募了160名独特的美国参与者,通过Positly参与2个实验(详情见表E.2)。论文随机选择了2019年末的12篇路透社世界新闻文章,并为GPT-3 175B创建了一个上下文,其中包括一篇路透社文章,不在这12篇文章中。然后,论文使用文章标题和路透社的位置,根据GPT-3 175B和之前实验中的160M对照模型生成完井数据。这些测试用于为每个模型创建两个12个问题的测验,每个测验由一半人为撰写,一半由模型生成的文章组成。增加理解问题,并分3个阶段每隔30秒向参与者展示文章,以鼓励他们更仔细地阅读。参与者为此任务获得了12美元的报酬。模型生成选择方法、排除标准和统计测试与以前的实验相似。
GPT-3能够很好地适应除本文主体部分探讨的任务以外的许多任务。作为一个例子,在图F.1中,论文展示了一个提示中的四个未经处理的样本,建议模型以华莱士·史蒂文斯的风格写一首带有给定标题的诗。论文首先尝试了一些提示,然后在没有额外编辑或选择的情况下生成了四个样本(在温度1下使用nucleus采样[HBFC19],P=0.9进行采样)。当模型开始编写新的标题和作者标题,或进入散文评论时,完成部分被截断。
图F.1:来自上下文的四个未经修饰的补全,表明模型以华莱士·史蒂文斯的风格创作了一首诗,标题为“路上的阴影”。
下图说明了论文中所有任务的格式和措辞。所有数据均来自本节中的真实实况数据集,此处不包括GPT-3的样本。
图G.1:RACE-h的格式化数据集示例。在预测时,通过每个答案的无条件概率进行规范化,如2所述。
图G.2:ANLI R2的格式化数据集示例
图G.3:RACE-m的格式化数据集示例。在预测时,通过每个答案的无条件概率进行规范化,如2所述。
图G.4:PIQA的格式化数据集示例
图G.5:COPA的格式化数据集示例
图G.6:记录的格式化数据集示例。论文认为上面的上下文是一个“问题”,因为这就是任务在记录数据集中的呈现方式,以及在记录评估脚本中的评分方式。
图G.7:ANLI R1的格式化数据集示例
图G.8:OpenBookQA的格式化数据集示例。在预测时,论文通过每个答案的无条件概率进行归一化,如2所述。
图G.9:HellaSwag的格式化数据集示例
图G.10:ANLI R3的格式化数据集示例
图G.11:ARC的格式化数据集示例(挑战)。在预测时,通过每个答案的无条件概率进行归一化,如2所述。
图G.12:SAT类比的格式化数据集示例
图G.13:Winograd的格式化数据集示例。我们使用的“部分”评估方法比较了给定正确和不正确上下文的完成概率。
图G.14:Winogrande的格式化数据集示例。使用的“部分”评估方法比较了给定正确和不正确上下文的完成概率。
图G.15:MultiRC的格式化数据集示例。MultiRC有三个层次:(1)文章,(2)问题,(3)答案。在评估期间,准确度是在每个问题级别确定的,如果且仅当问题中的所有答案都正确标记时,才认为问题是正确的。因此,论文使用K来表示上下文中显示的问题数量。
图G.16:ARC的格式化数据集示例(简单)。在预测时,通过每个答案的无条件概率进行归一化,如2所述。
图G.17:StoryCloze的格式化数据集示例
图G.18:CoQA的格式化数据集示例
图G.19:循环字母的格式化数据集示例
图G.20:DROP的格式化数据集示例
图G.21:LAMBADA的格式化数据集示例
图G.22:字谜图1(A1)的格式化数据集示例
图G.23:Anagrams 2的格式化数据集示例
图G.24:自然问题的格式化数据集示例
图G.25:QuAC的格式化数据集示例
图G.26:符号插入的格式化数据集示例
图G.27:反向单词的格式化数据集示例
图G.28:SQuADv2的格式化数据集示例
图G.29:BoolQ的格式化数据集示例
图G.30:CB的格式化数据集示例
图G.31:RTE的格式化数据集示例
图G.32:WiC的格式化数据集示例
图G.33:WSC的格式化数据集示例
图G.34:TriviaQA的格式化数据集示例。TriviaQA允许多个有效完成。
图G.35:WebQA的格式化数据集示例
图G.36:De的格式化数据集示例→恩。这是one-shot和few-shot学习的格式,对于这个和其他语言任务,zero-shot学习的格式是“Q: What is the {language} translation of {sentence} A: {translation}”
图G.37:En→De的格式化数据集示例
图G.38:En→Fr的格式化数据集示例
图G.39:Fr→En的格式化数据集示例
图G.40:En的格式化数据集示例→反渗透
图G.41:Ro的格式化数据集示例→恩
表H.1:论文在本文中调查的每个任务、设置和模型的得分。
图H.1:所有SuperGLUE任务的所有结果。
图H.2:SAT任务的结果。
图H.3:所有Winograd任务的所有结果。
图H.4:所有算术任务的所有结果。
图H.5:所有完形填空和完成任务的所有结果。
图H.6:所有常识推理任务的所有结果。
图H.7:所有QA任务的所有结果。
图H.8:所有阅读理解任务的所有结果。
图H.9:所有ANLI轮次的所有结果。
图H.10:所有加扰任务的所有结果。
图H.11:所有翻译任务的所有结果。