(GPT3)Language Models are Few-Shot Learners论文阅读

news2025/1/25 8:57:33

论文地址:https://arxiv.org/pdf/2005.14165v4.pdf

摘要


        最近的工作表明,通过对大量文本语料库进行预训练,然后对特定任务进行微调,许多 NLP 任务和基准测试取得了实质性进展。 虽然在体系结构中通常与任务无关,但此方法仍然需要特定于任务的微调数据集,其中包含数千或数万个示例。 相比之下,人类通常只能通过几个例子或简单的指令来执行一项新的语言任务——这是当前的 NLP 系统在很大程度上仍然难以做到的。 在这里,我们展示了扩大语言模型极大地提高了与任务无关的、少样本(few-shot)的性能,有时甚至可以与先前最先进的微调方法竞争。 具体来说,我们训练了 GPT-3,这是一种具有 1750 亿个参数的自回归语言模型(autoregressive language model),比之前的任何非稀疏语言模型多 10 倍,并在少样本(few-shot setting)设置中测试其性能。 对于所有任务,GPT-3 都在没有任何梯度更新或微调的情况下应用,任务和小样本演示(few-shot demonstrations)完全通过与模型的文本交互来指定GPT-3 在许多 NLP 数据集上实现了强大的性能,包括翻译、问答和完形填空任务,以及一些需要即时推理或领域适应的任务,例如解读单词,在 句子,或执行 3 位数算术。 同时,我们还确定了一些 GPT-3 的少样本学习仍然困难的数据集,以及一些 GPT-3 面临与大型网络语料库训练相关的方法论问题的数据集。 最后,我们发现 GPT-3 可以生成人类评估者难以区分与人类撰写的文章的新闻文章样本。 我们总体上讨论了这一发现和 GPT-3 的更广泛的社会影响。

1 简介

        近年来,在 NLP 系统中出现了一种趋势,即在 NLP 系统中预训练语言表征,以越来越灵活和与任务无关的方式应用于下游传输。 首先,使用词向量 学习单层表示并将其馈送到特定于任务的架构,然后使用具有多层表示和上下文状态的 RNN 来形成更强的表示(尽管仍然 适用于特定任务的架构),最近预训练的循环或转换器语言模型已经直接微调,完全消除了对特定任务架构的需要 。
        最后一个范式已经在许多具有挑战性的 NLP 任务上取得了实质性进展,例如阅读理解、问答、文本蕴含等等,并且在新的架构和算法的基础上继续取得进展。 然而,这种方法的一个主要限制是虽然架构与任务无关,但仍然需要特定于任务的数据集和特定于任务的微调:要在所需任务上实现强大的性能通常需要微调 特定于该任务的数千到数十万个示例的数据集。 出于几个原因,删除此限制是可取的
        首先,从实践的角度来看,每项新任务都需要大量标记示例数据集,这限制了语言模型的适用性。 存在非常广泛的可能有用的语言任务,包括从纠正语法到生成抽象概念的示例,再到评论短篇小说。 对于其中许多任务,很难收集大型监督训练数据集,尤其是当必须为每个新任务重复该过程时。
        其次,随着模型的表现力和训练分布的缩小,利用训练数据中的虚假相关性的潜力从根本上增加。 这可能会给预训练加微调范式带来问题,其中模型设计得很大以在预训练期间吸收信息,但随后会在非常窄的任务分布上进行微调。 例如 观察到更大的模型不一定能泛化出更好的分布外。 有证据表明,在这种范式下实现的泛化可能很差,因为该模型过于特定于训练分布,并且在它之外不能很好地泛化。 因此,经过微调的模型在特定基准上的性能,即使名义上处于人类水平,也可能会夸大底层任务的实际性能。

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

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


        解决这些问题的一个潜在途径是元学习(meta-learning)——在语言模型的背景下,这意味着模型在训练时发展出广泛的技能和模式识别能力,然后在推理时使用这些能力来快速适应或识别所需的任务(如图 1.1 所示)。 最近的工作试图通过我们所谓的“上下文学习”来做到这一点,使用预训练语言模型的文本输入作为任务规范的一种形式:该模型以自然语言指令和/或 一些任务的演示,然后只需预测接下来会发生什么,就可以完成任务的更多实例。
        虽然它已经显示出一些初步的希望,但这种方法仍然取得了远不如微调的结果——例如 在自然问题上只取得了 4%,甚至它的 55 F1 CoQa 结果现在落后 35 分以上 最先进的。 元学习显然需要大量改进才能成为解决语言任务的实用方法。
        语言建模的另一个最新趋势可能会提供一条前进的道路。 近年来,Transformer 语言模型的容量大幅增加,从 1 亿个参数 [RNSS18]、3 亿个参数 [DCLT18]、15 亿个参数 [RWC+19]、80 亿个参数 [SPP+19]、11 十亿个参数 [RSR+19],最后是 170 亿个参数 [Tur20]。 每一次增加都带来了文本合成和/或下游 NLP 任务的改进,并且有证据表明,与许多下游任务密切相关的对数损失遵循随着规模 [KMH+20] 的平稳改进趋势。 由于情境学习(in-context learning)涉及吸收模型参数内的许多技能和任务,因此情境学习能力可能会随着规模的扩大而表现出类似的强劲增长。

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

