赞
踩
我们探索生成一条思维链(一系列中间推理步骤)如何显着提高大型语言模型执行复杂推理的能力。特别是,我们展示了这种推理能力如何通过一种称为思维链提示的简单方法在足够大的语言模型中自然出现,其中提供了一些思维链演示作为提示的范例。
对三种大型语言模型的实验表明,思维链提示可以提高一系列算术、常识和符号推理任务的表现。经验收益可能是惊人的。例如,仅用八个思维链示例来提示 PaLM 540B,即可在数学应用题的 GSM8K 基准上达到最先进的精度,甚至超过带有验证器的微调 GPT-3。
NLP 领域最近因语言模型而发生了革命性的变化(Peters 等人,2018 年;Devlin 等人,2019 年;Brown 等人,2020 年等)。事实证明,扩大语言模型的规模可以带来一系列好处,例如提高性能和样本效率(Kaplan 等人,2020 年;Brown 等人,2020 年等)。然而,事实证明,仅扩大模型大小不足以在算术、常识和符号推理等具有挑战性的任务上实现高性能(Rae 等人,2021)。
这项工作探讨了如何通过两个想法激发的简单方法来解锁大型语言模型的推理能力。首先,算术推理技术可以受益于生成导致最终答案的自然语言原理。除了使用形式语言的神经符号方法之外,先前的工作还使模型能够通过从头开始训练(Ling 等人,2017 年)或微调预训练模型(Cobbe 等人,2021 年)来生成自然语言中间步骤而不是自然语言(Roy 和 Roth,2015;Chiang 和 Chen,2019;Amini 等人,2019;Chen 等人,2019)。其次,大型语言模型提供了通过提示进行上下文中的小样本学习的令人兴奋的前景。也就是说,不必为每个新任务微调单独的语言模型检查点,而是可以简单地用一些演示该任务的输入输出示例来 “提示” 模型。值得注意的是,这对于一系列简单的问答任务来说是成功的(Brown 等人,2020)。
然而,上述两种想法都有关键的局限性。对于原理增强训练和微调方法来说,创建大量高质量原理的成本很高,这比普通机器学习中使用的简单输入输出对要复杂得多。对于 Brown 等人使用的传统的少镜头提示方法 (2020),它在需要推理能力的任务上表现不佳,并且通常不会随着语言模型规模的增加而得到实质性改善 (Rae et al., 2021)。在本文中,我们将这两种想法的优点结合起来,避免了它们的局限性。具体来说,我们探索语言模型在推理任务中执行少量提示的能力,给出由三元组组成的提示:<输入,思想链,输出>。思维链是一系列导致最终输出的中间自然语言推理步骤,我们将这种方法称为思维链提示。图 1 显示了示例提示。
图 2:PaLM 540B 使用思维链提示在 GSM8K 数学应用题基准上实现新的最先进性能。微调后的 GPT-3 和之前的最佳结果来自 Cobbe 等人(2021)。
我们对算术、常识和符号推理基准进行了实证评估,表明思维链提示优于标准提示,有时甚至达到了惊人的程度。图 2 展示了这样一个结果:在数学应用题的 GSM8K 基准上(Cobbe 等人,2021),PaLM 540B 的思维链提示大大优于标准提示,并实现了新的最先进水平表现。仅提示方法很重要,因为它不需要大型训练数据集,并且单个模型检查点可以执行许多任务而不失通用性。这项工作强调了大型语言模型如何通过一些带有有关任务的自然语言数据的示例来学习(参见通过大型训练数据集自动学习输入和输出背后的模式)。
在解决复杂的推理任务(例如多步骤数学应用题)时,请考虑自己的思维过程
。通常将问题分解为中间步骤并在给出最终答案之前解决每个步骤:“Jane 给了她妈妈 2 朵花后,她有 10 朵……那么当她给她爸爸 3 后,她将得到 7……所以答案是 7。”本文的目标是赋予语言模型生成类似思维链的能力——一系列连贯的中间推理步骤,从而得出问题的最终答案。我们将证明,如果在小样本提示的范例中提供了思想链推理的演示,那么足够大的语言模型可以生成思想链。
图 1:思维链提示使大型语言模型能够处理复杂的算术、常识和符号推理任务。强调了思维链推理过程。
图 1 显示了一个模型示例,该模型产生了解决数学应用题的一系列思路,否则该模型可能会出错。在这种情况下,思想链类似于一个解决方案,可以解释为一个解决方案,但我们仍然选择将其称为思维链,以更好地捕捉这样的想法:它模仿了一步一步的思维过程来得出答案(并且此外,解决方案/解释通常出现在最终答案之后(Narang 等人,2020 年;Wiegreffe 等人,2022 年;Lampinen 等人,2022 年等))。
作为促进语言模型推理的方法,思维链提示具有几个有吸引力的特性。
- 首先,思维链原则上允许模型将多步骤问题分解为中间步骤,这意味着额外的计算可以分配给需要更多推理步骤的问题。
- 其次,思维链为模型的行为提供了一个可解释的窗口,表明模型如何得出特定的答案,并为调试指出推理路径上可能出错的地方(尽管完全表征支持答案的模型计算仍然是一个悬而未决的问题)。
- 第三,思维链推理可用于数学应用题、常识推理和符号操作等任务,并且可能适用于(至少原则上)人类可以通过语言解决的任何任务。
- 最后,只需将思维链序列的示例包含到少样本提示的范例中,就可以在足够大的现成语言模型中轻松引发思维链推理。
在实证实验中,我们将观察思维链提示对于算术推理(第 3 节)、常识推理(第 4 节)和符号推理(第 5 节)的效用。
我们首先考虑图 1 中形式的数学应用题,它衡量语言模型的算术推理能力
。虽然算术推理对人类来说很简单,但语言模型经常难以完成算术推理任务(Hendrycks 等人,2021 年;Patel 等人,2021 年等)。引人注目的是,与 540B 参数语言模型一起使用时的思想链提示在多项任务上的表现与特定于任务的微调模型相当,甚至在具有挑战性的 GSM8K 基准测试中达到了新的最先进水平(Cobbe 等人,2021)。
图 3:算术、常识和符号推理基准的<输入、思维链、输出>三元组示例。思想链被突出显示。完整提示见附录 G。
我们在多个基准上探索各种语言模型的思维链提示。
基准。我们考虑以下五个数学应用题基准:(1) 数学应用题的 GSM8K 基准 (Cobbe et al., 2021),(2) 具有不同结构的数学应用题的 SVAMP 数据集 (Patel et al., 2021) ,(3) 各种数学应用题的 ASDiv 数据集(Miao 等人,2020),(4) 代数应用题的 AQuA 数据集,以及 (5) MAWPS 基准(Koncel-Kedziorski 等人,2016)。附录表 12 中给出了示例问题。
标准提示。对于基线,我们考虑由 Brown 等人推广的标准小样本提示(2020),其中在输出测试时示例的预测之前,给定语言模型输入输出对的上下文样本。范例的格式为问题和答案。模型直接给出了答案,如图 1(左)所示。
思想链提示。我们提出的方法是通过一系列相关答案的思路来增强小样本提示中的每个样本,如图 1(右)所示。由于大多数数据集只有评估分割,我们手动组合了一组八个小样本样本,并带有提示的思维链——图 1(右)显示了一个思维链样本,完整的样本集在附录表 20。(这些特定范例没有经过提示工程;稳健性在第 3.4 节和附录 A.2 中进行了研究。)为了研究这种形式的思维链提示是否能够成功地在一系列数学应用题中引出成功的推理,我们对除 AQuA 之外的所有基准测试使用了这套八个思维链范例,AQuA 是多项选择而不是自由回答 。对于 AQuA,我们使用了训练集中的四个示例和解决方案,如附录表 21 中所示。
语言模型。我们评估了五个大型语言模型。第一个是 GPT-3 (Brown et al., 2020),我们使用 text-ada-001、text-babbage-001、text-curie-001 和 text-davinci-002,它们大概对应于 InstructGPT 模型350M、1.3B、6.7B 和 175B 参数的模型(Ouyang et al., 2022)。第二个是 LaMDA(Thoppilan et al., 2022),它有 422M、2B、8B、68B 和 137B 参数的模型。第三个是PaLM,有8B、62B、540B参数的模型。第四个是 UL2 20B(Tay 等人,2022),第五个是 Codex(Chen 等人,2021,OpenAI API 中的 code-davinci-002)。我们通过贪婪解码从模型中进行采样(尽管后续工作表明,可以通过在许多采样代中采用大多数最终答案来改进思想链提示(Wang 等人,2022a))。对于 LaMDA,我们报告了五个随机种子的平均结果,其中每个种子都有不同的随机洗牌顺序的样本。由于 LaMDA 实验并未显示不同种子之间存在较大差异,为了节省计算量,我们报告所有其他模型的单个示例顺序的结果。
图 4:思维链提示使大型语言模型能够解决具有挑战性的数学问题。值得注意的是,思想链推理是增加模型规模的一种新兴能力。之前的最佳数据来自 Cobbe 等人 (2021) 对于 GSM8K,Jie 等人 (2022) SVAMP,以及 Lan 等人 (2021) 为 MAWPS。
图 4 总结了思想链提示的最强结果,每个模型集合、模型大小和基准的所有实验输出如附录中的表 2 所示。有三个关键要点。首先
,图 4 表明,思维链提示是模型规模的一种涌现能力(Wei et al., 2022b)。也就是说,思想链提示不会对小型模型的性能产生积极影响,并且仅在与 ~100B 参数的模型一起使用时才会产生性能增益。我们定性地发现,较小规模的模型会产生流畅但不合逻辑的思维链,导致表现低于标准提示。
其次
,思路链提示对于更复杂的问题有更大的性能提升。例如,对于 GSM8K(基线性能最低的数据集),最大的 GPT 和 PaLM 模型的性能提高了一倍以上。另一方面,对于 SingleOp(MAWPS 的最简单子集)来说,只需要一步即可解决,性能改进要么是负面的,要么是非常小的(参见附录表 3)。
第三
,通过 GPT-3 175B 和 PaLM 540B 进行的思想链提示优于现有技术,后者通常在标记的训练数据集上微调特定于任务的模型。图 4 显示了 PaLM 540B 如何使用思维链提示在 GSM8K、SVAMP 和 MAWPS 上实现新的技术水平(但请注意,标准提示已经超过了 SVAMP 的先前最佳状态)。在另外两个数据集 AQuA 和 ASDiv 上,具有思维链提示的 PaLM 与现有技术的差距在 2% 以内(附录表 2)。
为了更好地理解为什么思维链提示有效,我们手动检查了 LaMDA 137B for GSM8K 模型生成的思维链。在模型返回正确最终答案的 50 个随机示例中,除了两个巧合地得出正确答案之外,所有生成的思维链在逻辑和数学上都是正确的(参见附录 D.1 和表 8 的示例)正确的模型生成的思想链)。我们还随机检查了模型给出错误答案的 50 个随机样本。这一分析的总结是,除了小错误(计算器错误、符号映射错误或缺少一个推理步骤)之外,46% 的思维链几乎是正确的,而另外 54% 的思维链则有错误。语义理解或连贯性方面的重大错误(见附录 D.2)。为了深入了解为什么缩放可以提高思路推理能力,我们对 PaLM 62B 所犯的错误进行了类似的分析,以及这些错误是否通过缩放到 PaLM 540B 得到了修复。总结是,将 PaLM 扩展到 540B 修复了 62B 模型中的很大一部分一步缺失和语义理解错误(参见附录 A.1)。
使用思维链提示所观察到的好处自然引发了一个问题:是否可以通过其他类型的提示来实现相同的性能改进。图 5 显示了具有下述三种思路变化的消融研究。
图 5:使用 LaMDA 137B 和 PaLM 540B 对不同提示形式进行的消融研究。其他数据集的结果在附录表 6 和表 7 中给出。
仅方程式。思维链提示可能有帮助的一个原因是它会产生要评估的数学方程,因此我们测试了一种变体,其中提示模型在给出答案之前仅输出数学方程。图5显示,仅方程提示对 GSM8K 没有太大帮助,这意味着 GSM8K 中问题的语义太具有挑战性,无法在没有思维链中的自然语言推理步骤的情况下直接翻译成方程。然而,对于一步或两步问题的数据集,我们发现仅提示方程确实可以提高性能,因为可以很容易地从问题中推导出方程(参见附录表 6)。
仅变量计算。另一个直觉是,思想链允许模型在更困难的问题上花费更多的计算(即中间标记)。为了将变量计算的影响与思想链推理隔离开来,我们测试了一种配置,其中提示模型输出唯一的点序列 (…),该序列等于解决问题所需的方程中的字符数。这个变体的表现与基线大致相同,这表明变量计算本身并不是思想链提示成功的原因,并且通过自然语言表达中间步骤似乎是有用的。
回答后的思考链。思想链提示的另一个潜在好处可能只是这样的提示允许模型更好地访问在预训练期间获得的相关知识。因此,我们测试了另一种配置,其中仅在答案之后给出思维链提示,从而隔离模型是否实际上依赖于产生的思维链来给出最终答案。这个变体的表现与基线大致相同,这表明思想链中体现的顺序推理除了激活知识之外还有其他用途。
对样本的敏感性是提示方法的一个关键考虑因素。例如,改变少样本样本的排列可能会导致 GPT-3 在 SST-2 上的准确性从(54.3%) 到接近最先进水平 (93.4%)(Zhao 等人,2021)。在最后一小节中,我们评估不同注释者编写的思维链的稳健性。除了上面使用注释者 A 编写的思维链的结果之外,本文的另外两位合著者(注释者 B 和 C)独立为相同的少数样本编写了思维链(如附录 H 所示) 。注释者 A 还遵循 Cobbe 等人给出的解决方案风格,写了另一条比原来更简洁的思维链。 (2021)。
图 6:思维链提示对于不同的提示示例存在差异(如预期),但对于各种注释器以及不同的示例,其表现优于标准提示。
图 6 显示了 LaMDA 137B 在 GSM8K 和 MAWPS 上的这些结果(其他数据集的消融结果在附录表 6/表 7 中给出)。尽管不同的思维链注释之间存在差异,正如使用基于范例的提示时所预期的那样(Le Scao 和 Rush,2021;Reynolds 和 McDonell,2021;Zhao 等人,2021),但所有思维链提示集大幅优于标准基线。这一结果意味着思维链的成功使用并不依赖于特定的语言风格。
为了确认成功的思维链提示适用于其他样本集,我们还对从 GSM8K 训练集(一个独立来源)中随机采样的三组八个样本进行了实验(该数据集中的示例已经包含了像链这样的推理步骤)。图 6 显示这些提示的执行效果与我们手动编写的示例相当,也大大优于标准提示。
除了对注释器、独立编写的思维链、不同范例和各种语言模型的鲁棒性之外,我们还发现算术推理的思维链提示对不同范例顺序和不同数量的范例具有鲁棒性(参见附录A.2)。
尽管思维链特别适合数学应用题,但思维链基于语言的性质实际上使其适用于广泛的常识推理问题,其中涉及在一般背景知识的假设下对物理和人类交互的推理。常识推理是与世界互动的关键,但仍然超出了当前自然语言理解系统的能力范围(Talmor 等人,2021)。
基准。我们考虑五个涵盖各种常识推理类型的数据集。流行的 CSQA(Talmor 等人,2019)提出有关世界的常识性问题,涉及复杂的语义,这些语义通常需要先验知识。 StrategyQA(Geva 等人,2021)需要模型推断多跳策略来回答问题。我们从 BIG-bench 工作(BIG-bench 协作,2021)中选择了两个专门的评估集:日期理解,涉及从给定上下文推断日期,以及运动理解,涉及从给定上下文推断日期,以及体育理解,涉及确定与体育相关的句子是否合理。最后,SayCan 数据集(Ahn 等人,2022)涉及将自然语言指令映射到离散集中的机器人动作序列。图 3 显示了所有数据集的思维力注释示例。
提示。我们遵循与前一节相同的实验设置。对于 CSQA 和 StrategyQA,我们从训练集中随机选择示例,并手动组成思维链,供它们用作小样本示例。这两个 BIG-bench 任务没有训练集,因此我们选择前 10 个示例作为评估集中的样本,作为小样本样本并报告评估集其余部分的编号。对于 SayCan,我们使用 Ahn 等人使用的训练集中的六个示例。 (2022)并且还手动组成了思维链。
图 7:语言模型。这里显示的语言模型是PaLM。先前的最佳数字来自 CSQA(Talmor 等人,2019)和 StrategyQA(Geva 等人,2021)的排行榜(仅限单一模型,截至 2022 年 5 月 5 日)。表 4 显示了使用不同大小的 LaMDA、GPT-3 和 PaLM 的其他结果。
结果。图 7 突出显示了 PaLM 的这些结果(LaMDA、GPT-3 和不同模型规模的完整结果如表 4 所示)。对于所有任务,扩大模型大小可以提高标准提示的性能;思维链提示带来了进一步的收益,其中 PaLM 540B 的改进似乎最大。通过思维链提示,PaLM 540B 相对于基线取得了强劲的性能,在 StrategyQA 上超越了现有技术水平(75.6% vs 69.4%),并且在运动理解方面超越了独立运动爱好者(95.4% vs 84%)。这些结果表明,思维链提示还可以提高需要一系列常识推理能力的任务的表现(尽管请注意,在 CSQA 上的收益很小)。
我们最终的实验评估考虑了符号推理,这对人类来说很简单,但对语言模型来说可能具有挑战性。我们表明,思维链提示不仅使语言模型能够执行在标准提示设置中具有挑战性的符号推理任务,而且还有助于推理时间输入的长度泛化,比在少数样本中看到的推理时间输入更长。
任务。我们使用以下两个简单任务(toy task)。
- 最后一个字母连接。此任务要求模型连接名称中单词的最后一个字母(例如“Amy Brown”→“yn”)。这是首字母连接的更具挑战性的版本,语言模型已经可以在无需思考的情况下执行该操作。我们通过随机连接姓名普查数据中前一千个名字和姓氏来生成全名(https:// namecensus.com/)。
- 硬币翻转。此任务要求模型回答人们抛硬币或不抛硬币后硬币是否仍然正面朝上(例如,“硬币正面朝上。菲比抛硬币。奥斯瓦尔多没有抛硬币。硬币是正面朝上吗?”还抬头吗?”→“不”)。
由于这些符号推理任务的构造是明确定义的,对于每个任务,我们考虑一个域内测试集,其中示例的步骤数与训练/小样本示例相同,以及一个域外测试集(OOD)。其评估示例的步骤比范例中的步骤更多。对于最后一个字母串联,模型仅看到具有两个单词的名称的示例,然后对具有 3 个和 4 个单词的名称执行最后一个字母串联。我们对抛硬币任务中潜在的抛掷次数执行相同的操作。我们的实验设置使用与前两节相同的方法和模型。我们再次为每个任务的少数样本手动构建思想链,如图 3 所示。
结果。 LaMDA 的结果如附录表 5 所示。使用 PaLM 540B,思维链提示可实现几乎 100% 的解决率(请注意,标准提示已使用 PaLM 540 解决了抛硬币问题,但 LaMDA 137B 则不然)。请注意,这些域内评估是 “简单任务”,因为在小样本中的思维链已经提供了完美的解决方案结构;模型所要做的就是使用测试时示例中的新符号重复相同的步骤。然而,小模型仍然会失败——对这三个任务的看不见的符号执行抽象操作的能力只有在 100B 模型参数的规模上才会出现。
对于 OOD 评估,标准提示对于这两项任务均失败。通过思维链提示,语言模型实现了向上的缩放曲线(尽管性能低于域内设置)。因此,思维链提示促进了长度泛化,超出了足够规模的语言模型的可见思维链。
我们探索了思维链提示作为在大型语言模型中引发多步骤推理行为的简单机制。我们首先看到思想链提示极大地提高了算术推理的性能,产生的改进比消融更强,并且对不同的注释器、范例和语言模型具有鲁棒性(第 3 节)。接下来,常识推理实验强调了思维链推理的语言性质如何使其普遍适用(第 4 节)。最后,我们表明,对于符号推理,思维链提示有助于 OOD 泛化到更长的序列长度(第 5 节)。在所有实验中,思想链推理都是通过提示现成的语言模型来引发的。在撰写本文的过程中没有对语言模型进行微调。
模型规模导致的思想链推理的出现一直是一个流行的主题(Wei 等人,2022b)。对于许多标准提示具有平坦缩放曲线的推理任务,思维链提示会导致缩放曲线显着增加。思维链提示似乎扩展了大型语言模型可以成功执行的任务集,换句话说,我们的工作强调标准提示仅提供大型语言模型功能的下限。这一观察结果可能提出的问题多于它给出的答案,例如,随着模型规模的进一步增加,我们可以期望推理能力提高多少?还有哪些其他提示方法可以扩大语言模型可以解决的任务范围?
至于局限性,我们首先限定,虽然思维链模拟了人类推理者的思维过程,但这并不能回答神经网络是否真的在“推理”,我们将其作为一个悬而未决的问题。其次,尽管在少样本设置中用思维链手动增强样本的成本是最小的,但这种注释成本可能会阻碍微调(尽管这可能可以通过合成数据生成或零样本泛化来克服)。第三,无法保证正确的推理路径,这可能会导致正确答案和错误答案;改进语言模型的事实生成是未来工作的一个开放方向(Rashkin 等人,2021 年;Ye 和 Durrett,2022 年;Wiegreffe 等人,2022 年等)。最后,思维链推理仅在大型模型规模上出现,这使得在现实世界的应用中提供服务的成本高昂;进一步的研究可以探索如何在较小的模型中引发推理。
这项工作受到许多研究领域的启发,我们在扩展的相关工作部分(附录 C)中详细介绍了这些领域。在这里,我们描述了两个可能最相关的方向和相关论文。
第一个相关方向是使用中间步骤来解决推理问题。Ling 等人(2017)开创了使用自然语言原理通过一系列中间步骤解决数学应用问题的想法。他们的工作与使用形式语言进行推理的文献形成了鲜明对比(Roy 等人,2015;Chiang 和 Chen,2019;Amini 等人,2019;Chen 等人,2019)。Cobbe 等人(2021)扩展了 Ling 等人(2017)的工作,通过创建更大的数据集并使用它来微调预训练的语言模型,而不是从头开始训练模型。在程序综合领域,Nye 等人 (2021) 利用语言模型通过首先逐行预测中间计算结果来预测 Python 程序的最终输出,并表明他们的逐步预测方法比直接预测最终输出表现得更好。
当然,本文也与近期大量有关提示的工作密切相关。自从 Brown 等人提出的 few-shot prompting 普及以来 (2020),一些通用方法提高了模型的提示能力,例如自动学习提示 (Lester et al., 2021) 或给予模型描述任务的指令 (Wei et al., 2022a; Sanh et al., 2022;欧阳等人,2022)。尽管这些方法改进或增强了提示的输入部分(例如,添加到输入之前的指令),但我们的工作采取正交方向,通过一系列思想来增强语言模型的输出。
我们探索了思维链提示作为一种简单且广泛适用的增强语言模型推理的方法。通过算术、符号和常识推理的实验,我们发现思想链推理是模型规模的一个新兴属性,它允许足够大的语言模型执行原本具有平坦缩放曲线的推理任务。扩大语言模型可以执行的推理任务的范围有望激发基于语言的推理方法的进一步研究。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。