OpenAI o1引发的思维链思考:思维链提示启发大模型推理

发布于 2024-9-18 10:37
浏览
0收藏

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

摘要:

我们探索了生成一个思维链(一系列中间推理步骤)可以怎样显著提高大型语言模型执行复杂推理的能力。特别是,我们展示了这种推理能力是如何通过一种称为思维链提示的简单方法,在足够大的语言模型中自然出现的,其中提供了一些思维链演示作为提示的示例。


在三个大型语言模型上的实验表明,思维链提示可以提高一系列算术、常识和符号推理任务的性能。经验收益可能是惊人的。例如,用只有八个思维链示例来提示PaLM 540B在数学应用题集GSM8K基准测试上达到了非常先进的精度,甚至超过了带有验证器微调过的GPT-3。

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

图1:思维链提示使大型语言模型能够处理复杂的算法、常识和符号推理任务。思维链推理过程已被高亮显示。

1、简介

NLP领域最近被语言模型彻底改变了。扩大语言模型的规模已被证明可以带来一系列好处,例如提升的性能和样本效率。然而,仅扩大模型尺寸还不足以在具有挑战性的任务中取得更好的表现,例如算术、常识和符号推理方面。


这项工作探讨了如何通过一种由两个想法驱动的简单方法来解锁大型语言模型的推理能力。首先,算术推理技术可以从生成自然语言基本原理(产生最终答案)中受益。先前的工作使模型能够具有通过从头开始训练或微调预训练模型来生成自然语言的中间步骤的能力,此外还有使用形式语言而不是自然语言的神经符号方法。其次,大型语言模型提供了令人兴奋的可能性,可以通过提示进行上下文少样本学习。也就是说,可以简单地用几个演示任务的输入-输出示例“提示”模型,替代掉为每个新任务微调单独的语言模型检查点。值得注意的是,这在一系列简单的问答任务中取得了成功。


然而,上述两种想法都有严重的局限性。对于基本原理,增强训练和微调方法,创建大量高质量的基本原理成本很高,这比普通机器学习中使用的简单输入输出对更复杂。对于Brown等人使用的传统少量样本提示方法,它在需要推理能力的任务上效果不佳,并且通常不会随着语言模型规模的增加而显著提高. 在本文中,我们结合了这两种观点的优点,避免了它们的局限性。


具体来说,我们探索了语言模型在给定由三元组组成的提示(输入、思维链、输出)的情况下,对推理任务执行少量样本提示的能力。思维链是一系列导致最终输出的中间自然语言推理步骤,我们将这种方法称为思维链提示。示例提示如图1所示。


我们对算术、常识和符号推理基准进行了实证评估,表明思维链提示优于标准提示,有时甚至达到了惊人的程度。

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

图2:PaLM 540B使用思维链提示在GSM8K数学应用题题基准上实现了最先进的性能。Cobbe等人(2021)对GPT-3进行了微调,并得出了之前的最佳结果。


图2展示了一个这样的结果——在数学应用题GSM8K基准测试中,使用PaLM 540B的思维链提示优于标准提示,并达到了新的最先进的性能。仅仅提示的方法就很重要,因为它不需要大型训练数据集,也因为单个模型检查点可以执行许多任务而不失一般性。这项工作重点说明大型语言模型可以通过几个例子学习关于任务的自然语言数据(通过大型训练数据集作为输入和输出基础的自动学习模式)。

2、思维链提示

在解决复杂的推理任务时(如多步骤数学应用题),考虑一下自己的思考过程。通常会将问题分解为多个中间步骤并在给出最终答案之前解决每个步骤的问题:“简给妈妈2朵花后,她有10朵花……然后给爸爸3朵花后,他会有7朵花……所以答案是7。”


本文的目标是赋予语言模型生成类似思维链的能力——一系列连贯的产生问题最终答案的中间环节推理步骤。我们将证明,如果在示例中为少样本提示提供了思维链推理的演示,那么足够大的语言模型可以生成思维链。


图1显示了一个模型的示例,该模型产生了一个思维链来解决一个数学应用题,否则它会出错。在这种情况下,思维链类似于解决方案,可以被解释为一个解决方案,但我们仍然选择称之为思维链,以更好地捕捉到它模仿了一个循序渐进的思维过程来得出答案的想法(而且,解决方案/解释通常在最终答案之后出现)。


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

1.首先,原则上,思维链允许模型将多步问题分解为多个中间步骤,这意味着可以将额外的计算分配给需要更多推理步骤的问题。