图 1.2:更大的模型可以越来越有效地使用上下文信息。 Weshowin-contextlearning 在一项简单任务上的性能要求模型从单词中删除随机符号,无论是否有自然语言任务描述(参见第 3.9.2 节)。 大型模型的更陡峭的“上下文学习曲线”表明从上下文信息中学习任务的能力有所提高。 我们在广泛的任务中看到了性质相似的行为。


        图 1.2 说明了我们研究的条件,并显示了一个简单任务的少样本学习,该任务要求模型从单词中删除无关的符号。 通过添加自然语言任务描述以及模型上下文中的示例数量 K,模型性能得到提高。小样本学习也随着模型大小的增加而显着提高。 尽管这种情况下的结果特别引人注目,但模型大小和上下文中示例数量的总体趋势适用于我们研究的大多数任务。 我们强调这些“学习”曲线不涉及梯度更新或微调,只是增加作为条件给出的演示数量。
        从广义上讲,在 NLP 任务上,GPT-3 在零样本和单样本设置中取得了令人鼓舞的结果,而在少样本设置中,有时甚至可以与最先进的技术相媲美,甚至偶尔会超过最先进的技术(尽管 state-of -最先进的是经过微调的模型)。 例如,GPT-3 在零样本设置中的 CoQA 上达到 81.5 F1,在单样本设置中的 CoQA 上达到 84.0 F1,在少样本设置中达到 85.0 F1。 类似地,GPT-3 在 TriviaQA 上的零样本设置准确率为 64.3%,单样本设置为 68.0%,少样本设置为 71.2%,最后一个是最先进的相对 微调在相同闭账设置下运行的模型。
        GPT-3 还在旨在测试快速适应或即时推理的任务中表现出一次性和少量熟练度,其中包括解读单词、执行算术以及在看到新单词只定义一次后在句子中使用它们。 我们还表明,在少样本设置中,GPT-3 可以生成合成新闻文章,人类评估者很难将这些文章与人类生成的文章区分开来。
同时,我们还发现了一些任务,即使在 GPT-3 的规模上,小样本性能也很挣扎。 这包括自然语言推理任务,如 ANLI 数据集,以及一些阅读理解数据集,如 RACE 或 QuAC。 通过对 GPT-3 的优势和劣势(包括这些局限性)进行广泛描述,我们希望能够激发对语言模型中少样本学习的研究,并提请人们注意最需要取得进展的地方。

图 1.3:所有 42 个以准确度为基准的基准的综合性能虽然零样本性能随着模型大小的增加而稳步提高,但少样本性能增加得更快,这表明更大的模型更擅长上下文学习。 有关标准 NLP 基准套件 SuperGLUE 的更详细分析,请参见图 3.8。


        从图 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 节总结。

