摘要
近期的工作表明,在大量文本语料库上进行预训练,然后针对特定任务进行微调,可以在许多NLP任务和基准测试中取得实质性进展。虽然这种方法在架构上通常是与任务无关的,但仍然需要包含数千或数万示例的针对特定任务的微调数据集。相比之下,人类通常只需要几个示例或简单的说明就能执行新的语言任务——这是当前NLP系统仍难以做到的。在这里,我们展示了扩大语言模型规模可以极大地提高与任务无关、少量样本的性能,有时甚至能与先前的最先进的微调方法相媲美。具体来说,我们训练了GPT-3,这是一个拥有1750亿个参数的自回归语言模型,比之前的任何非稀疏语言模型的参数多10倍,并测试了它在少量样本设置下的性能。对于所有任务,GPT-3都是在没有任何梯度更新或微调的情况下应用的,任务和少量样本的演示仅通过文本与模型进行交互来指定。GPT-3在许多NLP数据集上表现出色,包括翻译、问答和填空任务,以及需要即时推理或领域适应的任务,如解乱词、在句子中使用新词或进行三位数算术运算。同时,我们也发现了一些GPT-3在少量样本学习方面仍然难以应对的数据集,以及一些与在大型网络语料库上进行训练相关的方法论问题。最后,我们发现GPT-3可以生成新闻文章样本,人类评估者很难将其与人工撰写的文章区分开来。我们讨论了这一发现以及GPT-3本身对社会更广泛的影响。
引言
近年来,NLP系统中出现了预训练语言表示的趋势,这些表示以越来越灵活和任务无关的方式应用于下游迁移任务。首先,使用词向量学习单层表示,并将其输入到特定任务的架构中;然后,使用具有多层表示和上下文状态的RNN形成更强的表示(尽管仍应用于特定任务的架构中);最近,预训练的循环或Transformer语言模型被直接微调,完全消除了对特定任务架构的需求。
这种最后一种范式在许多具有挑战性的NLP任务上取得了重大进展,如阅读理解、问答、文本蕴含等,并继续基于新的架构和算法进行改进。然而,这种方法的一个主要限制是,虽然架构与任务无关,但仍需要特定任务的数据集和特定任务的微调:要在所需任务上实现强大性能,通常需要在包含数千到数十万特定于该任务的示例的数据集上进行微调。出于几个原因,消除这种限制是理想的。
首先,从实际应用的角度来看,每个新任务都需要大量标记示例的数据集,这限制了语言模型的适用性。可能存在着广泛的有用语言任务,包括从纠正语法、生成抽象概念的示例到批评短篇小说等。对于这些任务中的许多任务,很难收集到大量有监督的训练数据集,尤其是在必须为每个新任务重复该过程时。
其次,随着模型表达能力的提高和训练数据分布的狭窄,利用训练数据中虚假相关性的潜力从根本上增大。这可能会给预训练加微调范式带来问题,在该范式中,模型设计为在预训练期间吸收信息,但随后在非常狭窄的任务分布上进行微调。例如,更大的模型并不一定能在分布外更好地泛化。有证据表明,在这种范式下实现的泛化能力可能很差,因为模型过于针对训练分布,而无法在其之外很好地泛化。因此,尽管微调模型在特定基准测试上的性能名义上达到了人类水平,但可能夸大了其在基础任务上的实际性能。
第三,人类不需要大量有监督的数据集来学习大多数语言任务——一个简短的自然语言指令(例如,“请告诉我这个句子描述的是快乐的事情还是悲伤的事情”)或至多极少量的演示(例如,“这里有两个人表现出勇敢的例子;请再给出一个勇敢的例子”)通常足以使人类以至少合理的熟练程度执行新任务。除了指出我们当前NLP技术存在概念上的局限性外,这种适应性还具有实际优势——它使人类能够无缝地混合或切换多个任务和技能,例如在长时间的对话中进行加法运算。为了更广泛地发挥作用,我们希望有一天我们的NLP系统也能拥有这种流畅性和通用性。
解决这些问题的一个潜在途径是元学习meta-learning——在语言模型背景下,这意味着模型在训练时发展出一套广泛的技能和模式识别能力,然后在推理时利用这些能力迅速适应或识别所需任务(如图1.1所示)。最近的工作试图通过我们所谓的“上下文学习”来实现这一点,它使用预训练语言模型的文本输入作为任务规范的形式:模型根据自然语言指令和/或任务的几个演示进行条件设置,然后预期仅通过预测接下来会发生什么来完成任务的更多实例。
虽然这种方法已经显示出一些初步的潜力,但它的结果仍然远远不如微调——例如,在自然问题上的成绩仅为4%,即使它的55 F1 CoQa成绩现在也比最先进的水平落后35分以上。为了使元学习成为解决语言任务的实用方法,显然需要对其进行重大改进。
语言建模中的另一个近期趋势可能提供了一条前进的道路。近年来,Transformer语言模型的容量已大幅增加,从1亿参数,到3亿参数,到15亿参数,再到80亿参数,110亿参数,最后达到170亿参数。每次增加都带来了文本合成和/或下游NLP任务的改进,并且有证据表明,与许多下游任务相关性很好的对数损失随着规模的增加而呈现出平稳的改进趋势。由于上下文学习涉及在模型参数中吸收许多技能和任务,因此上下文学习能力可能会随着规模的增加而显示出同样强大的增益。
在本文中,我们通过训练一个名为GPT-3的1750亿参数自回归语言模型来测试这一假设,并测量其上下文学习能力。具体来说,我们在二十多个NLP数据集以及几项新颖的任务上评估了GPT-3的性能,这些任务旨在测试模型对不太可能直接包含在训练集中的任务的快速适应能力。对于每个任务,我们在以下三种条件下评估GPT-3:(a)“少样本学习”,或上下文学习,我们允许将尽可能多的示例放入模型的上下文窗口(通常为10到100个);(b)“单样本学习”,我们只允许一个示例;(c)“零样本”学习,不允许任何示例,只向模型提供自然语言指令。原则上,GPT-3也可以在传统的微调设置中进行评估,但我们将其留给未来的工作。
图1.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在少样本设置下表现挣扎的任务,即使在GPT-3的规模下也是如此。这包括像ANLI数据集这样的自然语言推理任务,以及一些阅读理解数据集,如RACE或QuAC。通过对GPT-3的优缺点进行广泛描述,包括这些局限性,我们希望激发对语言模型中少样本学习的研究,并引起人们对最需要取得进展的领域的关注。
总体结果的直观感受可以从图1.3中看出,它汇总了各种任务(尽管它本身不应被视为严格或有意义的基准)。
我们还对“数据污染”进行了系统研究——这是在使用诸如Common Crawl等数据集训练高容量模型时日益严重的问题,因为这些数据集可能包含来自测试数据集的内容,仅仅是因为这些内容经常出现在网络上。在本文中,我们开发了系统的工具来测量数据污染并量化其扭曲效应。虽然我们发现数据污染对GPT-3在大多数数据集上的性能影响微乎其微,但我们确实发现了一些数据集,其中数据污染可能会夸大结果,我们根据污染的严重程度,要么不报告这些数据集上的结果,要么在报告时加上星号标注。
除了上述所有内容外,我们还训练了一系列较小的模型(参数范围从1.25亿到130亿),以便在零样本、一样本和少样本设置下将其性能与GPT-3进行比较。总的来说,对于大多数任务,我们发现在这三种设置下,模型性能与模型容量之间相对平稳地增长;一个值得注意的模式是,零样本、一样本和少样本性能之间的差距往往随着模型容量的增加而增大,这可能表明更大的模型是更擅长元学习的模型。
最后,鉴于GPT-3展现出的广泛能力,我们讨论了关于偏见、公平性和更广泛的社会影响的问题,并尝试对GPT-3在这方面的特性进行初步分析。
本文的其余部分组织如下:第2节描述了我们用于训练GPT-3和评估其性能的方法。第3节展示了在零样本、一样本和少样本设置下对各种任务进行的结果。第4节解决了数据污染(训练集和测试集重叠)的问题。第5节讨论了GPT-3的局限性。第6节讨论了更广泛的影响。第7节回顾了相关工作,第8节得出结论。
Ankie的评论:
1,2019年2月,OpenAI推出了GPT-2,仅仅时隔一年三个月,即2020年5月,他们又发布了GPT-3,这一创新成果正式点燃了整个AI行业的热情。先前的GPT-2、Bert等模型虽然在专业领域的应试得分尚算不错,但它们的通用能力却相对有限,可以说是较为“智障”。然而,GPT-3的出现彻底改变了这一局面,它具备了与人类进行基本自然语言理解的能力。
2,GPT-3的模型跟GPT-2一样,其核心在于训练参数的显著提升。GPT-2拥有1.5B的训练参数,而GPT-3则高达175B,整体提升幅度超过100倍。同时,训练数据也实现了大幅的增长,为GPT-3的卓越性能奠定了坚实的基础。
3,GPT-3继续关注通用性能,而非专业应试能力。为了避免微调模型,GPT-3使用了元学习meta-learning。