2.其次,思维链为模型的行为提供了一个可解释的窗口,表明它是如何得出特定答案的,并提供了调试出错的推理路径的机会(尽管充分描述模型的支持答案的计算仍然是一个悬而未决的问题)。

3.第三,思维链推理可用于数学应用题、常识推理和符号操纵等任务,并且潜在的适用于(至少在原则上)人类可以通过语言解决的任何任务。

4.最后,在足够大的现成语言模型中,只需将思维链序列的示例包含在少样本提示的示例中,就可以很容易地引出思维链推理。

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

3、算术推理

我们首先考虑图1中形式的数学应用题,它衡量了语言模型的算术推理能力。虽然对人类来说很简单,但算术推理是一项语言模型经常遇到困难的任务。引人注目的是,当与540B参数语言模型一起使用时,思维链提示在多个任务上的表现与特定任务的微调模型相当,甚至在具有挑战性的GSM8K基准测试上达到了新的技术水平。

3.1 实验设置

我们在多个基准上探索了各种语言模型的思维链提示。


基准:

我们考虑以下五个数学单词问题基准:

(1)GSM8K数学应用题的基准测试,

(2)具有不同结构的数学题的SVAMP数据集,

(3)各种数学题的ASDiv数据集,

(4)代数题的AQuA数据集,

以及(5)MAWPS基准测试。附录表12中给出了示例问题。
 

标准提示:

对于基线,我们考虑Brown等人推广的标准少样本提示,其中在输出测试时间示例的预测之前,给大语言模型输入-输出对的上下文示例。示例的格式为问题和答案。该模型直接给出了答案,如图1(左)所示。

 

思维链提示:

我们提出的方法是用一个思维链来增强提示中每个示例,以获得相关答案,如图1(右)所示。由于大多数数据集只有一个评估分割,我们手动组合了一组八个带有思维链的示例用于提示——图1(右)显示了一个思维链示例,附录表20给出了全套示例。(这些特定的示例没有经过及时的工程设计;稳健性在第3.4节和附录A.2中进行了研究。)为了调查这种形式的思维链提示是否可以成功地引发一系列数学应用题的成功推理,我们将这八个思维链示例用于所有基准测试,除了AQuA(它是多项选择而不是自由反应)。对于AQuA,我们使用了训练集中的四个示例和解决方案,如附录表21所示。

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

图3:算术、常识和符号推理基准的输入、思维链、输出三元组示例。思维链被高亮显示。附录G中的完整提示。

 

语言模型:

我们评估了五种大型语言模型。


第一个是GPT-3,我们使用text-ada-001、text-babbage-001、text-curie-001和text-davinci-002,它们可能对应于350M、1.3B、6.7B和175B参数的InstructGPT模型。第二个是LaMDA,它有422M、2B、8B、68B和137B参数的模型。第三个是PaLM,它有8B、62B和540B参数的模型。第四个是UL2 20B,第五个是Codex。


我们通过贪婪解码从模型中采样(尽管后续工作表明,通过在许多采样代中获得多数最终答案,可以改善思维链提示)。对于LaMDA,我们报告了五个随机种子的平均结果,其中每个种子具有不同的随机混洗的示例顺序。由于LaMDA实验在不同种子之间没有显示出很大的差异,为了节省计算,我们报告了所有其他模型的单个样本顺序的结果。

3.2、结果

图4总结了思维链提示的最强结果,每个模型集合、模型大小和基准的所有实验输出如附录表2所示。


有三个关键要点。

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

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


首先,图4显示,思维链提示是一种模型尺度的涌现能力。也就是说,思维链提示对小型模型的性能没有积极影响,只有在与参数为100B及以上的模型一起使用时才能提高性能。我们确定的发现,较小规模的模型产生了流畅但不合逻辑的思维链,导致其表现低于标准提示。