2 方法


        我们的基本预训练方法,包括模型、数据和训练,类似于 [RWC+19] 中描述的过程,模型大小、数据集大小和多样性以及训练长度的扩展相对简单。 我们对上下文学习的使用也类似于 [RWC+19],但在这项工作中,我们系统地探索了在上下文中学习的不同设置。 因此,我们通过明确定义和对比我们将评估 GPT-3 或原则上可以评估 GPT-3 的不同设置来开始本节。 这些设置可以被视为取决于他们倾向于依赖多少特定于任务的数据的范围。 具体来说,我们可以在这个频谱上识别出至少四个点(参见图 2.1 的说明):

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

 

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

        图 2.1 显示了四种方法,以将英语翻译成法语为例。 在本文中,我们关注零样本、单样本和少样本,目的不是将它们作为竞争选择进行比较,而是作为不同的问题设置进行比较,这些问题设置在特定基准的性能和样本效率之间提供不同的权衡。 我们特别强调 few-shot 的结果,因为其中许多仅略微落后于最先进的微调模型。 然而,最终,一次,甚至有时零次,似乎是与人类表现最公平的比较,并且是未来工作的重要目标。
        下面的 2.1-2.3 节分别详细介绍了我们的模型、训练数据和训练过程。 2.4 节讨论了我们如何进行少样本、单样本和零样本评估的细节。

表 2.1:我们训练的模型的大小、架构和学习超参数(令牌的批量大小和学习率)。 所有模型都接受了总共 3000 亿个令牌的训练。

 2.1 模型和架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/521457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4月份公司测试部门来了个卷王之王,让人奔溃...

前段时间公司新来了个同事,听说大学是学的广告专业,因为喜欢IT行业就找了个培训班,后来在一家小公司干了三年,现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍,服务器缩减一半,性能反而提升4倍&am…

【AI面试】Anchor based 、 Anchor free 和 no anchor 的辨析

深度学习的目标检测算法,通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整(回归)区域边界,从而更准确地预测目标的真实边界框(ground-truth bounding box&…

【高数+复变函数】傅里叶积分

文章目录 【高数复变函数】傅里叶积分2. 傅里叶积分2.1 复数形式积分公式2.2 三角形式 上一节: 【高数复变函数】傅里叶级数 【高数复变函数】傅里叶积分 2. 傅里叶积分 在上一节中,我们知道了傅里叶级数的基本知识,其中,周期为…

【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新)

【MATLAB第31期】基于MATLAB的降维/全局敏感性分析/特征排序/数据处理回归问题MATLAB代码实现(持续更新) 本文敏感性分析主要分析回归问题,下期分析分类问题(fisher、rf、arf、nca等)。 一、降维方法(回归) 常见的降…

【动态规划】0-1背包问题

概述 0-1背包问题是一种经典的动态规划问题,它的基本形式是:有一个背包,容量为 C C C,有 n n n 个物品 i i i,每个物品 i i i 的重量为 w i w_i wi​,价值为 v i v_i vi​。现在要从这 n n n 个物品…

id选择器和class选择器

id选择器 id选择器用来选取带有给定id属性的元素。语法:#id例如: html <div id"container">...</div>css #container {color: blue; }id选择器的一些特征: 1. id选择器以#号开头,后跟元素的id属性值。 2. id选择器只能选取带有给定id属性的元素。 3.…

在 Windows 上安装 kubectl

一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;让我们一起学习在 Windows 上安装 kubectl。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、 kubectl是什么 kubectl是Kubernetes集群的命令行工具&#xff0c;通过kubectl能够对集群本身进行管理&#xf…

一篇文章学会高级IO

文章目录 理解IO的本质认识五种IO模型阻塞式IO非阻塞式IO信号驱动式IO多路转接式IO异步式IO 高级IO的理解以及意义多路转接式IO的深入学习select模型select函数详解封装网络套接字&#xff1a;Sock.hppselectServer.cc(服务器文件)运行结果小结 poll模型poll函数详解Sock.hpppo…

Reed-Muller序列

Reed-Muller函数的由来 我们知道对于连续信号&#xff0c;时间和频率是对偶域(duality)&#xff0c;其中正弦函数是时移的特征函数&#xff08;where sinusoids are eigenfunctions of time shifts&#xff09;。而在汉明空间(Hamming space)中&#xff0c;there are discrete…

牛客网面试必刷:BM19 寻找峰值

牛客网面试必刷&#xff1a;BM19 寻找峰值 前言一、解法1&#xff1a;暴力依次搜索二、解法2&#xff1a;二分搜索 前言 给定一个长度为n的数组nums&#xff0c;请你找到峰值并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回任何一个所在位置即可…

