admin管理员组

文章数量:1534198

摘要

        我们探讨了如何生成思维链——一系列中间推理步骤——显著提高大型语言模型执行复杂推理的能力。特别是,我们通过一种称为思维链提示的简单方法,展示了这种推理能力如何在足够大的语言模型中自然出现,其中提供了一些思维链演示作为提示的示例。
        在三个大型语言模型上的实验表明,思维链提示提高了一系列算术、常识和符号推理任务的性能。经验上的收获可能是惊人的。例如,在GSM8K的数学单词问题基准测试中,仅使用八个思维链示例就可以实现最先进的精度,甚至超过了经过微调的带有验证器的GPT-3。

1 引言

        NLP领域最近被语言模型彻底改变了(Peters等人,2018;Devlin等人,2019;Brown et al, 2020,除其他外)。扩大语言模型的规模已被证明可以带来一系列好处,例如提高性能和样本效率(Kaplan等人,2020;Brown et al, 2020,除其他外)。然而,单靠扩大模型大小还不足以在算术、常识和符号推理等具有挑战性的任务上实现高性能(Rae et al, 2021)。

       这项工作探讨了如何通过一种简单的方法来解锁大型语言模型的推理能力,该方法由两个想法驱动。首先,算术推理技术可以通过生成自然语言推理来得出最终答案而受益。先前的研究通过从零开始训练(Ling等人,2017年)或微调预训练模型(Cobbe等人,2021年)使模型能够生成自然语言中间步骤,除此之外还有使用形式化语言而不是自然语言的神经符号方法(Roy和Roth,2015年;Chiang和Chen,2019年;Amini等人,2019年;Chen等人,2019年)。其次,大型语言模型提供了通过提示实现上下文少样本学习的激动人心的前景。也就是说,不是为每个新任务微调一个单独的语言模型检查点,人们可以简单地为模型提供一些展示任务的输入-输出示例作为“提示”。值得注意的是,这种方法在一系列简单的问答任务中已取得成功(Brown等人,2020年)。

        然而,上述两个想法都有关键的限制。对于增强训练和微调方法,创建大量高质量推理的成本很高,这比普通机器学习中使用的简单输入-输出对要复杂得多。对于Brown等人(2020年)使用的传统少样本提示方法,它在需要推理能力的任务上表现不佳,并且通常随着语言模型规模的增长并不会显著改进(Rae等人,2021年)。在本文中,我们以一种避免它们限制的方式结合了这两个想法的优势。具体来说,我们探讨了语言模型在给定由输入、思考链、输出组成的提示的情况下,对推理任务进行少样本提示的能力。思考链是一系列导致最终输出的中间自然语言推理步骤,我们称这种方法为思考链提示。图1展示了一个示例提示。

图1:思维链提示使大型语言模型能够处理复杂的算术、常识和符号推理任务。强调了思维链推理过程
        我们在算术、常识和符号推理基准上进行了实证评估,表明思考链提示优于标准提示,有时效果显著。图2展示了这样一个结果——在数学问题基准GSM8K(Cobbe等人,2021年)上,使用PaLM 540B的思考链提示显著优于标准提示,并实现了新的最先进性能。仅提示方法的重要性在于它不需要大量的训练数据集,并且单个模型检查点可以在不失一般性的情况下执行许多任务。这项工作强调了大型语言模型如何通过关于任务的少量自然语言数据示例进行学习(参见通过大量训练数据集自动学习输入和输出背后的模式)。

图2:PaLM 540B使用思维链提示在GSM8K数学单词问题基准测试上实现了最新的性能。微调后的GPT-3和先验最佳来自Cobbe等人(2021)。

2 思维链提示

        考虑一个人在解决复杂的推理任务,比如多步骤的数学问题时自己的思考过程。典型的做法是将问题分解成中间步骤,并在给出最终答案之前解决每个步骤:“简给了她妈妈2朵花后,她还剩下10朵:::然后她再给她爸爸3朵,她就会剩下7朵:::所以答案是7。”本文的目标是赋予语言模型生成类似思考链的能力——一系列连贯的中间推理步骤,导向问题的最终答案。我们将展示,如果为少样本提示提供思考链推理的示范,足够大的语言模型能够生成思考链。
        图1展示了一个模型生成思考链以解决它原本会答错的数学问题的例子。这个思考链在这种情况下类似于解决方案,可以被解释为解决方案,但我们仍然选择称之为思考链,以更好地捕捉它模仿逐步思考过程以达到答案的想法(此外,解决方案/解释通常在最终答案之后出现(Narang等人,2020年;Wiegreffe等人,2022年;Lampinen等人,2022年等))。

