Abstract
最近的研究表明,通过在大量文本语料上进行预训练,然后在特定任务上进行微调,可以在许多自然语言处理任务和基准测试中取得显著进展。尽管这种方法在架构上通常是任务无关的,但它仍然需要特定任务的微调数据集,通常包含数千到数万个示例。相比之下,人类可以通常仅凭几个示例或简单的指令就能完成新的语言任务,而当前的自然语言处理系统在这方面仍然存在较大的困难。在这里,我们展示了扩大语言模型规模可以大大提升任务无关的少量示例表现,有时甚至能与之前最先进的微调方法相媲美。具体而言,我们训练了GPT-3,这是一个拥有1750亿个参数的自回归语言模型,是之前任何非稀疏语言模型的10倍,并测试了它在少量示例设置下的表现。
在所有任务中,GPT-3 在没有任何梯度更新或微调的情况下应用,任务和少量示例仅通过与模型的文本交互来指定。GPT-3 在许多自然语言处理数据集上表现出色,包括翻译、问答和填空任务,以及需要即时推理或领域适应的任务,如解码单词、在句子中使用新词或进行三位数算术运算。同时,我们也发现一些数据集上GPT-3的少量示例学习仍存在困难,以及一些与大规模网页语料训练相关的方法论问题。最后,我们发现GPT-3能够生成新闻文章样本,这些样本在人类评估者看来很难与人类撰写的文章区分开。我们讨论了这一发现以及GPT-3的一般社会影响。
1 Introduction
近年来,自然语言处理系统中出现了一种趋势,即使用预训练的语言表示,这些表示以越来越灵活和任务无关的方式应用于下游任务。最初,通过单层表示学习了词向量 [MCCD13, PSM14] 并将其输入到特定任务的架构中;随后,使用具有多层表示和上下文状态的递归神经网络(RNNs)来形成更强的表示 [DL15, MBXS17, PNZtY18](尽管仍应用于任务特定的架构)。最近,预训练的递归或transformer语言模型 [VSP+17] 已被直接微调,完全消除了对任务特定架构的需求 [RNSS18, DCLT18, HR18]。
这种最后的范式在许多具有挑战性的自然语言处理任务上,如阅读理解、问答、文本蕴涵等,带来了显著的进展,并且基于新架构和算法持续推进 [RSR+19, LOG+19, YDY+19, LCG+19]。然而,这种方法的一个主要限制是,尽管架构是任务无关的,但仍然需要任务特定的数据集和任务特定的微调:要在所需任务上获得强劲的表现,通常需要在特定于该任务的数据集上进行微调,数据集规模从几千到几万例不等。消除这一限制将是有利的,原因有多个。
首先,从实际角度来看,对每个新任务都需要大量标注样本的数据集,限制了语言模型的适用性。语言任务的范围非常广泛,涵盖了从语法纠正到生成抽象概念的例子,再到批评短篇小说等各种内容。对于许多这些任务,收集大量的监督训练数据集是困难的,尤其是当这一过程需要针对每个新任务重复进行时。
其次,利用训练数据中的虚假相关性的潜力随着模型的表现力和训练分布的狭窄性而根本性地增长。这可能会对预训练加微调的范式造成问题,在这种范式中,模型被设计得较大以便在预训练期间吸收信息,但随后在非常狭窄的任务分布上进行微调。例如,[HLW+20] 观察到较大的模型不一定在分布外能更好地泛化。有证据表明,在这种范式下实现的泛化可能较差,因为模型过于特定于训练分布,且在其外部泛化能力不足 [YdC+19, MPL19]。因此,即使微调模型在特定基准测试上的表现名义上达到人类水平,其在实际任务上的表现也可能被夸大 [GSL+18, NK19]。
第三,人类在学习大多数语言任务时并不需要大量的监督数据集——一句简单的自然语言指令(例如:“请告诉我这个句子描述的是快乐还是悲伤”)或最多少量的示例(例如:“这里有两个表现勇敢的例子;请再给一个勇敢的例子”)通常就足以让人类以合理的能力完成新任务。除了指出我们当前NLP技术的概念性限制之外,这种适应性还有实际优势——它使人类能够无缝地混合或切换多种任务和技能,例如在漫长的对话中进行加法。为了更广泛的实用性,我们希望未来的NLP系统能够具备这种流动性和通用性。
一种可能的解决方法是元学习——在语言模型的背景下,意味着模型在训练时发展广泛的技能和模式识别能力,然后在推理时利用这些能力快速适应或识别所需的任务(如图1.1所示)。最近的工作 [RWC+19] 尝试通过我们称之为“上下文学习”的方式来实现这一点:利用预训练语言模型的文本输入作为任务规范的一种形式:模型根据自然语言指令和/或少量任务示例进行条件设定,然后通过预测接下来的内容来完成更多的任务实例。
虽然这种方法初步显示出一些潜力,但其结果仍远逊于微调。例如,[RWC+19] 在 Natural Questions 上仅取得了 4% 的成绩,而其在 CoQa 上的 55 F1 分数也比当前最先进的技术低了超过 35 分。显然,元学习还需要显著改进才能成为解决语言任务的实际可行方法。
另一个近期的趋势可能提供了一条前进的道路。近年来,transformer语言模型的容量大幅增加,从1亿个参数 [RNSS18]