数据库基础篇 -- 1

目录 数据库基础 1.1&#xff1a;什么是数据库 1.2&#xff1a;常见数据库 1.3&#xff1a;数据库的基本使用 1.4&#xff1a;mysql的架构 1.5&#xff1a;sql分类 1.6&#xff1a;存储引擎 数据库基础 1.1&#xff1a;什么是数据库 数据库是指存储和管理结构化数据的…

解决频繁操作svn导致提交文件失败svn: E155015,亲测成功

我是因为频繁在本地删除创建重复的包和.java文件&#xff0c;以至于在提交至svn的时候会出现我之前删除的包和.java文件&#xff0c;所以我致力于将其删除干净&#xff0c;频繁的在本地删除、去svn删除…以至于再后来本地项目中和svn中都没有但是还是svn: E155015&#xff0c;查…

Cesium入门之五:认识Cesium中的Viewer

Viewer是Cesium中用于显示3D场景的组件。它提供了创建和控制3D场景所需的所有基本功能&#xff0c;包括加载3D模型、添加图像覆盖物、设置相机位置和方向、处理用户输入等。 在创建Viewer时&#xff0c;可以指定要使用的HTML元素&#xff08;例如canvas&#xff09;&#xff0…

06-redis集群模式(中) 项目测试的云服务ip变内网等(解决大多数问题)

目录 0-0 前言 : 1. 搭建redis集群成功后 项目测试 ip变成内网 2. 设置 redis.conf的配置 3. 这时候如果运行后面操作, 会出以下问题 问题一: 不开放节点端口号 ​编辑问题二: 不开放通讯端口号 4. 最最核心的正确操作: 5. 删除全部容器 删除全部目录挂载 6. 重新运…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)-架子搭建

目录 SSM(Vue3ElementPlusAxiosSSM前后端分离)--架子搭建 技术栈 项目搭建 配置pom.xml 项目全局配置web.xml SpringMVC 配置 创建springDispatcherServlet-servlet.xml 创建项目相关的包 完成测试TestController.java 整合hi.html 启动Tomcat , 浏览器输入http://local…

mybatis是如何集成到spring的

前言 集成前的使用方式 mybatis单独使用时&#xff0c;一般的写法如下所示&#xff1a; // mybatis初始化 String resource "mybatis-config.xml"; InputStream inputStream Resources.getResourceAsStream(resource); // 读取配置文件&#xff0c;创建SqlS…

这五个问题一下就看出阿里通义千问和ChatGPT的差距了

前言 阿里通义千问申请过了&#xff0c;为了看看达到了什么水平&#xff0c;于是我问题了5个ChatGPT回答过的问题1&#xff0c;这五个问题网上都是没有的&#xff0c;是我自己想出来的。 问题一:小明说今天他吃了一只公鸡蛋&#xff0c;请问小明诚实吗&#xff1f; ChatGPT 这…

黑马Redis笔记高级篇 | 多级缓存

黑马Redis笔记高级篇 | 多级缓存&#xff08;黑马教程云服务器踩坑记录&#xff09; 1、JVM进程缓存&#xff08;tomcat服务内部&#xff09;1.1 导入商品案例1.2 初识Caffeine1.3 实现进程缓存 2、Lua语法入门2.1 初识Lua2.2 变量和循环2.3 条件控制、函数 3、多级缓存3.1 安装…

快速了解LVQ神经网络是什么

本站原创文章&#xff0c;转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一. 快速了解LVQ神经网络 1.1 LVQ神经网络是什么 1.2 LVQ神经网络的表示 二. 关于LVQ神经网络的判别计算过程 2.1 LVQ神经网络模型与它的判别方法 2.2 LVQ模型的…

【论文阅读】MINOTAUR: Multi-task Video Grounding From Multimodal Queries

背景动机 细粒度的视频理解已经成为增强现实(AR)和机器人应用开发的关键能力。为了达到这种级别的视频理解&#xff0c;智能体(例如虚拟助手)必须具备识别和推理视频中捕获的事件和对象的能力&#xff0c;处理一系列视觉任务&#xff0c;如活动检测、对象检索和(空间)时间基础…