思维链提示作为一种促进语言模型推理的方法有几个吸引人的特性。

  1. 首先,思维链原则上允许模型将多步骤问题分解为中间步骤,这意味着可以将额外的计算分配给需要更多推理步骤的问题。
  2. 其次,思想链为模型的行为提供了一个可解释的窗口,提示它是如何得出特定答案的,并提供了调试推理路径出错的机会(尽管完全描述支持答案的模型计算仍然是一个开放的问题)。
  3. 第三,思维链推理可以用于数学单词问题、常识推理和符号操作等任务,并且可能(至少在原则上)适用于人类可以通过语言解决的任何任务。
  4. 最后,思维链推理可以很容易地在足够大的现成语言模型中引出,只需将思维链序列的示例包含到少数提示的示例中。

        在实证实验中,我们将观察思维链提示在算术推理(第3节)、常识推理(第4节)和符号推理(第5节)中的效用。

3 算术推理

        我们首先考虑图1中形式的数学单词问题,它衡量语言模型的算术推理能力。虽然对人类来说很简单,但算术推理是语言模型经常难以完成的任务(Hendrycks等人,2021;Patel et al, 2021,除其他外)。引人注目的是,当与540B参数语言模型一起使用时,思维链提示在几个任务上的表现与特定于任务的微调模型相当,甚至在具有挑战性的GSM8K基准测试上达到了最新水平(Cobbe等人,2021)。