其次,对于更复杂的问题,思维链提示具有更大的性能提升。例如,对于GSM8K(基线性能最低的数据集),最大的GPT和PaLM模型的性能翻了一番多。另一方面,对于MAWPS中最简单的子集SingleOp(只需要一步即可解决),性能改进要么是负面的,要么是非常小的(见附录表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个模型给出错误答案的随机样本。这项分析的总结是,除了小错误(计算器错误、符号映射ping错误或缺少一个推理步骤)外,46%的思维链几乎是正确的,另外54%的思维链在语义理解或连贯性方面存在重大错误(见附录D.2)。为了深入了解为什么缩放可以提高思维链推理能力,我们对PaLM 62B的错误进行了类似的分析,并分析了这些错误是否通过缩放到PaLM 540B而得到修复。总结来看,将PaLM扩展到540B可以修复62B模型中很大一部分步骤缺失和语义理解错误(见附录a.1)。

3.3、消融研究

使用思维链提示的观察到的好处提出了一个自然的问题,即是否可以通过其他类型的提示来提高同样的绩效。

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

图5:LaMDA 137B和PaLM 540B不同刺激变化的消融研究。其他数据集的结果见附录表6和表7


图5显示了一项消融研究,其中有三种不同的思路,如下所述。

仅方程式:

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


仅变量计算:

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


答案后的思考链:

思维链提示的另一个潜在好处可能是,这种提示使模型能够更好地获取预训练期间获得的相关知识。因此,我们测试了一种替代配置,在这种配置中,思维链提示仅在答案之后给出,从而隔离模型是否真正依赖于产生的思维链来给出最终答案。这种变体的表现与基线大致相同,这表明思维链中体现的顺序推理不仅有助于激活知识。

3.4、思维链的稳健性

对样本的敏感性是提示方法的关键考虑因素。例如,改变少数样本的排列可能会导致GPT-3在SST-2上的准确度从接近机会(54.3%)到接近现有技术(93.4%)(赵等人,2021)。在最后一小节中,我们评估了对不同注释者编写的思维链的鲁棒性。除了上述使用注释者A编写的思维链的结果外,本文的另外两位合著者(注释者B和C)还独立地为相同的少数镜头示例编写了思维链(如附录H所示)。注释者A还按照Cobbe等人(2021)给出的解决方案风格,写了另一条比原文更简洁的思路。


图6显示了GSM8K和MAWPS上LaMDA 137B的这些结果(其他数据集的消融结果见附录表6/表7)。尽管不同的思维链注释之间存在差异,正如使用基于范例的提示时所预期的那样(Le Scao和Rush,2021;Reynolds和McDonnell,2021;赵等人,2021),但所有的思维链提示都大大超出了标准基线。这一结果表明,思维链的成功使用并不取决于特定的语言风格。

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

图6:思维链提示对于不同的提示检查样本(如预期的那样)有差异,但对于各种注释者和不同的示例,其表现优于标准提示。


为了确认成功的思维链提示对其他样本集也有效,我们还对从独立来源GSM8K训练集中随机抽取的三组八个样本进行了实验(该数据集中的样本已经包括了像思维链这样的推理步骤)。图6显示,这些提示的表现与我们手动编写的示例相当,也大大优于标准提示。

除了对注释器、独立编写的思维链、不同的示例和各种语言模型的鲁棒性外,我们还发现,算术推理的思维链提示对不同的示例顺序和不同数量的示例具有鲁棒性(见附录A.2)。

4、常识推理

虽然思维链特别适合数学应用题,但思维链基于语言的本质,实际上使其适用于广泛的常识推理问题,这些问题涉及在一般背景知识的假设下对物理和人类交互的推理。常识推理是与世界互动的关键,仍然超出了当前自然语言理解系统的能力范围。


基准:

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


提示:

我们遵循与前一节相同的实验设置。对于CSQA和StrategyQA,我们从训练集中随机选择示例,并手动构建思维链,让他们使用尽可能少的样本示例。这两个大型工作台任务没有训练集,因此我们选择了前十个示例作为评估集中的示例,作为评估集中其余部分的少量样本示例和报告编号。对于SayCan,我们使用了Ahn等人(2022)使用的训练集中的六个例子,以及手动组成的思维链。


结果:

图7突出显示了PaLM的这些结果(LaMDA、GPT-3和不同模型量表的完整结果如表4所示)。对于所有任务,扩大模型大小可以提高标准提示的性能;思维链提示带来了进一步的收益,其中PaLM 540B的改进似乎是最大的。在思维链的推动下,PaLM 540B相对于基线取得了强劲的表现,在StrategyQA上超越了先前的技术水平(75.6%对69.4%),在运动理解方面超越了独立的体育爱好者(95.4%对84%)。

OpenAI o1引发的思维链思考:思维链提示启发大模型推理-AI.x社区

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


这些结果表明,思维链提示也可以提高需要一系列常识推理能力的任务的性能(尽管请注意,CSQA的收益很小)。

5、符号推理

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


任务:

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

•最后一个字母连接。

此任务要求模型连接名称中单词的最后一个字母(例如,“Amy Brown”→“yn”)。这是一个更具挑战性的首字母连接版本,语言模型已经可以在没有思维链的情况下执行。


我们通过随机连接姓名普查数据中前一千个名字和姓氏中的名字来生成全名。


•硬币翻转。

这项任务要求模型回答,在人们抛硬币或不抛硬币后,硬币是否仍然朝上(例如,“硬币朝上。菲比抛硬币。奥斯瓦尔多没有抛硬币。硬币还在涨吗?”→ “否”)。

由于这些符号推理任务的构造是明确的,对于每项任务,我们考虑一个域内测试集和一个域外(OOD)测试集,域内测试集中的示例的步骤数与训练/少镜头示例相同,域外测试集的评估示例的步数比示例中的多。对于最后一个字母连接,该模型只看到包含两个单词的名称示例,然后对包含3个和4个单词的姓名执行最后一个字符连接。我们对抛硬币任务中的潜在翻转次数也做了同样的操作。我们的实验装置使用与前两节相同的方法和模型。我们再次手动为每个任务的几个镜头示例构建思维链,如图3所示。


结果:

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


对于OOD评估,标准提示对这两个任务都失败了。在思维链提示下,语言模型实现了向上缩放曲线(尽管性能低于域内设置)。因此,思维链提示有助于对足够规模的语言模型进行超越可见思维链的长度泛化。

6、讨论

我们探索了思维链提示作为一种在大型语言模型中引发多步推理行为的简单机制。我们首先看到,思维链提示在算术推理方面大大提高了性能,产生的改进比消融强得多,对不同的注释器、示例和语言模型也很稳健(第3节)。


接下来,常识推理实验强调了思维链推理的语言性质如何使其普遍适用(第4节)。最后,我们表明,对于符号推理,思维链提示有助于OOD泛化到更长的序列长度(第5节)。在所有实验中,思维链推理都是通过提示现成的语言模型来引发的。在撰写本文的过程中,没有对语言模型进行微调。


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

至于局限性,我们首先要证明,尽管思维链模仿了人类推理者的思维过程,但这并不能回答神经网络是否真的是“推理”,这是一个悬而未决的问题。第二,尽管在少数搜索设置中,用思想链手动扩充样本的成本是最小的,但这种注释成本可能会阻碍微调(尽管这可能会通过合成数据生成或零样本泛化来克服)。第三,不能保证正确的推理路径,这可能会导致正确和错误的答案;改进语言模型的事实世代是未来工作的一个开放方向。最后,只有在大模型尺度上才出现思维链推理,这使得在现实世界的应用中服务成本很高;进一步的研究可以探索如何在较小的模型中诱导推理。

7、相关工作

这项工作受到了许多研究领域的启发,我们在扩展的相关工作部分详细介绍了这些领域。在这里,我们描述了两个可能最相关的方向和相关论文。第一个相关方向是使用中间步骤来解决推理问题。Ling等人(2017)率先提出了通过一系列中间步骤使用自然语言推理来解决数学应用题的想法。他们的作品与使用正式语言进行推理的文学形成了鲜明的对比。Cobbe等人(2021)通过创建更大的数据集并使用它来微调预训练的语言模型,而不是从头开始训练模型,对Ling等人(2017)进行了扩展。在程序综合领域,Nye等人(2021)利用语言模型通过第一行到第行预测中间计算结果来预测Python程序的最终输出,并表明他们的逐步预测方法比直接预测最终输出表现更好。


当然,本文也与最近关于提示的大量工作密切相关。自从Brown等人(2020)提出的少镜头提示普及以来,有几种通用的方法 提高了模型的提示能力,例如自动学习提示(Lester等人,2021)或为模型提供描述任务的指令(Wei等人,2022a;Sanh等人,2022;Ouyang等人,2022)。尽管这些方法改进或增强了提示的输入部分(例如,添加到输入前的指令),但我们的工作采用了用思维链增强语言模型输出的正交方向。

8、结论

我们探索了思维链提示作为一种简单且广泛适用的方法来增强语言模型中的推理。通过对算术、符号和常识推理的实验,我们发现思维链推理是模型尺度的一种涌现特性,它允许足够大的语言模型执行原本具有平坦尺度曲线的推理任务。

拓宽语言模型可以执行的推理任务的范围,将有望激发基于语言的推理方法的进一步研究。


本文转自 AI生成未来 ,作者:庆丰


原文链接:​​https://mp.weixin.qq.com/s/D9s8AWeyST260V2Gp4an_g​

收藏
回复
举报
回复
相关推荐