3.1 实验设置

        我们将在多个基准测试中探索各种语言模型的思维链提示。

        基准。我们考虑了以下五个数学词问题基准:(1)数学词问题的GSM8K基准(Cobbe等人,2021),(2)不同结构的数学词问题的SVAMP数据集(Patel等人,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- data -001、text-babbage-001、text-curie-001和text- davincii -002,它们大概对应于350M、1.3B、6.7B和175B参数的InstructGPT模型(Ouyang et al, 2022)。第二种是LaMDA (Thoppilan et al, 2022),其模型参数为422M、2B、8B、68B和137B。第三种是PaLM,它有8B、62B和540B参数模型。
        第四个是ul220b (Tay等人,2022),第五个是Codex (Chen等人,2021,OpenAI API中的代码- davincii -002)。我们通过贪婪解码从模型中采样(尽管后续工作表明,通过在许多采样代中获取大多数最终答案可以改进思维链提示(Wang等人,2022a))。对于LaMDA,我们报告了五个随机种子的平均结果,其中每个种子具有不同的随机洗牌示例顺序。由于LaMDA实验在不同的种子之间没有显示出很大的差异,为了节省计算,我们报告了所有其他模型的单个样例顺序的结果。

3.2 结果

        思考链提示的最强结果总结在图4中,每个模型集合、模型大小和基准测试的所有实验输出在附录的表2中显示。有三个关键结论。首先,图4显示思考链提示是模型规模的涌现能力(Wei等人,2022b)。也就是说,思考链提示对小型模型的性能没有积极影响,只有在使用约100B参数的模型时才会产生性能增益。我们从定性分析中发现,较小规模的模型产生了流畅但不合逻辑的思考链,导致性能低于标准提示。

图4:思维链提示使大型语言模型能够解决具有挑战性的数学问题。值得注意的是,思维链推理是一种随着模型规模的增加而涌现的能力。
之前的最佳数据来自Cobbe等人(2021)对GSM8K的预测,Jie等人(2022)对SVAMP的预测,Lan等人(2021)对MAWPS的预测。

        其次,思维链提示对于更复杂的问题有更大的性能提升。例如,对于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为GSM8K生成的模型思维链。在50个随机的例子中,模型返回了正确的最终答案,所有生成的思维链在逻辑上和数学上都是正确的,除了两个巧合地得出了正确的答案(见附录D.1和表8中正确的模型生成的思维链的例子)。

        我们还随机检查了50个随机样本,其中模型给出了错误的答案。

        这一分析的总结是,46%的思维链几乎是正确的,除了小错误(计算器错误,符号映射错误,或一个推理步骤的缺失),另外54%的思维链在语义理解或连贯方面有重大错误(见附录D.2)。为了深入了解缩放为什么可以提高思维链推理能力,我们对PaLM 62B所犯的错误进行了类似的分析,并分析了这些错误是否可以通过缩放到PaLM 540B来修复。总结来说,将PaLM扩展到540B修复了62B模型中大部分的一步缺失和语义理解错误(参见附录a .1)。

3.3 消融实验

        观察到使用思维链提示的好处后,自然会提出一个问题,即是否可以通过其他类型的提示来获得同样的性能改进。图5显示了一项消融研究,其中包含如下所述的三种思维链变化。

        方程。思维链提示可能有帮助的一个原因是,它产生了要评估的数学方程,因此我们测试了一个变量,其中模型在给出答案之前被提示只输出一个数学方程。图5显示,只有方程提示对GSM8K没有多大帮助,这意味着GSM8K中问题的语义太具有挑战性,无法在没有思维链中的自然语言推理步骤的情况下直接转换为方程。然而,对于一步或两步问题的数据集,我们发现只有方程提示确实提高了性能,因为方程可以很容易地从问题中推导出来(参见附录表6)。

图5:使用LaMDA 137B和PaLM 540B进行不同提示的消融研究。
其他数据集的结果见附录表6和表7。

        仅限变量计算。另一种直觉是,思维链允许模型在更难的问题上花费更多的计算(即中间令牌)。为了将变量计算的影响与思维链推理隔离开来,我们测试了一个配置,其中提示模型只输出与解决问题所需的方程中的字符数相等的点(:::)序列。这种变体的表现与基线大致相同,这表明变量计算本身并不是思维链提示成功的原因,通过自然语言表达中间步骤似乎是有用的。

        回答后的思考链。思维链提示的另一个潜在好处是,这样的提示可以让模型更好地访问在预训练期间获得的相关知识。因此,我们测试了另一种配置,其中思想链提示仅在答案之后给出,从而隔离模型是否实际上依赖于生成的思想链来给出最终答案。这种变体的表现与基线大致相同,这表明,在思维链中体现的顺序推理在激活知识之外的原因上是有用的。

3.4思维链的稳健性

        对样本的敏感性是提示方法的一个关键考虑因素——例如,改变少量样本的排列可能导致GPT-3在SST-2上的准确性范围从接近偶然(54.3%)到接近最新技术(93.4%)(Zhao et al ., 2021)。在最后一小节中,我们将评估由不同注释者编写的思想链的健壮性。除了上面的结果使用了注解者A所写的思想链之外,本文的另外两位合著者(注解者B和C)独立地为相同的几个示例编写了思想链(见附录H)。注解者A还编写了另一个比原文更简洁的思想链,遵循Cobbe et al(2021) 1中给出的解决方案的风格。

        图6显示了LaMDA 137B在GSM8K和MAWPS上的结果(其他数据集的消纳结果见附录表6 /表7)。尽管在使用基于范例的提示时,不同的思维链注释之间存在差异(Le Scao和Rush, 2021;Reynolds and McDonell, 2021;Zhao et al ., 2021),所有的思维链提示都大大优于标准基线。这一结果表明,思维链的成功运用并不取决于特定的语言风格。

图6:思维链提示在不同的提示示例中有差异(如预期的那样),但是在不同的注释器和不同的示例中优于标准提示。

        为了确认成功的思考链提示对其他示例集也有效,我们还从GSM8K训练集中随机抽取了三组八个示例进行了实验,这是一个独立来源(此数据集中的示例已经包括了类似思考链的推理步骤)。图6显示,这些提示与我们的手动编写示例表现相当,也显著优于标准提示。
        除了对标注者、独立编写的思考链、不同示例和各种语言模型的稳健性之外,我们还发现,用于算术推理的思考链提示对不同的示例顺序和变化数量的示例也是稳健的(见附录A.2)。

4 常识性推理

        虽然思维链特别适用于数学单词问题,但思维链基于语言的性质实际上使其适用于广泛的常识推理问题,这些问题涉及在一般背景知识的假设下对物理和人类互动进行推理。常识推理是与世界互动的关键,目前的自然语言理解系统仍然无法实现(Talmor et al, 2021)。

        基准。我们考虑了五个数据集,涵盖了不同范围的常识推理类型。流行的CSQA (Talmor等人,2019)提出了一些关于世界的常识性问题,这些问题涉及复杂的语义,通常需要先验知识。StrategyQA (Geva等人,2021)要求模型推断多跳策略来回答问题。我们从BIG-bench的努力中选择了两个专门的评估集(BIG-bench协作,2021):日期理解,包括从给定的上下文中推断日期,以及体育理解,包括确定与体育相关的句子是可信的还是不可信的。最后,SayCan数据集(Ahn et al, 2022)涉及将自然语言指令映射到来自离散集合的机器人动作序列。图3显示了包含所有数据集的思维链注释的示例。

        提示。我们遵循与前一节相同的实验设置。对于CSQA和StrategyQA,我们从训练集中随机选择示例,并手动组成思维链供它们用作少量示例。这两个BIG-bench任务没有训练集,所以我们选择前10个例子作为评估集中的样本作为few-shot样本,并在评估集中的其余部分报告数字。对于SayCan,我们使用了Ahn等人使用的训练集中的六个示例(2022),也手工组成了思维链。

        结果。图7突出显示了PaLM的这些结果(LaMDA、GPT-3和不同模型尺度的完整结果如表4所示)。对于所有任务,扩大模型尺寸提高了标准提示的性能;一连串的思考推动了进一步的增长,其中PaLM 540B的改进似乎最大。在思维链的提示下,PaLM 540B相对于基线取得了强劲的表现,在StrategyQA上的表现优于先前的技术水平(75.6%对69.4%),在运动理解上的表现优于独立运动爱好者(95.4%对84%)。这些结果表明,思维链提示也可以提高需要一系列常识性推理能力的任务的性能(尽管注意,在CSQA上的增益最小)。

图7:思维链提示也提高了语言模型的常识推理能力。这里显示的语言模型是PaLM。之前的最佳数据来自《CSQA》(Talmor等人,2019)和《strateyqa》(Geva等人,2021)的排行榜(截至2022年5月5日,仅适用于单一模型)。使用不同大小的LaMDA、GPT-3和PaLM的其他结果如表4所示

5 符号推理

        我们最后的实验评估考虑了符号推理,这对人类来说很简单,但对语言模型来说可能具有挑战性。我们表明,思维链提示不仅使语言模型能够执行在标准提示设置中具有挑战性的符号推理任务,而且还有助于长度泛化到比在少数示例中看到的更长的推理时间输入。

        任务。我们使用以下两个玩具任务。

  • 最后一个字母的顺序。这个任务要求模型连接名字中单词的最后一个字母(例如,“Amy Brown”!)“yn”)。这是首字母连接的一个更具挑战性的版本,语言模型已经可以在没有思维链的情况下执行我们通过从姓名普查数据(https://namecensus/)中随机连接前1000个姓和名来生成全名。

  • 抛硬币。这个任务要求模型回答在人们抛硬币或不抛硬币后,硬币是否仍然是正面朝上的(例如,“硬币是正面朝上的。菲比抛硬币。奥斯瓦尔多不会抛硬币。硬币还是正面朝上吗?”!“不”)。

        由于这些符号推理任务的构造是明确定义的,对于每个任务,我们考虑一个域内测试集,其中示例具有与训练/少数射击示例相同的步骤数,以及一个域外(OOD)测试集,其中评估示例比示例中的步骤更多。对于最后一个字母连接,模型只看到包含两个单词的名字的示例,然后对包含3个和4个单词的名字执行最后一个字母连接我们对抛硬币任务中可能被抛的次数做同样的处理。我们的实验设置使用与前两部分相同的方法和模型。我们再次手动为每个任务的几个示例组成思想链,如图3所示。

图3:算术、常识和符号推理基准的hinput、思维链、输出三元组示例。思想链被突出。完整提示见附录G。

        结果。这些域内和OOD评估的结果如图8所示,而LaMDA的结果如附录表5所示。在PaLM 540B中,思维链提示导致几乎100%的解决率(注意,标准提示已经在PaLM 540中解决了抛硬币问题,但在LaMDA 137B中还没有)。请注意,这些领域内的评估是“玩具任务”,因为在这个意义上,完美的解决方案结构已经由几个示例中的思维链提供;该模型所要做的就是对测试时示例中的新符号重复相同的步骤。然而,小模型仍然失败——在这三个任务中对看不见的符号执行抽象操作的能力只有在100B个模型参数的规模下才会出现。

        对于OOD评价,两项任务的标准提示都失败了。通过思维链提示,语言模型实现了向上扩展曲线(尽管性能低于域内设置)。因此,对于足够规模的语言模型,思维链提示有助于超越可见思维链的长度泛化。

6 讨论

        我们探讨了思考链提示作为一种在大型语言模型中引发多步骤推理行为的简单机制。我们首先看到,思考链提示在算术推理上大幅提高了性能,其改进效果比消融研究(ablations)强得多,并且对不同标注者、示例和语言模型都具有稳健性(第3节)。接下来,对常识推理的实验强调了思考链推理的语言学特性使其具有普遍适用性(第4节)。最后,我们展示了对于符号推理,思考链提示有助于在更长的序列长度上进行OOD(Out-of-Distribution)泛化(第5节)。在所有实验中,思考链推理只是通过提示一个现成的语言模型来引发的。在撰写本文的过程中,没有对任何语言模型进行微调。

        由于模型规模,思维链推理的出现一直是一个流行的主题(Wei et al ., 2022b)。对于许多推理任务,其中标准提示具有平坦的缩放曲线,思维链提示导致缩放曲线急剧增加。思维链提示似乎扩展了大型语言模型可以成功执行的任务集——换句话说,我们的工作强调了标准提示只提供了大型语言模型能力的下限。这一观察结果引发的问题可能比它回答的问题更多——例如,随着模型规模的进一步扩大,我们能期望推理能力提高多少?还有哪些提示方法可以扩展语言模型可以解决的任务范围?

        至于局限性,我们首先认为,尽管思维链模拟了人类推理者的思维过程,但这并不能回答神经网络是否真的在“推理”,这是一个悬而未决的问题。其次,尽管在少数实例设置中,用思维链手动增加示例的成本是最小的,但是这样的注释成本对于调优来说可能是令人难以接受的(尽管这可能会被合成数据生成或零实例泛化所克服)。第三,没有正确的推理路径保证,这可能导致正确和错误的答案;改进语言模型的事实性生成是未来工作的一个开放方向(Rashkin等人,2021;Ye and Durrett, 2022;Wiegreffe et al, 2022,除其他外)。最后,只有在大模型尺度上才会出现思维链推理,这使得它在现实世界的应用中成本高昂;进一步的研究可以探索如何在较小的模型中诱导推理。

7 相关工作

        这项工作受到许多研究领域的启发,我们在扩展的相关工作部分(附录C)中详细介绍了这些研究领域。在这里,我们描述了可能最相关的两个方向和相关论文。

        第一个相关的方向是使用中间步骤来解决推理问题。Ling等人(2017)开创了使用自然语言原理通过一系列中间步骤来解决数学单词问题的想法。他们的工作与使用形式语言进行推理的文献形成鲜明对比(Roy等人,2015;蒋和陈,2019;Amini等人,2019;Chen et al, 2019)。Cobbe等人(2021)通过创建更大的数据集并使用它来微调预训练的语言模型,而不是从头开始训练模型,扩展了Ling等人(2017)。在程序合成领域,Nye等人(2021)利用语言模型通过逐行预测中间计算结果来预测Python程序的最终输出,并表明他们的分步预测方法比直接预测最终输出效果更好。

        当然,本文也与近期关于提示的大量工作密切相关。自Brown et al .(2020)提出的“少样本提示”(few-shot prompt)普及以来,有几种通用方法提高了模型的提示能力,如自动学习提示(Lester et al ., 2021)或给模型提供描述任务的指令(Wei et al ., 2022a);Sanh等,2022;欧阳等人,2022)。虽然这些方法改进或增加了提示符的输入部分(例如,输入前的指令),但我们的工作采用正交方向,通过思维链来增加语言模型的输出。

8 结论

        我们已经探索了思维链提示作为一种简单而广泛适用的方法来增强语言模型中的推理能力。通过对算术、符号和常识性推理的实验,我们发现思维链推理是模型规模的一个紧急属性,它允许足够大的语言模型执行推理任务,否则它们具有平坦的缩放曲线。

        扩大语言模型可以执行的推理任务的范围将有望激发基于语言的推理方法的进一步工作。

本文标签: 模型思维提示语言论文