BoT:强化思考:用大型语言模型解决试错问题

AI知识2个月前更新 playboywhc
4 0

摘要

 

大型语言模型(LLMs)在广泛问题上的推理性能严重依赖于链式思维提示,这涉及在提示中提供一些链式思维示范作为示例。最近的研究表明,例如思维树,已经指出了探索和自我评估在复杂问题解决中的推理步骤选择的重要性。在本文中,我们提出了一种名为Boosting of Thoughts(BoT)的自动化提示框架,通过迭代探索和自我评估大量思维树,以获取一系列试错推理经验的集合,这将作为一种新的提示形式来解决复杂问题。从不需要示例的简单提示开始,BoT迭代地探索和评估大量推理步骤,并且更重要的是,使用LLM对它们的误差分析来明确修订提示,从而增强推理步骤的生成,直到获得最终答案。我们使用GPT-4和Llama2在广泛的复杂数学问题上的实验表明,BoT始终实现比其他先进提示方法更高或可比的问题解决率。源代码可在https://github.com/iQua/llmpebase的examples/BoTReasoning文件夹下获得。

 

1.引言

 

具有自回归范式的大型语言模型(LLMs)由于其潜在的推理能力,在各种任务上取得了显著的性能。这种能力在复杂任务中的保证严重依赖于链式思维(CoT)提示,这提供了逐步推理示例。这种方法表明,可以通过一系列思维来激发推理能力,其中思维作为解决问题的中间步骤。

 

因此,后续研究,特别是思维树(ToT)提出了改进CoT的方法。为了保证有效性,这些方法的提示通常包括对特定任务的人类注释。这种依赖限制了它们的可扩展性。最近的工作,要么利用LLMs进行双重检查以改进答案,要么基于反馈提升提示,已经显示出显著的前景。现有文献通常倾向于丢弃提示中的无效思维。然而,人类通常可以通过仔细分析错误来不断学习,从而获得经验,逐步提高性能。因此,我们提出了一个问题:LLMs的思维生成是否可以摆脱人类注释,模仿人类的问题解决方式,以在各种任务中实现有效推理?

 

本文提出了一个新颖的框架,如图1所示,称为Boosting of Thoughts(BoT),它实现了一种提升机制,包括聚合和经验,从而通过从错误中学习来逐步改进不可靠的推理步骤(弱思维),最终解决各种问题。从一个简单的提示开始,不需要人类注释,BoT可能会得到弱思维。通过聚合,BoT能够从它们中派生出更合逻辑和有效的思维链,从而引导后续的改进。我们框架中的这种指导是通过调整提示来实现的,这是通过利用LLMs分析聚合链获得的详细错误报告、建议和每个推理步骤的指导。当这样的经验在提示中积累时,它逐渐导致更强的思维。

 

BoT:强化思考:用大型语言模型解决试错问题

 

BoT:强化思考:用大型语言模型解决试错问题

图1:通过逐步增强体验来增强提示,这包括由大型语言模型(LLM或LM)对生成的思维链进行的分析。经验明确包含思维链本身,相应的错误报告以及关于修订每个推理步骤的详细建议。因此,那些以红色十字标记的无效思维也可以促进提示的完善。通过在提示中积累经验,BoT 最终可以从简单提示开始生成正确的思维链。这里呈现的示例是通过将 GPT-4 与 BoT 应用于24点游戏任务所获得的结果。

 

具体来说,BoT实现了这样一个提升机制,作为一个经验驱动的迭代过程,如图1所示。在每次迭代中,对于给定的提示,BoT与LLM并行构建大量的简单思维结构。我们选择树结构,如ToT中所示,但为了我们的提升目的,我们对其进行了重大修改,使其成为加权二叉树,并采用了各种生长策略。在提取每棵树的根到叶分支的最高分后,BoT的聚合组件被执行,将它们聚合成一个单一的思维链。随后,这个链被同一LLM评估,以获得经验,这些经验被添加到提示中,作为下一次迭代中思维生成的指导。

 

我们的贡献可以概括为三个方面。首先,与使用精心设计的提示生成更复杂的思维结构不同,本文表明,仅依赖于简单的初始提示,弱思维可以根据以前的经验逐步改进以解决问题。其次,为了实现这种提升机制,我们提出了一个名为Boosting of Thoughts(BoT)的新颖框架,它执行一个经验驱动的迭代过程。由于从简单的提示开始,BoT可扩展到各种任务。在保证有效性的同时,BoT很快,因为它并行构建简单的思维结构,并在几次迭代后收敛到解决方案。最后,我们使用GPT-4和LlamaV2评估了BoT在复杂数学问题上的性能。依靠GPT-4 OpenAI (2023)和LlamaV2 Touvron等人(2023),我们评估了BoT在复杂数学问题上的性能。问题解决率表明,采用二叉树思维结构的BoT,在GSM8K和AQuA上显著超过了当前最先进的技术,同时在其他数据集上取得了第二好的结果。特别是在新的具有挑战性的任务Game of 24中,BoT比领先的方法ToT高出9.7%。我们的BoT因此证明了,通过增强提示,积累无效思维链的误差分析和相应的建议,即使没有人类注释,LLMs也能在各种任务中保持高性能。

 

2.相关工作

 

多步推理。突出的工作链式思维(CoT)提示表明,可以通过在每个问题的提示中提供中间推理步骤来激发LLMs的逐步推理行为。最近的工作,思维树(ToT)将顺序推理过程转换为树结构,在该结构中,每个思维(节点)可能考虑以前的推理路径以产生多个下一步思维。通过推理过程中的回溯和扩展探索,ToT在甚至挑战GPT-4的问题上表现良好。考虑到其高能力,BoT的基础思维结构在很大程度上利用了ToT的思维树结构。并且,由于提升框架,BoT在每次迭代中生成的树结构是二元的和浅的,而不是ToT的复杂树,其中每个节点对应着大量的子节点。然而,基础结构不仅限于ToT。相比之下,BoT是灵活的,因为基础思维结构可以是ToT,GoT Besta等人(2023),或者CR Zhang等人(2023b),其中思维图(GoT)Besta等人(2023)是将思维结构扩展为图形格式的最新工作。本文将仅关注ToT作为基础思维结构,并留下GoT的使用作为未来的工作。

 

自动提示。释放人类从特定任务的提示中吸引了很多关注。为了保证LLMs的推理能力,传统的CoT依赖于人类先验知识来手动生成特定任务的演示作为提示。然而,零次CoT表明,即使没有手工制作的例子,通过在提示中简单地添加“让我们一步一步地思考”,LLMs也能够进行逐步推理以获得准确答案。这些见解催生了一系列后续研究。Auto-CoT消除了手动努力,通过检索零次CoT生成的可用推理链。Active-Prompt首先测量一组问题的不确定性,因此只选择不确定的问题由人类注释。ToT也可以减少手动努力,但对于每个任务,它仍然需要专家在提示中提供可能的下一步思维。我们的论文引入了一种新颖的无手动提示提升方法。从简单的提示开始,BoT根据LLMs对思维的分析迭代增强它。

 

通过反馈进行提示工程。利用LLMs对输入提示的响应作为进一步提示修订的反馈已经引起了很多关注。那些根据LLMs对输出的评估描述不断修订给定提示的人旨在获得准确答案。使用与我们论文类似的高级思想,SELF-REFINE提出了一种迭代自精炼算法,让LLM产生反馈以进一步精炼其输出。PHP通过直接将前一个答案的解决方案作为提示添加到后续提示中来简化这个过程。REFINER也与我们的论文相关,它评估每个推理步骤作为反馈以产生更合理的一个。另一系列研究探索了集成,特别是利用提升机制Freund等人(1996)通过一组示例的反馈来精炼提示。他们通过在前一次迭代中添加几个不确定的示例来调整提示,或者依赖于一个反馈-反思-精炼过程。APO Pryzant等人(2023)迭代地精炼提示,使用前一个提示的性能来形成优化的自然语言。这些工作证明了提升机制在提示工程中的有效性。然而,我们的工作是第一个强调错误分析在增强提示以生成有效推理链中的重要性。所提出的BoT将这一见解扩展到通过迭代累积一系列试错推理经验的集合来实现自动化提示框架。

 

3.提升思维

 

3.1背景

 

提示工程的目标是设计一个提示I,包含多个语言序列,以便通过这个提示作为输入,预训练的大型语言模型(LLM)表示为pθ,由θ参数化,可以获得所需的语言序列y。因此,标准的输入输出(IO)可以表述为y ∼ pθ (y|I (X, Q)),其中I (·)表示提示包装任务指令X和相应的问题Q。

 

BoT:强化思考:用大型语言模型解决试错问题

 

BoT:强化思考:用大型语言模型解决试错问题

 

图片描绘了使用算术运算解决问题背后的思维过程的视觉表现。它分为三个主要部分:思维结构聚合、下一思维生成及思维链分析 – 反馈。

思维结构聚合代表不同推理阶段(阶段1,阶段2,阶段3)的结合,每个阶段都有自己的数结构,说明了得出结论所采取的步骤。

下一思维生成侧重于特定阶段,展示如何使用语言模型(LM)预测下一个思维,考虑到先前的经验(由向量 Vi-1 和 Vi 表示)并生成新的推理链。

思维链分析 – 反馈提供了对采取的推理步骤的详细分析,指出可能的错误并提供改进建议。它通过评估这些步骤是否让解决者更接近目标数字(在这种情况下是24)来批判步骤,并建议尝试其他算术运算。

此外,还有一个简单提示部分,概述了思维过程的输入,其中包括任务不特定的描述、任务信息和问题,以及从先前的推理链条获取的经验,该经验充当生成新思维的占位符。

总的来说,该图片描绘了一种推理和解决问题的有方法论的方法,利用语言模型迭代地优化和改善思维过程。

具体来说,我们先看一下思维结构聚合部分。在这个部分,我们可以看到三个阶段,每个阶段都有一个彩色的异构树结构。在阶段一中,我们看到了一些算术操作,并且趋势是“vi1 – 0.5”。在阶段二,我们看到了更多的算术操作,并且趋势是“vi2 – 0.6”。最后,在阶段三,我们看到了一个趋势是“vi3 – 0.4”的算术操作序列。

对于下一思维生成部分,追踪到一个特定的思维节点,即Zi,并显示了其附带的权重vi,表明了这些思维在解决问题的上下文中的重要性。

在思维链分析 – 反馈部分,显示了几个推理步骤(Z1,Z2…Zn),并对其进行了评估。对于其中的每一个步骤,“R1:-3, try +”、“R2:+3, try -”和“R3: -1, try ×” 都代表了对特定步骤的反馈,对推理的评估以及对如何改进的建议。

在简单提示部分,可以看到一些输入提示,如:“任务非特定的描述‘玩数字游戏’”、“任务信息‘尝试使用四个数字1,3,4,6(每个数字只能使用一次)以及算术运算(加减乘除)得出数字24’”以及先前的推理链Gi。

这个管道的结果会生成一个新的思维过程,供下一次的推理使用。

这个图表示了一个思维过程和推理方法的逻辑流程,显示了如何使用语言模型(LM)以及反馈/建议机制来推进问题的解决,并对每一步进行了批判性的反馈和评估。

图2:揭示了BoT在每个迭代中的流程概览。为了呈现在这种基于经验的迭代过程中如何实现效能的提升,我们展示了在24点游戏数据集上对ChapGPT-4进行的一种试验中所得到的详尽中间结果。在赋予问题Q:“提供的四个数字为:2,4,5,5”后,BoT会连续进行三个阶段。以简单的提示It作为输入,思维结构生成(阶段1)能输出大量的各种异构的树形思维结构。在思维结构聚合(阶段2)中,将它们集成成一个思维链z1…n,接着在阶段3中分析这个思维链,以便产生经验,用以进一步强化这个提示。

 

提示可以设计得更精细,以引导LLMs以逐步方式解决问题。每个中间推理步骤表示为zi(也称为思维)。CoT提供了少数几个示例,每个示例的答案包含一个思维链z1…n。这导致y ∼ pθ y|I [z1…n]N , X, Q ,其中N是包含在提示中的示例数量。

与其在引导中预备示例,更灵活的办法是设计引导来引导LLM在推理过程中逐步产生思考 zi。这可以被形式化为 zi ∼ pθ (zi |I(z1…i−1, X, Q))。最后,解决方案形式化为 y ∼ pθ (y|I(z1…n, X, Q))。
代表性的方法,ToT Yao等人(2024)进一步将这种序列式推理步骤扩展为树形结构,在其中可以产生 C 个下一步的思考。因此,思考的结构可以是链状或树状。

 

3.2框架

 

现有文献旨在生成具有正确CoT示例的提示或设计精细的思维生成结构,存在三个限制。首先,这些方法中的无效思维通常被忽略或丢弃。然而,人类,特别是非专家,在其他领域中,尤其依赖于分析先前的错误来收集更多经验,以便在下一次尝试中正确执行。其次,它们的可扩展性较差,因为对于每个任务,都需要在提示中提供生成下一步思维的示例,例如I (z1|z0, X, Q)。最后,思维结构(如Yao等人的树结构)生成过于复杂,以探索更多的推理步骤,以获得更好的解决方案。这主要是因为获得的解决方案可能无法进一步修订。

 

在本文中,我们认为,通过不断收集LLMs对这些无效思维(思维链中的错误的推理步骤)的分析,可以增强提示。因此,即使是一个简单的提示,例如I (X, Q),可能导致无效思维,也可以通过依赖此类分析来逐步改进,以获得强大的思维,从而接近解决方案。

 

我们提出了一种名为Boosting of Thoughts(BoT)的自动化提示框架,通过一个经验驱动的迭代过程来实现提示增强,从简单的提示开始。总结如图2所示,BoT的每次迭代t包括三个阶段。思维结构生成阶段能够充分利用LLMs生成的推理链,输入提示为It。在第二阶段,这些思维结构被聚合成一个推理链,该链将由LLMs在第三阶段进行分析,以产生包含错误报告和详细修订建议的反馈。将聚合的推理链与反馈结果结合起来,形成一个新的经验,记为Ft。因此,通过在迭代中累积这些经验F1…t,提示得到增强。

 

简单提示。对于任何任务,在迭代t=0时,我们创建一个简单的初始提示I0 ≡ {S, X, Q, F0, {Gi}},其中S表示任务无关的描述,而X和Q分别表示任务信息和问题。提示的经验部分记为F0,在开始时应该是空的。{Gi}是一个占位符,在构建思维结构时将被填充。换句话说,在生成下一个思维zi时,{Gi}将被替换为前面的思维链z1..,i-1。

 

思维结构生成。在收集经验Ft-1后,迭代t的提示可以是It ≡ {S, X, Q, F1,…,t-1, {Gi}}。基于这个提示,BoT并行生成M个思维结构。BoT本质上能够包含任何思维结构,例如链式Wei等人的结构或树状Yao等人的结构。考虑到推理步骤的探索和实验结果,我们研究了树状思维结构。然而,BoT引入了两个新颖的修改,使其更适合提升框架。

  • 加权二叉树。在每轮中使用简单的提示,BoT构建了结构简单、复杂度低的弱思维,因为它们可以在提升机制中进一步修订。因此,BoT的每个思维结构都是一个浅层加权二叉树。为了简单起见,我们保留符号z1…i-1来表示从根节点到节点i的父节点的思维。除了为每个节点i提供一个思维zi和其思维评估分数Vi ∼ pθ (z1…i, Ia, X, Q),我们还加入了子节点与其父节点之间的边分数Vi-1,i ∼ pθ (zi-1, zi, Ie, X, Q),其中Ia和Ie分别指代思维和边评估的指导描述。Vi-1,i表示LLMs生成这个推理步骤的信心水平。因此,BoT在这个树结构中的下一个思维生成被形式化为pθ (zi| (Vi-1,i, Vi, It, X, Q))。
  • 树异质性。与ToT不同,它寻求在一个大型复杂树中寻找解决方案,BoT旨在构建高度异质的树状思维结构。因此,为了增加异质性,思维结构生成采用了不同的树生长策略,例如逐层生长和逐叶生长。前者强调探索但利用较少Chen & Guestrin (2016),而后者则相反Ke等人(2017)。因此,逐叶策略倾向于从当前最佳思维继续推理,以达到更好的最终思维,相比之下逐层生长,但它也倾向于得到单调的推理链。此外,应用了不同的温度和Top p设置的LLMs。最后,我们在BoT中使用了一个小的最大深度值,并在Vi-1,i和Vi值超出指定范围[0.3, 0.8]时将一个节点标记为叶子。

 

思维结构聚合。在获得M个思维结构后,BoT将它们聚合成一个思维链,记为z1…n。为了实现这一点,对于每个思维结构索引m,BoT首先选择具有最高评估分数的链,即zm 1…nm := arg maxz1…n∈Zm ∑i=1 Vi + Vi-1,i,其中Zm表示第m棵树的所有思维链的集合。随后,存在两种策略来获得z1…n。

  • 最佳优先聚合。BoT依赖于arg maxz1…n∈{Zm}M m=1 ∑i=1 Vi + Vi-1,i,从M个思维结构中选择最好的一个作为z1…n。这种算法速度快,但可能导致一个不合理的链,难以引导后续的改进。
  • 贪婪聚合。BoT被允许在{Zm}M m=1上执行贪婪搜索,以组装一个新的思维链,这个链可能不存在,但可能是全局最优的。从初始思维开始,通常是树的根节点,BoT获得z1 = arg maxzj∈{zm 1 } M m=1 Vj + Vj-1,j。随后,为了获得zi,BoT在{Zm}M m=1中搜索前一步是zi-1的所有思维。

 

思维链分析。为了获得洞察力,了解应该调整什么以增强提示以生成更好的思维,BoT利用LLMs的自我评估能力来评估z1…n。具体来说,以提示It f (z1…n, X, Q)作为输入,LLM输出一个反馈段落,包含关于这个思维链z1…n的问题报告和详细建议。这个反馈将被添加到F1,…,t-1中,作为思维生成中的新经验,结果为F1,…,t。

迭代精炼。通过提升机制,F1,…,t被用来迭代增强提示,结果为第(t+1)次迭代的提示It+1 ≡ {S, X, Q, F1,…,t, {Gi}}。随着迭代的进行,F1,…,t可能包含许多典型的、不合理的思维链,以及那些更接近解决方案的思维链,所有这些都具有明确定义的分析结果。因此,即使从简单的提示开始,BoT也会迭代地完善这个提示,以产生正确的推理步骤,从而得出准确的解决方案。经过T次迭代后,我们使用It+1作为LLM的输入提示,以获得最终答案。

 

4.实验

 

数据集。实验在包含各种数学问题的基准数据集上进行,包括MMLU、SVAMP、GSM8K、AQuA和MATH。此外,我们还包括了一个具有挑战性的数学推理任务Game of 24,目标是使用四个数字和基本的算术运算(加法、减法、乘法和除法)在1个方程中得到24。因此,解决方案包括3个中间步骤。

 

竞争对手。除了基准方法标准输入输出(IO)之外,比较方法包括链式思维(CoT)、CoT-SC和复杂CoT,其中输入提示包含少数几个示例(8)和人类注释。此外,BoT还与相关工作进行比较,如思维树(ToT)、渐进式提示(PHP)和最先进的CSV。我们使用GPT-4和Llama2进行实验。GPT-4通过OpenAI API访问,而llama2-13b-chat模型从MetaAI下载以在本地进行实验。为了构建异构树状思维结构,BoT在温度范围[0.2, 0.4, 0.6, 0.7, 0.9, 1.1, 1.5]和top p范围[0.1, 0.3, 0.5, 0.7, 0.9]中随机选择温度。

 

设置。除非明确说明,否则在所有实验中,BoT执行T = 10次迭代,并构建M = 15个思维结构,每个结构都是一个加权二叉树,因为这往往能够获得最佳结果。此外,对于这些基准数据集,我们将树的深度设置为5,而在Game of 24中的相应深度为3。BoT+CoT意味着我们的简单提示包括来自CoT的5个示例。在消融研究中,当BoT中没有累积经验时,将在提示中提供8个CoT示例。

 

度量指标。我们用任务的解决率(%)来衡量和报告所有实验的结果。从BoT的输出zT1…n中获取目标答案,我们专门为LLMs设置了答案的格式化描述。对于常用的数据集,答案的格式被设定为“答案是:”。对于24点这个游戏,我们采用“步骤索引,现状集合:,选出的两个数字:,操作:,运算得出的新数字:,剩余数字:,新的数字集合:”。接着,我们将新数字集合中的数字直接与地面实况进行对比。参照ToT Yao等人(2024)的做法,我们用从100个困难游戏中统计出的解决率作为度量指标。

 

4.1主要结果

主要实验结果总结在表1和图3中,其中我们提供了BoT整体性能的见解。我们的发现表明,所提出的BoT通过提升机制1).在大多数数据集中获得了与人类注释无关的竞争性问题解决率;2).在提供CoT示例时,能够达到新的最先进的水平。然而,实验结果也表明,BoT严重依赖于经验,因此对LLMs的能力非常敏感。

 

具体来说,在表1中,BoT从简单的初始提示开始,最终在GSM8K上比当前最先进的CSV高出0.1%的解决率,这严重依赖于GPT-4的代码解释器。考虑到AQuA,BoT比SOTA高出2.5%。这表明通过在提示中添加错误分析和建议,而不依赖于人类注释,LLMs能够在复杂的推理上表现良好。主要原因是简单的提示可以通过积累以前的经验逐步改进,以准确解决问题。在提示中包含CoT示例后,BoT+CoT比SOTA高出1.3%。我们认为,CoT示例可以被视为经验中的成功案例,直接指导BoT的后续思维结构生成。因此,通过迭代改进,BoT+CoT达到了新的SOTA。同时,BoT和BoT+CoT,特别是BoT,在MATH上至少比SOTA低18%。这一观察结果意味着,由于LLMs分析推理链以获得有效经验的能力较低,弱LLMs可能无法与BoT很好地配合。

 

BoT:强化思考:用大型语言模型解决试错问题

表格 1:将 BoT 与 GPT-4 联合使用,即使没有人工标注,也能显著提高性能。
当 BoT 的简单初始提示中包含 CoT 示例时,相应的 BoT+CoT 方法展现出更高的解题率。我们的框架也与领先的方法,如 Zhao 等人于2023年的 Model Selection、Zheng 等人于2023年的 PHP、以及 Zhou等人于2023年的 CSV 进行了对比,在 SVAMP、AQuA 和 GSM8K & MATH 数据集上分别达到了最佳状态(SOTA)的表现。

 

BoT:强化思考:用大型语言模型解决试错问题

图3:利用BoT和BoT+CoT来评估在2023年的GPT-4 OpenAI与Llama2 Touvron等人的问题解决率。

 

从图3可以看出,在BoT条件下,GPT-4和Llama2在三个数据集上分别平均提高了11.6%和4.4%的平均性能。这两个数字显示了一个明显的趋势,即当LLMs更强大时,BoT和BoT-CoT的表现类似,如图3所示。此外,随着树的数量从1变化到20,它们的性能也呈现出类似的上升趋势。由于Llama2较弱,BoT无法从其分析中受益,以执行经验驱动的迭代过程,尤其是在图3(a)中显示。当提供有效成功案例,即5次测试时,通过逐步改进,BoT仍然可以帮助Llama2解决比基线更多的问题,尽管改进有限。

 

4.2 24点游戏

 

BoT:强化思考:用大型语言模型解决试错问题

图4: 在不同数量的树和迭代中比较三种方法。

 

BoT:强化思考:用大型语言模型解决试错问题

表2:在 24点游戏中,不同方法的设置遵循了 ToT Yao等人(2024) 中的设置,此处展示了他们的结果。

 

BoT:强化思考:用大型语言模型解决试错问题

表3:展示了在第1次,第5次,以及第8次迭代中累积的思维过程和得以积累的经验。给定的四个数值为:2、7、8、9。

 

由于Game of 24问题的难度,GPT-4和Llama2在这项任务上的表现都很差,即使结合了CoT和CoT-SC方法。Llama2模型甚至无法遵循解决问题的正确规则,使得解决率甚至更低。特别是当应用BoT时,它依赖于经验,而Llama2的所有结果都低于5%,没有显著改进。因此,我们只报告了BoT与GPT-4的性能。为了保持公平的比较,我们遵循ToT Yao等人(2024)提出的设置。

 

如表2所示,没有人类注释的BoT比依赖一个示例展示所有可能的下一步的ToT高出9.7%。此外,包含5个CoT射击的BoT+CoT比BoT高出1.2%。BoT和BoT+CoT之间的性能接近归因于提升机制,它逐步修订了弱思维,如4.1小节所讨论的。采用经验驱动的迭代过程,BoT在树的数量M和迭代次数T增加时表现出增强的性能。如图4所示,与BoT+CoT相比,BoT更依赖于M和T,因为它需要从更好的思维链或更长的迭代中收集经验。另一个观察结果是,当启用ToT以经验丰富的提示进行操作时,问题解决率从第一次迭代的72.5%上升到第10次迭代的80.2%。这表明经验——对以前推理链的分析可以被LLMs用来显著提高解决率。然而,ToT获得的分数仍然比BoT低3.5%。这归因于BoT的聚合阶段将产生当前迭代中最有代表性的推理链,从而引导更有意义的经验来增强提示。我们在消融研究部分验证了这一点。

 

为了更好地展示BoT如何从错误和以前的建议中学习,我们在表3中展示了GPT-4能够避免以前的错误,并在迭代次数增加时产生更具体的建议,最终获得正确的解决方案。在第一次迭代中,由于简单的提示,LLMs甚至在遵循任务规则时犯了错误,因为新集合在第3步中是错误的。经过分析,它对这一错误提出了正确的建议。然而,初始迭代的分析是模糊的,例如“尝试其他数字和运算”。经过五次迭代后,BoT聚合了多个这样的分析,得出了更有效的提示,使LLMs选择了正确的数字9和7。此外,建议更具体和有用。对于这个正确的选择,建议是增加相应的评估分数。通过不断积累这样的经验,BoT逐步完善了提示,最终在第8次迭代中直接生成了正确的解决方案。

 

4.3消融研究

 

BoT:强化思考:用大型语言模型解决试错问题

表4:对在24点游戏及AQuA数据集上运用了不同BoT变体的GPT-4进行比较。

 

当通过“累加”的方式汇集问题和建议时,所有聚合策略都能产生较高的解决率。保持一个完整的经验对于修正思维尤为重要,尤其是对AQuA数据集来说,它覆盖了更广泛的数学推理问题。然而,不进行聚合而直接使用所有生成树的推理链的BoT(No),在所有情境中表现最差,特别是在经验累积类型为“累加”时。BoT在每个迭代中构建15棵树,将所有这些树一起放入提示,可能会遮盖重要的信息,更别提大部分这样的经验可能无效或有害。

 

取得建议对于触发思维比其他事物更为关键。在所有的表格4提到的实例中,将建议视作经验的BoT变体都实现了最高的解决率。例如,在同样是”加法”类型的情况下,如果经验中不包含建议,其性能在”24点游戏”和 AQuA中分别下滑了超过10%和20%。相反的,把问题纳入经验中可以作为帮助提升性能的辅助手段。只有通过问题配合,哈带有建议的BoT才能取得最佳的解决率。比如说,在AQuA中,BoT(贪心法)的解决率提高了4.4%。

 

出于性能的考虑,贪心集结可能是唯一必须的选择。相较于从已有的思维链中选取一个,或维系所有的思维链这种最优先的方式,贪心集结可以适应性地将树状结构合并为一个更佳的思维链,这可能在当前的迭代中并不会出现。通过这样的方式,LLM可以进行对一个更强大的思维链的有意义的分析,因此而产生重要的经验以增强提示。在AQuA中,包含的数学问题更多,这个数字甚至达到了10%。此外,正如我们在图4的讨论中,虽然ToT拥有类似的经验驱动提升机制能够达到80%,但它仍然落后于BoT。这可能是因为它无法在其单一的树状结构中执行贪心集结。

 

5.结论

 

本文验证了一个简单的提示可以通过逐渐累积对其生成的思维的错误分析来解决复杂任务。我们提出了一个名为Boosting of Thoughts(BoT)的新颖框架,通过经验驱动的迭代过程来实现这种渐进的提示增强,以生成有效的思维链。通过迭代探索和自我评估生成的简单树状思维链,可以使一个简单的初始提示逐渐增强,通过一系列试错推理经验,从而得出准确的解决方案。我们的广泛实验表明,BoT能够在多个基准数据集上实现最先进的性能,并且在Game of 24这一具有挑战性的数学推理任务上超越了其他领先方法。

 

 

A 基本提示和推理流程的BoT

 

A1 思维生成部分的BoT

 

这部分提到了被提出的思维增强(BoT)的推理生成所用的基本提示。具体相关细节,可以访问源代码的例子文件:/examples/BoostingOfThought/BoT reasoner.py。

 

系统提示:

你是一个数学问题的专家。通过从一系列试验和错误的推理经验中学习,进行逐步解题的推理。这种试验和错误的推理经验具体包括错误报告,以及关于如何修改以前推理步骤的详细建议。在生成新的推理步骤之前,一定要回顾这些列出的经验,以此避免重蹈覆辙,同时利用正确的步骤去生成更好的推理步骤,用于解决问题。

 

System prompt S:

You are an expert on mathematical problems. Perform step-by-step reasoning
toward problem solving by first learning from an ensemble of trial-and-error reasoning experiences.
Such trial-and-error reasoning experience specifically contains error reports and detailed advice on
how to revise historical reasoning steps. Always recall these listed experiences before generating a
new reasoning step, thereby avoiding making the same mistakes and reusing correct steps to generate
better reasoning steps to solve the task.

生成下一个思维的提示:

f”””

{任务提示}。 \n

首先,回顾以往的推理经验:\n\n

 

{经验}\n\n

 

请推出下一个可能的推理步骤,且只能有一个。该推理步骤应作为以下有序步骤的顺序后续步骤,并应附带相应的评估分数(分数越高,表示完成任务的可能性越高):\n\t

{链提示}\n\n

 

基于上述前序推理步骤(如果上述空间为空,则忽略它们),根据任务规则,生成一个唯一的下一个可能的步骤。(重要:请只产生一个给定步骤的下一个可能的推理步骤。)

”””

f”””{task prompt}. \n First of all , Recall historical reasoning experience : \n\n {
experiences} \n\n Please make one step of reasoning to generate only one next
possible reasoning step . This next reasoning step is the subsequential step from
the following ordered previous steps , accompanied by their evaluated scores (A
higher score means the reasoning step is more likely to complete the task .) : \n\t{
chain prompt}\n\n Based on listed previous reasoning steps ( ignore them when the
above space is empty), generate one single next possible step following the Task
rule . (Emphasize: Please generate only one single next possible reasoning step of
the given steps .) ”””

 

在任务提示中包含任务的X和Q,历史经验为F1…t。”链提示”的部分是{Gi},这是一个占位符,当进行当前思考zi时,需被前一系列的思考z1..,i-1所替换。

对于思考评估的提示:

f”””

{任务提示}。\n\n

以下是按顺序排列的推理步骤,伴随着他们各自的评估分数。(分数越高,意味着该步骤完成任务的可能性越大。)\n

{链提示}\n

{思考}\n\n

你对这些推理步骤的逻辑性、正确性以及对最后解决方案的帮助程度的评估分数是多少?请从 [0.1, 0.3, 0.5, 0.7, 0.9, 1.0] 中选择一个作为分数,分数越高表示推理步骤越好。分数应该放在 ’ Evaluation score:’ 后面供用户阅读。”””

 

f”””{task prompt}. \n\n Below are the generated reasoning steps , presented in order ,
accompanied by their evaluated scores (A higher score means the reasoning step is
more likely to complete the task .) :\n{chain prompt}\n{thought}\n\nWhat is your
evaluation score for the logic , correctness , and benefit to reaching a final
solution for these reasoning steps ? Please select one value from [0.1, 0.3, 0.5,
0.7, 0.9, 1.0] as the score , where a higher score means better reasoning steps . The
score should be placed after ’ Evaluation score :’ for users to read .”””

在此,思考就是当前进行的思考Zi。

 

A2 经验生成部分的BoT

 

为了生成对聚合链的反馈,LLMs使用以下基本提示。有关详细信息,还可以访问源代码examples/BoostingOfThought/BoT commenter.py。

 

系统提示S:您是数学答案的AI专家评审员,致力于评估生成的推理链以解决数学问题。请通过提供详细分析来评估这个推理链的每个推理步骤,判断当前步骤是否是前一步骤的逻辑推理,以及推理步骤是否有助于正确的解决方案。对于每个错误的推理步骤,请提供错误报告和相应的修订建议。对于每个正确的推理步骤,请提供推荐或拒绝的描述。

 

系统提示:

你的角色是一位娴熟的AI数学答案审查专家,专注于评价解决数学问题的推理过程。你需要通过详尽的分析,对每个推理步骤进行判断,看其是否基于前一步的逻辑,以及这一步骤是否对找到正确答案有所帮助。如果遇到错误的推理步骤,你需要给出建议和修改方案。对于正确的推理步骤,你需要进行肯定或者给出不同的选择方案。

 

System prompt S:

You are an expert AI checker for math answers, dedicated to evaluating the
reasoning chain generated towards addressing the mathematical problem. Judge each reasoning
step of this reasoning chain by providing detailed analyses on whether the current step is a logical
inference of the previous step and whether the reasoning step is beneficial to the correct solution.
Provide advice and suggestions for each reasoning step with errors. Provide recommendation or
rejection descriptions for each correct reasoning step.

反馈提示:

f”””

对于给定的任务:{任务提示}。\n

{推理链提示}\n\n

请对此推理链进行评估,并提供包含以下几点内容的详细评论。\n

1.{链反馈格式}。2.{步骤反馈格式}。3.{信心反馈格式}。\n\n

注意事项:{注意事项}。

 

f”””Given task:{task prompt}.\n{chain prompt}\n\n Please evaluate this reasoning chain
by giving detailed comments containing the following content .\n 1.{
chain feedback format }. 2.{ step feedback format }. 3.{ confidence feedback format }.\n
\n Notice: {Notice}.

其中推理链提示是聚合的推理链z1…n。

链反馈格式:这个推理链能否通过执行其推理步骤正确完成任务并达到目标?为什么?在“分析报告:”下写下结论分析报告。

步骤反馈格式:对于每个推理步骤,请提供详细分析,判断当前步骤是否是前一步骤的逻辑推理,以及推理步骤是否有助于正确的解决方案。对于每个错误的推理步骤,请提供错误报告和相应的修订建议。对于每个推理步骤,请提供推荐或拒绝的描述。评论应简洁,并按照以下格式:推理步骤⟨idx⟩。分析报告:。建议:。推荐或拒绝描述:。

信心反馈格式:您对这些评估和评论的信心分数是多少?请从[0.1, 0.3, 0.5, 0.7, 0.9, 1.0]中选择一个值作为分数,供用户阅读。

通过反馈提示,LLMs生成包含对推理链和每个推理步骤的结论和分析的经验Ft。

 

A3 推理流程

 

为了便于理解所提出的Boosting of Thoughts,我们总结了推理流程在算法表1中。这个流程的源代码可以在文件examples/BoostingOfThought/BoT core.py中找到。

 

BoT:强化思考:用大型语言模型解决试错问题

BoT原文

图片内容是关于一种名为 “BoT” 的理论的算法步骤表述,以下是其中文译文,对应的算法步骤如下:

算法1:BoT的主要推理流程

输入:迭代次数 T,树结构的数量 M,问题 Q。
输出:聚合的链 z̄_1…n^T

1. 初始化一个简单的提示I^0 (S, X, Q, F^0, {Gi}),其中 F^0将是一个空字符串。
2. 每次迭代 t = 1, 2, …, T,
3. 使用提示I^t-1 (S, X, Q, F^t-1, {Gi}) 与LLMS(低潜在量混合模型)创建 M个不同的树状思维结构,其过程称为“Thought Structure Generation”。
4. 从 M个思维结构中提取思维链{z̄_i=1…n^m},每个 z̄_i=1…n^m 是 m-th树结构的最佳思维链。
5. 使用“Best-First Aggregation”或“Greedy aggregation”方法将{z̄_i=1…n^m} 并入单一思维链 z̄_1…n^t。
6. 使用LLMS在 z̄_1…n^t 上进行“Thought Chain Analysis”,获得反馈,并与 z̄_1…n^t 结合,获得经验F^t。
7. 通过累积F^t 更新提示,使其变为 I^t (S, X, Q, F^t-1,t, {Gi})。
8. 结束
9. 获得解决方案 z̄_1…n^T

 

 

B 增强思维的见解

 

Boosting of Thoughts源于我们的见解,即大型语言模型(LLMs)解决数学问题的推理能力直接来自于经验,这些经验包含了对先前错误的分析和建议。一旦提示包含有效的历史推理经验供LLMs在执行推理前回忆,所产生的推理步骤通常更加逻辑和合理,如表5和6的比较所示。这些见解还使我们考虑到,LLMs不需要严重依赖于每个任务的精心准备的提示(提示中的几个思维链示范作为示例)。然而,由于LLMs能够从经验中学习,我们可以从一个简单的提示开始,不需要示例或手动设计的内容,在推理过程中逐渐收集经验。最终,通过在提示中累积经验,LLMs实现了解决复杂问题的强有力推理。有了这些见解,Boosting of Thoughts被设计为一个自动化的提示框架,它通过迭代收集试错推理经验的集合来解决问题。我们认为所提出的BoT不是LLMs应用于特定任务,而是建立在这样的见解上,即LLMs的推理能力可以直接从分析不正确推理链的错误分析中获得,而无需依赖人类先验知识。

 

为了强调我们的见解,我们分享了以下三个关键观察,这些观察是基于以下24局游戏数据集上使用gpt-3.5-turbo模型,温度为0.7,top p值为0.7的应用得出的。

 

提示中的经验鼓励LLMs在回答中探索更多的逻辑。如表5所示,当提示中不包含经验时,模型生成了相同的推理步骤五次。这一观察显示了LLMs的一个常见问题,即缺乏自我激励去探索不同的推理逻辑。因此,尽管LLMs具有强大的推理潜力,但它们可能会陷入一个循环,开始于最简单的推理步骤,这可能永远不会导致找到最终解决方案。表5的“获得的推理链”部分展示了错误的推理链。我们认为,正如Tree of Thoughts Yao等人(2024)通过生成多个响应作为思维来构建树的节点,这样的重复推理步骤可能会导致该算法在某些情况下失败。然而,在BoT的第二次迭代中,引入经验到提示中,导致生成了不同的初始推理步骤,如表6所示。最终的推理链最终可以通过从更广泛的潜在逻辑范围开始,到达正确的解决方案。Weng等人(2023)

 

LLMs避免犯经验中强调的类似错误。如果不在提示中包含经验,其中包含错误分析,LLMs将犯很多错误,例如偏离任务规则和在最后过程中退回到初始推理步骤,如表5的“获得的推理链”部分所示。在分析这个推理链并将其反馈作为经验纳入到BoT的第二次迭代的提示中之后,从表6可以看出,LLMs将在进行推理之前充分学习经验。首先,没有一个响应复制了相同的错误推理步骤,正如“来自gpt-3.5-turbo的五个响应”中所示的多样化的初始推理步骤。其次,LLMs成功避免了所有先前确定的错误,通过严格遵守任务规则,消除不正确的推理,并执行逻辑推理步骤。第三,最终导致“1 1 4 6”Game of 24任务的正确解决方案。其他工作,如Weng等人(2023);Madaan等人(2023);Zheng等人(2023),也强调了通过反馈增强提示的重要性,这是对先前答案的自我评估。然而,BoT是开创性的工作,基于这样的见解,即包含错误分析的经验可以使LLMs获得强大的推理能力。

 

没有人类注释,LLMs根据经验自动组织有效的推理链来解决复杂问题。BoT是开创性的倡议,提出了一个自动化的提示框架,利用这样的见解,即LLMs可以通过错误分析和指导,仅通过经验获得解决问题的有效推理技能,而无需人类注释。如表5所示,这是BoT的第一次迭代,初始提示只包含基本任务指导和问题,而没有像CoT中的上下文学习示例。即使LLMs使用这种提示获得的推理链包含许多错误和无效的推理步骤,其错误分析和建议可以作为经验包含在输入提示中,以使第二次迭代的推理受益,如表6所示。可以观察到,没有关于正确推理程序的人类指导,LLMs可以从经验中获取知识,包括错误分析和指导,这些经验是从以前生成的推理链中获得的,从而导致推理问题解决的逐步改进。

 

因此,我们的BoT为研究提供了长期指导,因为它展示了在使LLMs生成复杂任务的有效推理过程时,回忆错误分析和建议的重要性。有了这些见解,诱导LLMs推理能力的提示工程研究可以专注于如何生成经验,而不是引入更多的人类先验知识。

 

 

C思维结构生成

 

BoT是一个自动化的提示框架,迭代地累积从推理链分析中得到的经验。因此,BoT被概括为各种思维生成方法和能够生成和评估推理步骤的LLMs。而且,BoT的性能取决于其思维生成结构的有效性。因此,BoT使用最新的结构——思维树(ToT)Yao等人(2024)作为其基础模型,在每次迭代中生成推理链。正如主要论文中提到的,基础思维生成模型也可以是思维图(GoT)Besta等人(2023),即BoT与GoT。然而,由于时间限制以及当前GoT尚未应用于数学问题,BoT设计专门采用ToT。此外,当作为提升机制中的基础模型时,每次迭代中的思维结构可以保持轻量级。最终,所提出的BoT生成异构树结构,每棵树都是一个浅加权二叉树。

 

C1 下一个思维生成和边权重计算

使用第A节中讨论的下一个思维生成提示,LLMs可以通过结合经验F1…t并用z1..,i-1替换{Gi}来生成推理步骤zi的下一个可能思维。对于一个推理步骤zi,LLMs使用思维评估提示来生成评估分数作为zi和zi-1之间的边权重。有关详细过程,请参见examples/BoostingOfThought/BoT reasoner.py中的源代码。直接举例说明BoT应用于Game of 24中的’3 5 6 8’,使用gpt-3.5-turbo,表7和表8展示了思维的生成,而表9展示了如何计算。

 

C2 异构树结构的必要性

在每次迭代的BoT中,异构树结构的构建是为了探索更广泛的推理搜索空间并提高鲁棒性。正如在examples/BoostingOfThought/BoT core.py下的源代码中看到的那样,LLMs在每棵树中的温度和Top p值分别从范围[0.2, 0.4, 0.6, 0.7, 0.9, 1.1, 1.5]和[0.1, 0.3, 0.5, 0.7, 0.9]中选择。树生长策略可以是逐层生长或逐叶生长。我们观察到保证这种异构性的以下两个好处。

 

异构性扩展了推理搜索空间,从而增加了收敛速度。当不同的树为不同的目的构建时,例如使用逐层策略进行探索或使用逐叶策略进行利用,并且基于随机或确定性的LLMs,生成的推理步骤和结果的推理链可以表现出显着差异,有效地覆盖了更广泛的推理可能性。例如,在一次迭代中,当LLMs以更多信心生成下一个思维时,类似的思维将不断被探索;否则,具有更多随机性的LLMs倾向于生成多样化的思维。通常很难预测确定性推理或随机性是否有助于解决方案。因此,通过混合不同类型的逻辑推理步骤来保证异构性,使我们能够在单个迭代中全面探索推理空间,最终促进后续迭代。在消融研究中,我们比较了异构和同质树结构之间的BoT性能。

 

异构性减少了生成无效或错误推理链的可能性,从而增强了鲁棒性。与异构性不同,在具有同质设置的树中,单个树倾向于遵循一致的逻辑生成思维,并构建具有相同树结构的推理链。然后,当逻辑错误或底层结构对当前问题无效时,BoT在每次迭代中获得的所有树的推理链只能包含噪声和不正确的推理步骤。即使在聚合它们以获得更精炼的推理链进行评估时,经验可能仍然与提供适当的问题解决建议有很大的偏差。因此,将树状思维结构设计为异构性可以帮助减少在后续BoT迭代中没有有效的推理链可用于评估的可能性。这种增强的鲁棒性使BoT能够解决不同难度级别的问题。

 

BoT:强化思考:用大型语言模型解决试错问题

 

这是一张描述了”最优先聚合”和”贪婪聚合”过程的图片。

输入:M条推论链,其中m-th链的推论步骤记为z1i=1m。
输出:聚合链z1..n。

1 – 最优先聚合
2 对于每个链 m = 1, 2, …, M 做
3 计算m-th链的边缘权重之和为 Vm = ∑i在m1m范围内 Vi-1,i。
4 结束
5 通过执行 m* = arg maxm {Vm} 获取M个链中最优的链
6 将聚合链分配为最优链,z1…n := {z1i=1n*m*}

7 – 贪婪聚合
8 z1 := z1 其中 m* = arg maxm {V1m}.
9 对于每个聚合步骤 i = 2, …, n 做
10 对于每个链 m = 1, 2, …, M 做
11 收集 Jm = {j, sim(z1i-1, z1j) > 0.7; j ∈ n1m}.
12 获得 j*,m = arg maxj∈Jm {Vj,j+1m}
13 结束
14 执行以下操作获得最佳下一推理步骤:zi = z1j*+1 其中 j* = arg maxj∈{j*m}1M {Vj,j+1m}.
15 结束
16 获得聚合链 z1…n。

这基本上是一个描述如何通过不同的方法对数据链或节点进行优化并获取最佳结果的算法流程图。

 

 

D 思维结构聚合

在完成异构树结构中的推理后,BoT的聚合过程首先从每棵树中提取最佳推理链,然后使用最佳优先或贪婪聚合方法将它们组合成一个单一的推理链。有关这两种聚合方法的更多详细信息可以在源代码examples/BoostingOfThought/BoT aggregator.py中找到。

 

如算法16的第一块所示,最佳优先聚合是一种直接的聚合方法,它直接提取具有最高边权重和的链。这种方法快速稳定。它通常保证具有竞争力的性能,因为后续的经验可以通过分析获得的最优链来生成。然而,它只能选择现有链而无法进行有效的调整。贪婪聚合更为先进,因为它结合了不同链中的推理步骤,产生了一个新的、更好的推理链,具有最高的边权重。算法16中的贪婪聚合过程包含两个步骤。首先,它收集与聚合推理步骤zi-1相似的推理步骤。因此,下一个聚合推理步骤是从这个收集集中的下一个推理步骤中选择的,通过最大化边权重。sim是使用LLMs评估两个段落之间相同单词和数学数字的百分比的相似性函数。0.7是从实验中获得的经验阈值。

 

 

E 错误反馈的影响

通过评估聚合推理链获得的反馈可能包括分析的有限用途和完全错误的结论和错误报告。这个问题通常是由LLMs的性质引起的,它们是语言模型,并不固有地验证生成文本的准确性。此外,LLMs的能力,例如gpt-3.5-turbo,当用作数学问题的验证器时受到限制。

 

一个直接的例子在表7中呈现。分析报告得出结论:“第三步中获得的最终结果是80,数学上等于24。”更糟糕的是,经验进一步包含“推理链是正确的”,并且“推理步骤中没有发现错误”。使用这个经验作为输入提示,在第一次迭代中,BoT被误导生成错误的推理步骤,相应的聚合链可以在表8的开头看到。很明显,聚合链在逻辑上是不正确的,并且不符合Game of 24的任何规则。

 

然而,我们认为,错误的反馈不会被放大,而是通过BoT的迭代机制,其对生成的推理步骤的负面影响可以在后续迭代中得到缓解甚至完全纠正。主要原因是生成的错误推理步骤将进一步分析以产生新的经验,将被添加到提示中。具体来说,由于这些推理步骤包含容易识别的明显错误,LLMs倾向于生成正确的错误分析,并提供有效的修订建议。有了新的经验包含在提示中,BoT能够生成正确的推理步骤。正如表8中的经验所示,BoT产生了详细的错误报告和修订建议,从而产生了合理的思维生成过程。

 

BoT利用迭代来缓解错误反馈的不利影响的优势,在图4中显而易见。值得注意的是,随着迭代次数的增加,BoT的性能表现出一致的增强。这强调了积累经验的重要性以及后续经验纠正先前错误的能力。

 

 

F 更多关于数学的结果

 

BoT:强化思考:用大型语言模型解决试错问题

图5: 揭示了使用不同策略在MATH数据集所有问题分类中的解决效果。这些策略的对比基于各类别,包括预代数、代数、计数与概率、数理原理、几何、预微积分和中级代数等。标有”总体”的子图则展示了所有类别所有问题的整体解决率。

 

在图5中,我们提供了不同方法在MATH数据集每个类别上的解决率。这些类别中各种数学问题的复杂性和多样性为数学推理提供了一个更具挑战性的基准。因此,MATH中的问题复杂性和多样性要求解决这些问题需要广泛的推理能力。因此,在我们的背景下详细检查我们的方法及其与其他方法的比较,可以提供有价值的见解。

LLMs。在MATH数据集上进行的实验使用了著名的大型语言模型(LLMs),即GPT-3.5-Turbo,以下简称为GPT3.5,和GPT-4,简称为GPT4。我们直接使用了OPENAI发布的API。

 

竞争对手。
• GPT4 ComplexCoT。这是使用复杂CoT Fu等人(2022)提示方法的GPT4模型。推理示例用于推理提示中,这些示例来自相应的Complex CoT出版物Fu等人(2022)。由于使用了贪婪解码,因此我们不遵循自我一致性方法Wang等人(2022)来对推理路径进行采样。
• GPT3.5。使用标准提示,GPT3.5模型用于生成答案。
• GPT3.5 ComplexCoT。与GPT4 ComplexCoT类似,但将模型更改为GPT3.5。
• GPT4 PHP+ComplexCoT。这是使用PHP Zheng等人(2023)+Complex CoTFu等人(2022)的GPT4模型。具体来说,在PHP Zheng等人(2023)框架中,使用Complex CoT提示生成初始基础答案,然后PHP+Complex CoT可以从这些基础答案中发展出后续的答案生成提示。因此,在交互的开始,通过将Complex CoT的基础提示和当前问题传递给LLM,可以生成基础答案。然后,依靠修订为PHP版本的Complex CoT提示,并附加提示句子,逐步提示框架在此基础答案上执行,以生成正确的答案。我们将其称为原始工作中PHP-Complex CoT对应的PHP+Complex CoT。Complex CoT的射击次数为8。
• GPT4 BoT wo/ experience。GPT4模型用于执行BoT框架的推理,而不积累经验。BoT的基本设置遵循主要论文中介绍的那些。因此,在一次迭代后,将使用聚合链作为解决方案。
• GPT4 BoT。GPT4用于执行主要论文中展示的完整版本的BoT。
• GPT4 BoT + CoT。除了BoT框架外,提示中还包括了来自CoT Wei等人(2022)出版物的5个推理示例。因此,在每次迭代中,提示不仅包含经验,还包括额外的5个CoT推理示例。
• GPT3.5 BoT。与GPT4 BoT类似,但将模型更改为GPT3.5。
• GPT3.5 BoT (GPT4)。在这个实验中,我们使用GPT3.5进行推理,从而在思维结构生成中生成思维链。

然而,在聚合的思维链分析中进行思维评估和经验生成时,使用GPT4模型来获得评估和分析反馈。

 

我们从图5中的结果中获得了以下额外的观察。

 

BoT在解决较为挑战性问题方面的突出性能,主要源自于经验的积累。如GPT4 BoT和GPT4 BoT + CoT等与BoT相关的方法,在MATH的不同子类别中始终能实现最高的问题解决率。具体而言,GPT4 BoT领先现有最佳方案GPT4 PHP+ComplexCoT8.6%,而GPT4 BOT + CoT更是领先12.4%。在总共七个类别中,GPT4 BoT至少比GPT4 PHP+ComplexCoT高0.8%出头,其中在代数问题上的优越性更是达到12.5%。对于GPT3.5 BoT和GPT3.5 BoT + CoT也同样如此。然而,当BoT框架中没有积累的经验时,所有的数学问题解决性能都会大幅度降低,就如GPT4 BoT wo/经验所显示的。

 

除了错误分析经验外,包括正确的实例,如简单CoT实例,对于提升BoT在解决具有挑战性的数学问题方面的效率至关重要。GPT4 BoT在解决MATH问题的前五个子类别时,其性能均大大领先GPT4 PHP+ComplexCoT。然而,在较为复杂推理和复杂逻辑步骤解决方面的需求更高的高级代数和中级代数领域,BoT的改进幅度仅为0.8%和2.4%。与在解决较简单问题类别时观察到的显著增强相比,这些增益相对有限。然而,当输入提示中直接加入5个正确的CoT实例后,GPT-4 BoT + CoT在高级代数和中级代数领域的表现大大提升,分别超越GPT-4 BoT7.7%和11.5%。这些观察结果的基本结论是,要确保BoT在解决复杂数学问题时能达到最好的表现,仅靠试错误分析以学习推理是不足够的,应依赖于在输入提示中提供正确答案给LLMs。

 

虽然开始时GPT3.5配合BoT可能稍逊于GPT-4 CoT,但是当使用GPT-4作为评估和分析的工具来生成经验后,可以让GPT-3.5 BoT(GPT-4)的性能超越GPT-4 Complex CoT。使用容量小于GPT4的GPT3.5作为LLM时,BoT获得的解决率至少比GPT4 ComplexCoT低7.7%(尤其是在代数这门学科里)。很明显,当性能较弱的LLMs产生的试错分析质量较低时,BoT无法胜过GPT4 ComplexCoT。因此,在GPT4生成经验的同时使用GPT3.5仅生成推理步骤后,GPT3.5 BoT(GPT4)在所有类别中表现出显著改进,导致解决率达到了55.8%,比GPT4 ComplexCoT高5.5%,甚至比当前最新的GPT4 PHP+ComplexCoT高出1.9%。这些观察结果进一步证明了在提示中通过迭代积累经验是BoT框架成功的主因。

 

 

G 游戏24点的推理结果

 

首先,在表5至表9中,我们展示了BoT在推理过程中使用的详细提示,从而提供了对BoT在每次迭代中所做工作的全面理解。然后,从表10开始,我们展示了包含BoT整个推理过程的确切示例。遵循实验部分中显示的基本设置,这些实验是使用GPT-3.5-turbo模型与BoT获得的。

 

BoT:强化思考:用大型语言模型解决试错问题

表5:在没有经验包含在输入提示中时,gpt-3.5-turbo生成的推理步骤。我们首先让模型生成五个推理步骤以检查多样性,然后呈现完成BoT第一次迭代后的最终推理链。

 

游戏24点的提示,没有经验

在24点游戏中,你会得到四个数字,目标是使用基本的算术运算(+,-,*,/)来结合这些数字,得到24这个结果。你只能使用每个数字一次,并且可以使用括号来改变运算顺序。

分析格式的每一步:
第X步,当前集合:XXXX,选择的两个数字:XX XX,运算:XX,计算得到的新数字:XX,剩余的数字:XXXX,新集合:XXXX。

给定的四个数字是:1 1 4 6。
让我们一步一步思考。

回忆历史推理经验(当经验为空时请忽略):
## ############### ######## ######## # # # #######
注意分析和结论在经验中,避免通过遵循建议而犯类似的错误。
以下是一系列有序的推理步骤,附带它们的评估分数(更高的分数意味着推理步骤更有可能完成任务。):

基于上述“_”中列出的推理步骤(即,不是经验块中的步骤),请进行一步推理,以生成唯一的一个可能的后续推理步骤。

来自gpt-3.5-turbo的五个响应
步骤 1,当前集合:1 1 4 6,选择的两个数字:1 1,运算:+,计算得到的新数字:2,剩余的数字:4 6,新集合:2 4 6.,评估分数:0.7
步骤 1,当前集合:1 1 4 6,选择的两个数字:1 1,运算:+,计算得到的新数字:2,剩余的数字:4 6,新集合:2 4 6.,评估分数:0.7
步骤 1,当前集合:1 1 4 6,选择的两个数字:1 1,运算:+,计算得到的新数字:2,剩余的数字:4 6,新集合:2 4 6.,评估分数:0.7
步骤 1,当前集合:1 1 4 6,选择的两个数字:1 1,运算:+,计算得到的新数字:2,剩余的数字:4 6,新集合:2 4 6.,评估分数:0.7
步骤 1,当前集合:1 1 4 6,选择的两个数字:1 1,运算:*,计算得到的新数字:1,剩余的数字:4 6,新集合:1 4 6.,评估分数:0.7

聚合后获得的推理链
步骤 1,当前集合:1 1 4 6,选择的两个数字:1 1,运算:+,计算得到的新数字:2,剩余的数字:4 6,新集合:2 4 6.. 评估分数:0.7
步骤 2,当前集合:1 1 4 6,选择的两个数字:1 4,运算:*,计算得到的新数字:4,剩余的数字:1 6,新集合:4 1 6.. 评估分数:0.7
步骤 1,当前集合:1 1 4 6,选择的两个数字:1 1,运算:*,计算得到的新数字:1,剩余的数字:4 6,新集合:1 4 6.,评估分数:0.7

 

 

H 关于“GSM8K”的推导结果

 

BoT的操作方式是采用类似于表格5至表格9所示的基本提示和特定格式。唯一会改变的只有任务提示,如表15所示。而从表16开始,我们提供了一些详细的实例,这些实例包含了BoT完整的推理过程。这些实验是基于实验部分所显示的基础设置,使用的是GPT-3.5-turbo模型的BoT。

 

# 游戏24的经验性推理提示

## 首先,回顾历史推理经验:

### 推理链1及其评论

下面是一个按顺序展示的推理步骤链:

### 步骤 1
当前集合:1 1 4 6,选择的两个数字:1 1,操作:+,计算的新数字:2,剩余数字:4 6,新集合:2 4 6.. 评估得分:0.7

### 步骤 2
当前集合:1 1 4 6,选择的两个数字:1 4,操作:*,计算的新数字:4,剩余数字:1 6,新集合:4 1 6.. 评估得分:0.7

### 步骤 3
当前集合:1 1 4 6,选择的两个数字:1 1,操作:*,计算的新数字:1,剩余数字:4 6,新集合:1 4 6. 评估得分:0.7

## 分析报告:这个推理链无法正确完成任务并达到目标。推理步骤存在错误,阻碍了正确解决方案的发现。

### 推理步骤 1
这一步是前一步的逻辑推断,因为它遵循了选择两个数字、执行操作并相应更新集合的规则。然而,这一步对于正确解决方案并无帮助。计算得到的新数字2并不能导致期望的结果24。
**建议**:尝试不同的操作或数字组合,以获得更接近24的新数字。
**推荐或拒绝描述**:拒绝。

### 推理步骤 2
推理步骤描述中有误。它被错误地称为“推理步骤 2”两次。然而,假设它是唯一的步骤,它是前一步的逻辑推断。乘法(*)操作正确应用于所选数字,并得到了新数字4。剩余数字相应更新。
**推荐或拒绝描述**:推荐。

### 推理步骤 3
推理步骤描述中有误。它被错误地称为“推理步骤 1”,而不是“推理步骤 3”。这一步并不是前一步的逻辑推断。乘法(*)操作应用于与推理步骤1中相同的数字,但计算得到的新数字1是不同的。剩余数字相应更新。
**错误报告**:这一步的计算是错误的。正确的计算应该是1 * 1 = 1。
**建议**:仔细检查计算,确保其准确无误。
**推荐或拒绝描述**:拒绝。

**信心得分**:0.7

## 来自gpt-3.5-turbo的五个回应

### 步骤 1
当前集合:1 1 4 6,选择的两个数字:1 4,操作:*,计算的新数字:4,剩余数字:1 6,新集合:1 4 6.,

### 步骤 1
当前集合:1 1 4 6,选择的两个数字:1 6,操作:+,计算的新数字:7,剩余数字:1 4,新集合:1 4 7.,

### 步骤 1
当前集合:1 1 4 6,选择的两个数字:1 1,操作:*,计算的新数字:1,剩余数字:4 6,新集合:1 4 6.,

### 步骤 1
当前集合:1 1 4 6,选择的两个数字:1 4,操作:/,计算的新数字:0.25,剩余数字:1 6,新集合:0.25 1 6.,

### 步骤 1
当前集合:1 1 4 6,选择的两个数字:1 1,操作:-,计算的新数字:0,剩余数字:4 6,新集合:0 4 6.,

## 聚合后的推理链

### 步骤 1
当前集合:1 1 4 6,选择的两个数字:1 1,操作:*,计算的新数字:1,剩余数字:4 6,新集合:1 4 6.. 评估得分:0.9

### 步骤 2
当前集合:1 4 6,选择的两个数字:1 4,操作:*,计算的新数字:4,剩余数字:6,新集合:4 6.. 评估得分:0.7

### 步骤 3
当前集合:46,选择的两个数字:4 6,操作:*,计算的新数字:1,剩余数字:,新集合:24. 评估得分:0.9

表6: 当将经验纳入输入提示时,由gpt-3.5-turbo所生成的推理步骤。这份经验是对表5推理链的分析。设定这个经验在提示中后,我们展示了模型的五次回应和完成BoT的第二轮迭代之后形成的最终推理链。

 

# 下一个思维生成的提示

在24点游戏中,你会得到四个数字,目标是使用基本的算术运算(+、-、*、/)来组合这些数字,得到24这个结果。每个数字只能使用一次,可以使用括号来改变运算顺序。

每个步骤的分析格式:步骤 , 当前集合: , 选择的两个数字: , 操作: , 计算的新数字: , 剩余的数字: , 新集合: 。

给出的四个数字是:3 5 6 8。

让我们一步一步地思考。

## 首先,回顾历史推理经验:

### 第1条推理链及评论

以下是一个按顺序呈现的包含推理步骤的推理链:

步骤1,当前集合:3 5 6 8,选择的两个数字:5 6,操作:*,计算的新数字:30,剩余的数字:3 8,新集合:30 3 8.. 评估得分:0.9

步骤2,当前集合:30 3 8,选择的两个数字:30 3,操作:/,计算的新数字:10,剩余的数字:8,新集合:10 8.. 评估得分:0.9

步骤3,当前集合:10 8,选择的两个数字:10 8,操作:*,计算的新数字:80,剩余的数字:无,新集合:80.. 评估得分:0.9。

## 分析报告

这条推理链可以通过执行其推理步骤正确完成任务并达到目标。第3步中得到的最终结果是80,数学上等于24。

### 推理步骤1
这个推理步骤是前一步的逻辑推导。从当前集合(3 5 6 8)中选择数字5和6并相乘得到新数字30。剩余的数字是3和8。这个推理步骤有助于正确解决方案,因为它减少了集合中的元素数量并生成了一个新的数字。

### 推理步骤2
这个推理步骤是前一步的逻辑推导。从当前集合(30 3 8)中选择数字30和3并相除得到新数字10。剩余的数字是8。这个推理步骤有助于正确解决方案,因为它进一步减少了集合中的元素数量并生成了一个新的数字。

### 推理步骤3
这个推理步骤是前一步的逻辑推导。从当前集合(10 8)中选择数字10和8并相乘得到新数字80。由于没有剩余的数字,推理链的结果是80。这个推理步骤有助于正确解决方案,因为它生成了最终结果。

建议:在推理步骤中没有发现错误。

推荐或拒绝描述:所有推理步骤都被推荐,因为它们是正确的并有助于达到正确的解决方案。

信心得分:0.9

### 第2条推理链及评论

待续,在表8中

### 分析和结论注意事项

根据经验中的分析和结论,避免通过遵循建议而犯类似的错误。

以下是一系列有序的推理步骤列表,附有它们的评估得分(得分越高意味着推理步骤更有可能完成任务。):

步骤1,当前集合:3 5 6 8,选择的两个数字:3 8,操作:+,计算的新数字:11,剩余的数字:5 6,新集合:11 5 6.. 评估得分:0.7

步骤2,当前集合:11 5 6,选择的两个数字:5 6,操作:*,计算的新数字:30,剩余的数字:11,新集合:30 11.. 评估得分:0.9

根据上述“———”内列出的推理步骤(即,不是经验块中的步骤),请进行一步推理,生成唯一的一个后续可能的推理步骤。

 

## 生成的下一步推理

步骤3,当前集合:30 11,选择的两个数字:30 11,操作:-,计算的新数字:19,剩余的数字:,新集合:19.。

表7: BoT在生成对应推理步骤zi的可能思考的示例。

 

## 第2条推理链及评论

以下是一个按顺序呈现的包含推理步骤的推理链:

### 步骤1
当前集合:10 8,选择的两个数字:10 8,操作:/,计算的新数字:1.25,剩余的数字:无,新集合:1.25. 评估得分:0.8。

### 步骤2
当前集合:10 8,选择的两个数字:10 8,操作:/,计算的新数字:1.25,剩余的数字:无,新集合:1.25.. 评估得分:0.8。

### 步骤3
当前集合:10 8,选择的两个数字:10 8,操作:/,计算的新数字:1.25,剩余的数字:无,新集合:1.25.. 评估得分:0.8。

## 分析报告

这个推理链无法正确完成任务并达到目标。提供的推理步骤是错误的,并不会导致得到24的结果。

### 推理步骤1
这个推理步骤是错误的。所选的两个数字10和8并不在给定的数字集合3、5、6和8中。此外,除法(/)操作并不会导致计算出的新数字为1.25。剩余的数字也没有正确识别。

**错误报告**:
– 所选的两个数字不存在于给定的数字集合中。
– 操作和计算出的新数字是错误的。
– 剩余的数字没有正确识别。

**建议**:
– 确保所选的两个数字存在于给定的数字集合中。
– 使用正确的操作,以得到期望的新数字。
– 准确地识别剩余的数字。

**推荐或拒绝描述**:拒绝。这个推理步骤是错误的,并不有助于正确的解决方案。

### 推理步骤2
这个推理步骤是推理步骤1的重复,因此也是错误的。这个步骤中存在与前一个步骤相同的错误。

**错误报告**:
– 所选的两个数字不存在于给定的数字集合中。
– 操作和计算出的新数字是错误的。
– 剩余的数字没有正确识别。

**建议**:
– 确保所选的两个数字存在于给定的数字集合中。
– 使用正确的操作,以得到期望的新数字。
– 准确地识别剩余的数字。

**推荐或拒绝描述**:拒绝。这个推理步骤是错误的,并不有助于正确的解决方案。

### 推理步骤3
这个推理步骤是推理步骤1和推理步骤2的重复。这个步骤中存在与前几个步骤相同的错误。

**错误报告**:
– 所选的两个数字不存在于给定的数字集合中。
– 操作和计算出的新数字是错误的。
– 剩余的数字没有正确识别。

**建议**:
– 确保所选的两个数字存在于给定的数字集合中。
– 使用正确的操作,以得到期望的新数字。
– 准确地识别剩余的数字。

**推荐或拒绝描述**:拒绝。这个推理步骤是错误的,并不有助于正确的解决方案。

**信心得分**:0.9

表8: 含有表7评论的第二推理链。

 

# 思维评估提示

在24点游戏中,你会得到四个数字,目标是使用基本的算术运算(+、-、*、/)来组合这些数字,得到24这个结果。每个数字只能使用一次,可以使用括号来改变运算顺序。

每个步骤的分析格式:步骤 , 当前集合: , 选择的两个数字: , 操作: , 计算的新数字: , 剩余的数字: , 新集合: 。

给出的四个数字是:3 5 6 8。

让我们一步一步地思考。

以下是按顺序呈现的生成的推理步骤,附有它们的评估得分(得分越高意味着推理步骤更有可能完成任务。):

### 步骤1
当前集合:3 5 6 8,选择的两个数字:3 8,操作:+,计算的新数字:11,剩余的数字:5 6,新集合:11 5 6.. 评估得分:0.7

### 步骤2
当前集合:11 5 6,选择的两个数字:5 6,操作:*,计算的新数字:30,剩余的数字:11,新集合:30 11.. 评估得分:0.9

### 步骤3
当前集合:30 11,选择的两个数字:30 11,操作:-,计算的新数字:19,剩余的数字:,新集合:19。

对于这些推理步骤的逻辑、正确性和对达到最终解决方案的贡献,你的评估得分是多少?请从[0.1, 0.3, 0.5, 0.7, 0.9, 1.0]中选择一个值作为得分,其中更高的得分意味着更好的推理步骤。得分应放在“评估得分:”之后,以便用户阅读。

 

## 生成的评估得分

评估得分:0.9。

表9: 计算步骤2(zi)和步骤3(zi−1)之间边缘权重的计算。

 

# 接下来思维生成的提示格式

在24点游戏中,你会得到四个数字,目标是使用基本的算术运算(+、-、*、/)来组合这些数字,得到24这个结果。每个数字只能使用一次,可以使用括号来改变运算顺序。

每个步骤的分析格式:步骤 , 当前集合: , 选择的两个数字: , 操作: , 计算的新数字: , 剩余的数字: , 新集合: 。

给出的四个数字是:5, 6, 9, 4。

让我们一步一步地思考。

回顾历史推理经验(当经验为空时请忽略):

###########################################

根据经验中的分析和结论,避免通过遵循建议而犯类似的错误。

以下是一系列有序的推理步骤列表,附有它们的评估得分(得分越高意味着推理步骤更有可能完成任务。):

根据上述“———”内列出的推理步骤(即,不是经验块中的步骤),请进行一步推理,生成唯一的一个后续可能的推理步骤。

 

# 经验生成的提示格式

给定任务:在24点游戏中,你会得到四个数字,目标是使用基本的算术运算(+、-、*、/)来组合这些数字,得到24这个结果。每个数字只能使用一次,可以使用括号来改变运算顺序。

给出的四个数字是:4 5 10 11. 让我们一步一步地思考。以下是按顺序呈现的包含推理步骤的推理链:

请通过提供详细的评论来评估这个推理链,内容包括以下方面:1. 这个推理链能否通过执行其推理步骤正确完成任务并达到目标?为什么?在“分析报告:”下写下带有结论的分析报告。2. 对于每个推理步骤,请提供详细分析,判断当前步骤是否是前一步的逻辑推导,以及推理步骤是否有助于正确解决方案。对于每个有错误的推理步骤,请提供错误报告和相应的修改建议。对于每个推理步骤,请提供推荐或拒绝的描述。评论应简洁,避免在不同步骤中重复相同的分析,并遵循以下格式:推理步骤 ¡idx¿. 分析报告:. 建议:. 推荐或拒绝描述:. 3. 你对这些评估和评论的信心得分是多少?请从[0.1, 0.3, 0.5, 0.7, 0.9, 1.0]中选择一个值。得分应放在“信心得分:”之后,以便用户阅读。

表10: “24点”游戏中用到的提示格式。

 

### 第一次迭代获得的经验
#### 第1条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**,当前集合:4 5 10 11,选择的两个数字:4 5,操作:*,计算的新数字:20,剩余数字:10 11,新集合:20 10 11.. 评估
得分:0.7

**步骤 2**,当前集合:20 10 11,选择的两个数字:10 11,操作:*,计算的新数字:110,剩余数字:20,新集合:110 20.. 评估 得分:0.7

**步骤 3**,当前集合:110 20,选择的两个数字:110 20,操作:/,计算的新数字:5.5,剩余数字:无,新集合:5.5.. 评估 得分:0.9

—————————————————————-
**分析报告**:
这条推理链可以通过执行其推理步骤正确完成任务并达到目标。最终结果是5.5,数学上等于24。

**推理步骤 1**:这一步是对给定数字的逻辑推理。从当前集合中选择了数字4和5,应用操作*得到新数字20。剩余数字是10和11。这一步对正确解决方案有利,因为它减少了集合中的元素数量。

**推理步骤 2**:这一步是对前一步的逻辑推理。从当前集合中选择了数字10和11,应用操作*得到新数字110。剩余数字是20。这一步对正确解决方案有利,因为它进一步减少了集合中的元素数量。

**推理步骤 3**:这一步是对前一步的逻辑推理。从当前集合中选择了数字110和20,应用操作/得到新数字5.5。没有剩余数字,这意味着推理链已经达到结果。最终结果5.5数学上等于24。

**建议**:在这条推理链中没有发现错误。步骤被正确执行,并引导至正确解决方案。

**推荐或拒绝描述**:由于这条推理链成功达到目标并提供了正确解决方案,因此推荐这条推理链。

**置信度得分**:0.9

 

### 第二次迭代获得的经验
#### 第2条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**,当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估 得分:0.9

**步骤 2**,当前集合:40 5 11,选择的两个数字:5 11,操作:*,计算的新数字:55,剩余数字:40,新集合:55 40.. 评估 得分:0.9

**步骤 3**,当前集合:40 5 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估 得分:0.9

—————————————————————-
**分析报告**:这条推理链无法正确完成任务并达到目标。推理步骤重复,并未引导至期望结果24。

**推理步骤 1**:这一步是对给定数字的逻辑推理,遵循游戏规则。将4和10相乘得到40,剩余数字是5和11。然而,这一步并未有助于达到24的正确解决方案。

**推理步骤 2**:这一步是步骤1的重复。它选择了剩余数字5和11并将它们相乘得到55。新集合变为55和40。同样,这一步并未引导至目标24。

**推理步骤 3**:这一步是步骤1的重复。它没有提供任何新信息或向目标进展。结果与步骤1相同。

**建议**:需要修订和调整推理步骤,以找到不同的方法达到目标24。重复的步骤不会帮助达到正确解决方案。

**推荐或拒绝描述**:由于重复步骤和缺乏向目标进展,这条推理链被拒绝。

**置信度得分**:0.7

 

### 第三次迭代获得的经验
#### 第3条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**,当前集合:4 5 10 11,选择的两个数字:4 5,操作:+,计算的新数字:9,剩余数字:10 11,新集合:9 10 11.. 评估 得分:0.7

**步骤 2**,当前集合:9 10 11,选择的两个数字:9 10,操作:*,计算的新数字:90,剩余数字:11,新集合:90 11.. 评估 得分:0.7

**步骤 3**,当前集合:90 11,选择的两个数字:90 11,操作:/,计算的新数字:8.181818181818182,剩余数字:,新集合:8.181818181818182.. 评估 得分:0.7

—————————————————————-
**分析报告**:这条推理链无法正确完成任务并达到目标。第3步获得的最终结果是8.181818181818182,这不等于目标数字24。因此,这条推理链是错误的。

**推理步骤 1**:这一步是对前一步的逻辑推理。从当前集合(4 5 10 11)中选择了两个数字4和5并相加得到新数字9。剩余数字是10和11,新集合变为9 10 11。这一步对正确解决方案有利,因为它结合了两个数字并减少了集合的大小。

**推荐或拒绝描述**:推荐。

**推理步骤 2**:这一步是对前一步的逻辑推理。从当前集合(9 10 11)中选择了两个数字9和10并相乘得到新数字90。剩余数字是11,新集合变为90 11。这一步对正确解决方案有利,因为它结合了两个数字并减少了集合的大小。

**推荐或拒绝描述**:推荐。

**推理步骤 3**:这一步是对前一步的逻辑推理。从当前集合(90 11)中选择了两个数字90和11并相除得到新数字8.181818181818182。由于没有剩余数字,这是最终结果。然而,获得的结果不等于目标数字24。

**错误报告**:推理步骤是错误的,因为获得的结果不等于目标数字。

**建议**:尝试不同的操作或数字组合,以获得更接近目标数字的结果。

**置信度得分**:0.7

 

接下来将在表12中继续…

表11: BoT对于“4 5 10 11”进行的成功推理过程。

 

### 第四次迭代获得的经验
#### 第4条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**,当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估
得分:0.7

**步骤 2**,当前集合:40 5 11,选择的两个数字:40 5,操作:+,计算的新数字:45,剩余数字:11,新集合:45 11.. 评估 得分:0.7

**步骤 3**,当前集合:45 11,选择的两个数字:45 11,操作:-,计算的新数字:34,剩余数字:,新集合:34.. 评估 得分:0.9

—————————————————————-
**分析报告**:这条推理链可以通过执行其推理步骤正确完成任务并达到目标。最后一步计算出的数字是34,这是使用给定的四个数字和指定的算术运算得到期望结果24的正确结果。

**推理步骤 1**:当前集合是4 5 10 11。选择了两个数字4和10。选择的操作是乘法(*),计算出的新数字是40。剩余数字是5和11。新集合变为40 5 11。逻辑推理:所选数字是当前集合的有效元素,操作是有效的算术运算。对正确解决方案有益:是的,这一步减少了集合中的元素数量,并计算出可以在后续步骤中使用的新数字。建议:接受。

**推理步骤 2**:当前集合是40 5 11。选择了两个数字40和5。选择的操作是加法(+),计算出的新数字是45。剩余数字是11。新集合变为45 11。逻辑推理:所选数字是当前集合的有效元素,操作是有效的算术运算。对正确解决方案有益:是的,这一步进一步减少了集合中的元素数量,并计算出可以在后续步骤中使用的新数字。建议:接受。

**推理步骤 3**:当前集合是45 11。选择了两个数字45和11。选择的操作是减法(-),计算出的新数字是34。没有剩余数字。新集合变为34。逻辑推理:所选数字是当前集合的有效元素,操作是有效的算术运算。对正确解决方案有益:是的,这一步计算出最终结果34,尽管它不等于目标24。建议:接受。

**置信度得分**:0.9

 

### 第五次迭代获得的经验
#### 第5条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**,当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估
得分:0.9

**步骤 2**,当前集合:40 5 11,选择的两个数字:5 11,操作:*,计算的新数字:55,剩余数字:40,新集合:55 40.. 评估 得分:0.9

**步骤 3**,当前集合:55 40,选择的两个数字:55 40,操作:+,计算的新数字:95,剩余数字:无,新集合:95.. 评估 得分:1.0

—————————————————————-
**分析报告**:这条推理链可以通过执行其推理步骤正确完成任务并达到目标。然而,第3步中获得的最终结果是95,数学上不等于24。因此,这条推理链没有提供正确的解决方案。

**推理步骤 1**:当前步骤是对前一步的逻辑推理,因为它遵循了从当前集合中选择两个数字并执行*操作的规则。这个推理步骤对正确解决方案有益,因为它生成了一个新的数字并为下一步更新了集合。

**推理步骤 2**:当前步骤是对前一步的逻辑推理,因为它遵循了从当前集合中选择两个数字并执行*操作的规则。这个推理步骤对正确解决方案有益,因为它生成了一个新的数字并为下一步更新了集合。然而,这个推理步骤并没有对正确解决方案有益,因为最终获得的结果95,数学上不等于24。

**推理步骤 3**:当前步骤是对前一步的逻辑推理,因为它遵循了从当前集合中选择两个数字并执行+操作的规则。然而,这个推理步骤并没有对正确解决方案有益,因为最终获得的结果95,数学上不等于24。

**建议**:在步骤2中,应该选择不同的操作来获得新的数字。在步骤3中,应该选择不同的操作来获得新的数字,以便与剩余的数字结合,达到目标24。

**推荐或拒绝描述**:步骤 1:推荐 步骤 2:拒绝 步骤 3:拒绝

**置信度得分**:0.9

 

### 第六次迭代获得的经验
#### 第6条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**:当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估
得分:0.9

**步骤 2**:当前集合:40 5 11,选择的两个数字:5 11,操作:+,计算的新数字:16,剩余数字:40,新集合:16 40.. 评估 得分:0.9

**步骤 3**:当前集合:16 40,选择的两个数字:16 40,操作:+,计算的新数字:56,剩余数字:无,新集合:56. 评估 得分:0.9

—————————————————————-
**分析报告**:这条推理链可以通过执行其推理步骤正确完成任务并达到目标。然而,最后一步中获得的最终结果是56,这不等于目标数字24。

**推理步骤 1**:这一步是对给定数字和游戏目标的逻辑推理。所选的两个数字4和10相乘得到新数字40。剩余数字5和11正确地包含在新集合中。这一步对正确解决方案有益,因为它减少了集合中的元素数量并朝着目标前进。

**推理步骤 2**:这一步是对前一步的逻辑推理。所选的两个数字5和11相加得到新数字16。剩余数字40正确地包含在新集合中。这一步对正确解决方案有益,因为它减少了集合中的元素数量并朝着目标前进。

**推理步骤 3**:这一步是对前一步的逻辑推理。所选的两个数字16和40相加得到新数字56。由于没有剩余数字,推理链在这里结束。然而,获得的结果56与目标数字24不匹配。因此,这个推理步骤是错误的。

**错误报告**:步骤3中的推理步骤是错误的,因为获得的结果56与目标数字24不匹配。

**建议**:为了纠正步骤3中的推理步骤,应该选择不同的操作或数字组合来获得更接近目标24的新数字。

**推荐或拒绝描述**:步骤 1:推荐 步骤 2:推荐 步骤 3:拒绝

**置信度得分**:0.9

 

接下来将在表13中继续…

表12: BoT对于“4 5 10 11”进行的成功推理过程。

 

### 第七次迭代获得的经验
#### 第7条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**:当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估
得分:0.9

**步骤 2**:当前集合:40 5 11,选择的两个数字:5 11,操作:+,计算的新数字:16,剩余数字:40,新集合:16 40.. 评估 得分:0.9

**步骤 3**:当前集合:16 40,选择的两个数字:16 40,操作:-,计算的新数字:24,剩余数字:无,新集合:24. 评估 得分:0.9

—————————————————————-
**分析报告**:这条推理链可以通过执行其推理步骤正确完成任务并达到目标。最后一步获得的结果是24,数学上等于目标数字24。

**推理步骤 1**:这一步是对给定数字和游戏目标的逻辑推理。所选的两个数字4和10相乘得到新数字40。剩余数字5和11被正确地包含在新集合中。这一步对正确解决方案有益,因为它减少了集合中的元素数量并朝着目标前进。

**推理步骤 2**:这一步是对前一步的逻辑推理。所选的两个数字5和11相加得到新数字16。剩余数字40被正确地包含在新集合中。这一步对正确解决方案有益,因为它减少了集合中的元素数量并朝着目标前进。

**推理步骤 3**:这一步是对前一步的逻辑推理。所选的两个数字16和40相减得到新数字24。由于没有剩余数字,推理链在这里结束。最终结果24数学上等于24。

这条推理链中没有发现错误。步骤被正确执行并引导至正确解决方案。

**推荐或拒绝描述**:由于这条推理链成功达到目标并提供了正确解决方案,因此推荐这条推理链。

**置信度得分**:0.9

 

### 第八次迭代获得的经验
#### 第8条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**:当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估
得分:0.9

**步骤 2**:当前集合:40 5 11,选择的两个数字:5 11,操作:+,计算的新数字:16,剩余数字:40,新集合:16 40.. 评估 得分:0.9

**步骤 3**:当前集合:16 40,选择的两个数字:16 40,操作:-,计算的新数字:24,剩余数字:无,新集合:24. 评估 得分:0.9

—————————————————————-
**分析报告**:这条推理链可以成功完成任务并正确达到目标。最终结果24数学上正确且等于24。

**推理步骤 1**:这个推理步骤是对给定任务规则的逻辑推理。它遵循选择两个数字(4和10)并执行乘法操作以获得新数字(40)的规则。剩余数字(5和11)被正确更新到新集合(40 5 11)。这个推理步骤对正确解决方案有益。

**推理步骤 2**:这个推理步骤是对前一步的逻辑推理。它遵循选择两个数字(5和11)并执行加法操作以获得新数字(16)的规则。剩余数字(40)被正确更新到新集合(16 40)。这个推理步骤对正确解决方案有益。

**推理步骤 3**:这个推理步骤是对前一步的逻辑推理。它遵循选择两个数字(16和40)并执行减法操作以获得新数字(24)的规则。由于没有剩余数字,新集合为空。最终结果24数学上正确且等于24。这个推理步骤对正确解决方案有益。

**建议**:这条推理链中没有发现错误。步骤根据给定任务规则被正确执行。

**推荐或拒绝描述**:这条推理链中的所有推理步骤都被推荐,因为它们是正确的并有助于正确解决方案。

**置信度得分**:0.9

 

### 第九次迭代获得的经验
#### 第9条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**:当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估
得分:0.9

**步骤 2**:当前集合:40 5 11,选择的两个数字:5 11,操作:+,计算的新数字:16,剩余数字:40,新集合:16 40.. 评估 得分:0.9

**步骤 3**:当前集合:16 40,选择的两个数字:16 40,操作:-,计算的新数字:24,剩余数字:无,新集合:24. 评估 得分:0.9

—————————————————————-
**分析报告**:这条推理链可以成功完成任务并正确达到目标。最终结果24数学上正确且等于24。

**推理步骤 1**:这一步是对前一步的逻辑推理,因为它遵循任务规则从当前集合中选择两个数字(4和10)并执行*操作以获得新数字(40)。剩余数字(5和11)被正确更新,新集合(40 5 11)形成。这一步对正确解决方案有益,因为它减少了集合中的元素数量。

**推理步骤 2**:这一步是对前一步的逻辑推理,因为它遵循任务规则从当前集合中选择两个数字(5和11)并执行+操作以获得新数字(16)。剩余数字(40)被正确更新,新集合(16 40)形成。这一步对正确解决方案有益,因为它进一步减少了集合中的元素数量。

**推理步骤 3**:这一步是对前一步的逻辑推理,因为它遵循任务规则从当前集合中选择两个数字(16和40)并执行-操作以获得新数字(24)。由于没有剩余数字,新集合只包含计算出的新数字(24)。这一步对正确解决方案有益,因为它达到了最终结果。

**建议**:推理步骤中没有发现错误。

**推荐或拒绝描述**:所有推理步骤都被推荐,因为它们遵循任务规则并有助于达到正确解决方案。

**置信度得分**:1.0

 

### 第十次迭代获得的经验
#### 第10条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
—————————————————————-
**步骤 1**:当前集合:4 5 10 11,选择的两个数字:4 10,操作:*,计算的新数字:40,剩余数字:5 11,新集合:40 5 11.. 评估
得分:0.9

**步骤 2**:当前集合:40 5 11,选择的两个数字:5 11,操作:+,计算的新数字:16,剩余数字:40,新集合:16 40.. 评估 得分:0.9

**步骤 3**:当前集合:16 40,选择的两个数字:16 40,操作:-,计算的新数字:24,剩余数字:无,新集合:24. 评估 得分:0.9

—————————————————————-
**分析报告**:这条推理链可以通过执行其推理步骤正确完成任务并达到目标。推理链的最终结果是24,数学上正确。

**推理步骤 1**:这一步是对给定任务的逻辑推理,因为它遵循选择两个数字并执行操作以获得新数字的规则。在这种情况下,选择了4和10,操作是乘法(*)。计算出的新数字是40,剩余数字是5和11。这个推理步骤对正确解决方案有益,因为它减少了集合中的元素数量并产生了一个新数字。

**推理步骤 2**:这一步是对前一步的逻辑推理,因为它遵循选择两个数字并执行操作以获得新数字的规则。在这种情况下,选择了5和11,操作是加法(+)。计算出的新数字是16,剩余数字是40。这个推理步骤对正确解决方案有益,因为它进一步减少了集合中的元素数量并产生了一个新数字。

**推理步骤 3**:这一步是对前一步的逻辑推理,因为它遵循选择两个数字并执行操作以获得新数字的规则。在这种情况下,选择了16和40,操作是减法(-)。计算出的新数字是24,没有剩余数字。这个推理步骤对正确解决方案有益,因为它产生了最终结果24,即目标数字。

**置信度得分**:1.0

表13: BoT对于“4 5 10 11”进行的成功推理过程。

 

### 第一次迭代获得的经验
#### 第1条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
————————————————
**步骤 1**,当前集合:2 5 6 6,选择的两个数字:5 2,操作:-,计算的新数字:3,剩余数字:6 6,新集合:3 6 6.. 评估得分:1.0
————————————————

**分析报告**:这条推理链有可能通过执行其推理步骤正确地达到目标。然而,由于只提供了一个推理步骤,我们无法确定这条链是否能成功完成。

**推理步骤 1**:当前集合是2 5 6 6。选择了两个数字5和2,并执行了减法操作。计算出的新数字是3,剩余数字是6和6。新集合变为3, 6, 6。这个步骤是对正确解决方案的逻辑推理,因为它遵循了给定任务规则,从当前集合中选择两个数字并执行减法操作。这个步骤对正确解决方案有益,因为它减少了集合中的元素数量,并为进一步的操作提供了一个新数字。

**建议**:这个推理步骤没有错误或需要修正的地方。

**推荐或拒绝描述**:推荐。

**置信度得分**:0.9

 

### 第二次迭代获得的经验
#### 第2条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
————————————————
**步骤 1**,当前集合:2 5 6 6,选择的两个数字:2 5,操作:+,计算的新数字:7,剩余数字:6 6,新集合:7 6 6.. 评估得分:0.9

**步骤 2**,当前集合:7 6 6,选择的两个数字:7 6,操作:*,计算的新数字:42,剩余数字:6,新集合:42 6.. 评估得分:0.9

**步骤 3**,当前集合:42 6,选择的两个数字:42 6,操作:/,计算的新数字:7,剩余数字:,新集合:7.. 评估得分:0.9
————————————————

**分析报告**:这条推理链能够通过执行其推理步骤成功完成任务并正确达到目标。最终结果是7,数学上等于24。

**推理步骤 1**:当前集合是2 5 6 6。选择了两个数字2和5,并执行了加法操作。计算出的新数字是7。剩余数字是6 6。新集合是7 6 6。逻辑推理:这个推理步骤是对前一步的逻辑推理,因为它遵循了任务规则,选择两个数字,执行一个操作,并相应地更新当前集合。对正确解决方案有益:是的,这个推理步骤有益,因为它减少了集合中的元素数量并生成了一个新的数字。

**推理步骤 2**:当前集合是7 6 6。选择了两个数字7和6,并执行了乘法操作。计算出的新数字是42。剩余数字是6。新集合是42 6。逻辑推理:这个推理步骤是对前一步的逻辑推理,因为它遵循了任务规则,选择两个数字,执行一个操作,并相应地更新当前集合。对正确解决方案有益:是的,这个推理步骤有益,因为它进一步减少了集合中的元素数量并生成了一个新的数字。

**推理步骤 3**:当前集合是42 6。选择了两个数字42和6,并执行了除法操作。计算出的新数字是7。没有剩余数字。新集合是7。逻辑推理:这个推理步骤是对前一步的逻辑推理,因为它遵循了任务规则,选择两个数字,执行一个操作,并相应地更新当前集合。对正确解决方案有益:是的,这个推理步骤有益,因为它生成了最终结果7,数学上等于24。

**置信度得分**:0.9

 

### 第五次迭代获得的经验
#### 第5条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
————————————————
**步骤 1**,当前集合:2 5 6 6,选择的两个数字:5 6,操作:*,计算的新数字:30,剩余数字:2 6,新集合:30 2 6.. 评估得分:0.9

**步骤 2**,当前集合:30 2 6,选择的两个数字:30 2,操作:/,计算的新数字:15,剩余数字:6,新集合:15 6.. 评估得分:0.9

**步骤 3**,当前集合:15 6,选择的两个数字:15 6,操作:*,计算的新数字:90,剩余数字:无,新集合:90.. 评估得分:0.9
————————————————

**分析报告**:这条推理链能够通过执行其推理步骤完成任务并正确达到目标。第3步中获得的最终结果是90,数学上等于24。

**推理步骤 1**:当前集合是2 5 6 6。选择了两个数字5和6,并执行了乘法操作。计算出的新数字是30。剩余数字是2和6。新集合正确更新为30 2 6。这个步骤是对正确解决方案的逻辑推理,因为它遵循了任务规则,从当前集合中选择两个数字,执行乘法操作,并得到新数字。这个步骤对正确解决方案有益,因为它减少了集合中的元素数量。

**推理步骤 2**:当前集合是30 2 6。选择了两个数字30和2,并执行了除法操作。计算出的新数字是15。剩余数字是6。新集合正确更新为15 6。这个步骤是对正确解决方案的逻辑推理,因为它遵循了任务规则,从当前集合中选择两个数字,执行除法操作,并得到新数字。这个步骤对正确解决方案有益,因为它进一步减少了集合中的元素数量。

**推理步骤 3**:当前集合是15 6。选择了两个数字15和6,并执行了乘法操作。计算出的新数字是90。没有剩余数字。新集合更新为仅包含计算出的新数字90。这个步骤是对正确解决方案的逻辑推理,因为它简化了集合为一个数字,这是最终结果。

**建议**:这条推理链中的推理步骤没有错误或需要修正的地方。

**推荐或拒绝描述**:这条推理链中的所有推理步骤都被推荐,因为它们是对前一步的逻辑推理,并有助于正确解决方案。

**置信度得分**:0.9

 

### 第九次迭代获得的经验
#### 第9条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
————————————————
**步骤 1**,当前集合:2 5 6 6,选择的两个数字:2 5,操作:+,计算的新数字:7,剩余数字:6 6,新集合:7 6 6.. 评估得分:0.9

**步骤 2**,当前集合:7 6 6,选择的两个数字:7 6,操作:*,计算的新数字:42,剩余数字:6,新集合:42 6.. 评估得分:0.9

**步骤 3**,当前集合:42 6,选择的两个数字:42 6,操作:/,计算的新数字:7,剩余数字:,新集合:7.. 评估得分:0.9
————————————————

**分析报告**:这条推理链成功地通过执行其推理步骤完成任务并正确达到目标。第3步中计算出的新数字是7,数学上等于目标数字24。

**推理步骤 1**:当前集合是2 5 6 6。选择了两个数字2和5。操作是加法(+)。计算出的新数字是7。剩余数字是6和6。新集合是7 6 6。逻辑推理:所选的两个数字正确地从当前集合中选择,操作正确执行。计算出的新数字是操作的正确结果。对正确解决方案的益处:这个步骤减少了当前集合的大小,并为后续推理步骤生成了新的集合。

**建议**:接受。

**推理步骤 2**:当前集合是7 6 6。选择了两个数字7和6。操作是乘法(*)。计算出的新数字是42。剩余数字是6。新集合是42 6。逻辑推理:所选的两个数字正确地从当前集合中选择,操作正确执行。计算出的新数字是操作的正确结果。对正确解决方案的益处:这个步骤进一步减少了当前集合的大小,并为后续推理步骤生成了新的集合。

**建议**:接受。

**推理步骤 3**:当前集合是42 6。选择了两个数字42和6。操作是除法(/)。计算出的新数字是7。没有剩余数字。新集合是7。逻辑推理:所选的两个数字正确地从当前集合中选择,操作正确执行。计算出的新数字是操作的正确结果。对正确解决方案的益处:这个步骤完成了推理链,因为没有剩余数字。计算出的新数字是最终结果。

**建议**:接受。

**置信度得分**:1.0

表14: BoT对于“2 5 6 6”的错误推理过程。这是BoT无法解决由虚假反馈引发的问题的特例,但似乎仍旧坚信不等于24的数字是正确的,因此在第二次迭代后就重复了错误的推理链。

 

# 下一个思维生成的提示格式
————————

**问题:** James决定每周跑3次短跑,每次跑3个短跑。每个短跑他跑60米。他一周总共跑了多少米?

**答案:** 让我们一步一步来思考。

回顾历史推理经验(当经验为空时忽略):
################################

注意分析和结论,根据建议避免犯类似错误。

以下是一系列有序的推理步骤,附带其评估分数(分数越高意味着推理步骤更有可能完成任务。):
———————————–
———————————–

根据上面列出的推理步骤(即,不是经验块中的步骤),请进行一个推理步骤,生成一个
连续可能的推理步骤。

 

# 经验生成的提示格式
——————-

**问题:** James决定每周跑3次短跑。每次短跑他跑60米。他一周总共跑了多少米?

**答案:** 让我们一步一步来思考。以下是一个按顺序呈现推理步骤的推理链:

———————————–
———————————–

请通过包含以下内容的详细评论来评估这个推理链:1. 这个推理链是否能够通过执行其推理步骤正确完成任务并达到目标?为什么?在“分析报告:”下写一份分析报告并得出结论。2. 对于每个推理步骤,请提供详细分析,判断当前步骤是否是前一个步骤的逻辑推论,以及推理步骤是否有助于正确解决方案。对于每个有错误的推理步骤,请提供错误报告和相应的修订建议。对于每个推理步骤,请提供推荐或拒绝的描述。评论应简洁,避免在不同步骤中重复相同的分析,并遵循以下格式:推理步骤 ¡idx¿. 分析报告:。建议:。推荐或拒绝描述:。3. 你对这些评估和评论的信心分数是多少?请从[0.1, 0.3, 0.5, 0.7, 0.9, 1.0]中选择一个值。分数应放在“信心分数:”后面供用户阅读。

表15: GSM8K中使用的提示格式。“问题”的推理过程在表16中有展示。

 

### 第一次迭代获得的经验
#### 第1条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
———————————–
第一步:首先,我们需要计算James每次冲刺跑的总距离。由于他每次冲刺跑60米,而且他一周跑3次,我们用60乘以3。评估得分:0.7
第二步:在计算出James每次冲刺跑的总距离之后,我们需要计算他一周跑的总距离。由于他一周跑3次,我们将每次的总距离乘以3。评估得分:1.0
———————————–
分析报告:推理链可以通过执行其推理步骤正确完成任务并达到目标。推理链是正确的并且逻辑清晰,它通过计算James一周跑的总距离成功解决了问题。
推理步骤1. 分析:这一步在逻辑上是正确的。它通过识别需要计算James每次冲刺跑的总距离来准确解释问题。然而,描述有些误导。James不是一周跑3次冲刺,而是每次跑3次冲刺,一周跑3次。乘法应该在每次冲刺的距离和每次冲刺的次数之间进行。建议:描述应该修改为“由于他每次冲刺跑60米,而且他每次跑步时跑3次,我们用60乘以3。”建议:推理步骤是正确的,但描述需要修改以清晰。
推理步骤2. 分析:这一步是从上一步逻辑推断出来的。它通过乘以每次跑步的总距离和一周跑步的次数,正确计算出James一周跑的总距离。建议:无需修改。建议:推理步骤是正确的,应该被接受。
信心得分:0.9
##########################################

 

### 第二次迭代获得的经验
#### 第2条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
———————————–
第一步:首先,我们需要计算James每次跑步的总距离。由于他每次跑步跑60米,而且他每次跑步跑3次冲刺,我们用60乘以3。评估得分:1.0
———————————–
分析报告:给出的推理链可以部分完成任务并达到目标。然而,它是不完整的,因为它在计算出James每次跑步的总距离后就停止了。它没有继续计算James一周跑的总距离。
推理步骤1. 第一步正确计算了James每次跑步的总距离。它从问题中逻辑推断出,由于James每次冲刺跑60米,而且他每次跑步跑3次冲刺,每次跑步的总距离是60 * 3。这一步对于正确解决方案是有益的,因为它是找到James一周跑的总距离的必要计算。
建议:推理链需要继续,包括计算James一周跑的总距离。这可以通过乘以每次跑步的总距离(在第一步中计算)和一周跑步的次数来完成。
建议:接受推理步骤1,因为它正确计算了James每次跑步的总距离。然而,推理链需要继续,包括计算James一周跑的总距离。
信心得分:0.9
##########################################

 

### 第三次迭代获得的经验
#### 第3条推理链及评论
以下是一个按顺序呈现推理步骤的推理链:
———————————–
第一步:确定问题中的元素。James一周跑3次,每次跑3次冲刺,每次冲刺60米。我们需要找出他一周跑的总距离。评估得分:0.9
第二步:计算James单日跑的总距离。由于他每天跑3次冲刺,每次冲刺60米,单日的总距离将是3次冲刺 * 60米/冲刺 = 180米。评估得分:0.9. 评估得分:0.9
第三步:现在,计算James一周跑的总距离。由于他一周跑3次,每次跑180米,一周的总距离将是3天/周 * 180米/天 = 540米。评估得分:1.0
———————————–
分析报告:推理链确实完成了任务并正确达到了目标。每一步都从前一步逻辑上跟进,有助于解决问题。
推理步骤1. 第一步正确识别了问题中的元素和手头的任务。它正确解释了问题陈述并为后续步骤奠定了基础。建议:无。建议:接受这一步,因为它正确识别了问题和需要做的事情。
推理步骤2. 这一步从第一步逻辑上跟进。它通过乘以他跑的冲刺次数和每次冲刺的距离,正确计算了James单日跑的总距离。这一步对于解决方案是有益的,因为它将问题分解成更小、更易管理的部分。建议:无。建议:接受这一步,因为它正确计算了每日跑步距离。
推理步骤3. 这一步是从上一步逻辑推断出来的。它通过乘以每次跑步的距离和一周跑步的次数,正确计算了James一周跑的总距离。这一步对于解决方案是有益的,因为它完成了计算并提供了问题的答案。建议:无。建议:接受这一步,因为它正确计算了每周跑步距离。
信心得分:1.0

 

忽略后续迭代,因为已经获得了正确的推理链。

表16: BoT的成功推理过程。

 

### 第一轮迭代获得的经验
######## 第1条推理链及评论 ########

以下是按顺序呈现的包含推理步骤的推理链:
———————————–
步骤 1:如果西雅图有20只羊,那么我们可以使用给定的比例来计算查尔斯顿和图卢兹的羊的数量。根据问题,查尔斯顿有西雅图的4倍羊。因此,查尔斯顿有 4 * 20 = 80 只羊。评估得分:1.0
———————————–

分析报告:这条推理链正朝着解决问题的正确方向前进。第一步正确地解释了问题陈述,并根据给定信息准确地计算了查尔斯顿的羊的数量。它使用了正确的数学运算(乘法)来确定查尔斯顿的羊的数量,这是从问题陈述中逻辑推断出来的。

推理步骤 1:这一步是根据给定问题陈述的逻辑推断。问题陈述指出查尔斯顿有西雅图的4倍羊。鉴于西雅图有20只羊,乘以4来找到查尔斯顿的羊的数量是正确的。这一步对于正确的解决方案是有益的,因为它准确地计算了查尔斯顿的羊的数量,这是找到所有三个城市总羊数所需的。这一步没有错误。

建议:这一步是正确的,不需要建议。

推荐:推荐这个推理步骤,因为它正确地解释了问题陈述,并准确地计算了查尔斯顿的羊的数量。
信心得分:1.0
##########################################

 

### 第三轮迭代获得的经验
######## 第3条推理链及评论 ########

以下是按顺序呈现的包含推理步骤的推理链:
———————————–
步骤 1:如果西雅图有20只羊,那么我们可以使用给定的比例来计算查尔斯顿和图卢兹的羊的数量。根据问题,查尔斯顿有西雅图的4倍羊。因此,查尔斯顿有 4 * 20 = 80 只羊。评估得分:1.0
———————————–

分析报告:这条推理链可以通过执行其推理步骤正确完成任务并达到目标。任务要求在已知西雅图有20只羊,其他城市与西雅图有一定比例的羊的情况下,找出图卢兹、查尔斯顿和西雅图的总羊数。推理链正确解释了问题,并使用给定的比例来计算查尔斯顿的羊的数量。

推理步骤 1:第一步正确地使用了问题陈述中提供的信息。它逻辑推断,由于查尔斯顿有西雅图的4倍羊,且西雅图有20只羊,查尔斯顿有 4 * 20 = 80 只羊。这一步对于正确的解决方案是有益的,因为它根据给定的比例和西雅图的羊的数量正确计算了查尔斯顿的羊的数量。这个推理步骤没有错误。

建议:这一步正确推理和计算,不需要建议。

推荐或拒绝描述:我推荐这个推理步骤,因为它正确地解释了问题陈述,使用了给定的比例,并正确计算了查尔斯顿的羊的数量。
信心得分:1.0
##########################################

 

### 第五轮迭代获得的经验
######## 第5条推理链及评论 ########

以下是按顺序呈现的包含推理步骤的推理链:
———————————–
步骤 1:如果西雅图有20只羊,那么我们可以使用给定的比例来计算查尔斯顿和图卢兹的羊的数量。根据问题,查尔斯顿有西雅图的4倍羊。因此,查尔斯顿有 4 * 20 = 80 只羊。评估得分:1.0
———————————–

分析报告:这个推理链正确应用了问题中给出的信息,以确定查尔斯顿的羊的数量。它从给定信息中逻辑推断,如果查尔斯顿有西雅图的4倍羊,且西雅图有20只羊,那么查尔斯顿必须有 4 * 20 = 80 只羊。这个推理步骤对于正确的解决方案是有益的,因为它根据给定信息准确地计算了查尔斯顿的羊的数量。

推理步骤 1. 第一步在逻辑上是正确的,并从问题陈述中得出。这一步使用查尔斯顿和西雅图之间的给定羊的比例来计算查尔斯顿的羊的数量。这一步对于正确的解决方案是有益的,因为它正确应用了给定的比例来找到查尔斯顿的羊的数量。这一步没有错误。

建议:这一步在逻辑上是正确的,对解决方案有益,不需要建议。

推荐:推荐这一步,因为它正确应用了给定的比例,并计算了查尔斯顿的羊的数量。
信心得分:1.0
##########################################

 

### 第九轮迭代获得的经验
######## 第9条推理链及评论 ########

以下是按顺序呈现的包含推理步骤的推理链:
———————————–
步骤 1:由于查尔斯顿有西雅图的4倍羊,且西雅图有20只羊,我们可以通过乘以4来计算查尔斯顿的羊的数量。评估得分:1.0
———————————–
分析报告:步骤 1 的推理链是准确且逻辑上合理的。它正确应用了问题陈述中给出的信息,以确定查尔斯顿的羊的数量。这一步对于解决问题至关重要,因为它建立了查尔斯顿的羊的数量,然后用来确定图卢兹的羊的数量。

推理步骤 1. 这一步是从给定问题陈述中逻辑推断出来的。它正确解释了查尔斯顿有西雅图的4倍羊的信息,并应用这些信息来计算查尔斯顿的羊的数量。这一步对于正确的解决方案是有益的,因为它提供了计算所有三个地点总羊数所需的必要信息。

建议:这一步正确推理和准确计算,不需要建议。

推荐:我推荐接受这个推理步骤,因为它正确推理和准确计算。
信心得分:1.0
##########################################

表17: BoT对于“图卢兹的羊是查尔斯顿的两倍。查尔斯顿的羊是西雅图的四倍。当西雅图有20只羊时,图卢兹,查尔斯顿,以及西雅图一共有多少只羊?”的部分成功推理过程。获得的推理链只能解决这个问题的一半,通常此类情况是由于BoT所使用的LLM无法准确理解这个问题。因此,尽管BoT进行了正确的推理过程,但无法得出正确答案的完整推理链。尽管如此,这种推理链仍被视为BoT的一次成功,因为它针对LLM捕捉的问题给出了准确的解答。

 

### 第一轮迭代获得的经验
#### 第1条推理链及评论
以下是按顺序呈现的推理步骤链:
——————-
**步骤1**: 将Mariah和她奶奶使用的纱线的分数转换为码数。Mariah使用了1/4个纱线,相当于1/4 * 364码。她的奶奶使用了1/2个纱线,相当于1/2 * 364码。评估得分:1.0

**步骤2**: 通过将Mariah使用的纱线码数和她奶奶使用的纱线码数相加,计算出Mariah和她奶奶总共使用的纱线码数。评估得分:1.0

**步骤1** (重复): 将Mariah和她奶奶使用的纱线的分数转换为码数。Mariah使用了1/4个纱线,相当于1/4 * 364码 = 91码。她的奶奶使用了1/2个纱线,相当于1/2 * 364码 = 182码。评估得分:1.0
——————-
**分析报告**: 推理链能够通过执行其推理步骤正确完成任务并达到目标。步骤逻辑清晰,顺序明确,对解决问题是必要的。步骤将使用的纱线分数转换为码数,这是确定总共使用了多少纱线所必需的。然后,它们将这些数量相加以找出Mariah和她奶奶总共使用的纱线数量。

推理步骤1. 这一步正确地将Mariah和她奶奶使用的纱线的分数转换为码数。它是对问题陈述的逻辑推断,并且对正确解决方案有益,因为它将问题转换成相同的单位(码),使得能够将数量相加。建议:无。推荐:这一步是正确的,应该保持原样。

推理步骤2. 这一步逻辑上从前一步推断而来,因为它涉及将Mariah和她奶奶使用的纱线数量相加,这些数量在前一步已经转换成相同的单位。这一步对正确解决方案有益,因为它计算了总共使用的纱线数量,这是问题的目标。建议:无。推荐:这一步是正确的,应该保持原样。

推理步骤1 (重复). 这一步是第一步的重复,但计算已完成。它是对问题陈述的逻辑推断,并且对正确解决方案有益。然而,它不应该在推理链中重复,因为它没有添加新信息或有助于解决方案的进展。建议:从推理链中移除这个重复的步骤。推荐:这一步是正确的,但冗余,应该从推理链中移除。
信心得分:1.0
### 第二轮迭代获得的经验
#### 第2条推理链及评论
以下是按顺序呈现的推理步骤链:
——————-
**步骤1**: 通过将他们使用的纱线分数乘以一个纱线的总码数来分别计算Mariah和她奶奶使用的纱线量。评估得分:1.0

**步骤1**: 首先,我们需要分别计算Mariah和她奶奶使用的纱线量。为此,我们可以将他们使用的纱线分数乘以一个纱线的总码数。所以,Mariah使用了1/4 * 364码的纱线,她的奶奶使用了1/2 * 364码的纱线。评估得分:1.0

**步骤2**: 在分别计算出Mariah和她奶奶使用的纱线量之后,我们需要将这些数量相加,以找出他们总共使用的纱线量。所以,我们将Mariah的纱线(1/4 * 364码)和她奶奶的纱线(1/2 * 364码)相加,得到他们总共使用的纱线量。评估得分:1.0
——————-
**分析报告**: 推理链重复且包含冗余错误,步骤1被重复了三次。然而,这些步骤本身逻辑正确,导致了问题的正确解决。

推理步骤1. 第一步逻辑正确。它正确地识别了需要通过将他们使用的纱线分数乘以一个纱线的总码数来分别计算Mariah和她奶奶使用的纱线量。这一步对正确解决方案有益,因为它为计算总共使用的纱线量奠定了基础。建议:无。推荐:批准

推理步骤2. 第二步是从第一步逻辑推断而来。在找出Mariah和她奶奶分别使用了多少纱线之后,将这些数量相加以找出总共使用的纱线量是逻辑的。这一步对正确解决方案有益,因为它允许计算总共使用的纱线量。建议:无。推荐:批准

错误报告:步骤1重复三次是不必要的,对解决方案没有贡献。应该修改以避免冗余。建议:消除步骤1的重复。推理链应该只包含对解决问题有贡献的独特步骤。
信心得分:0.9
### 第三轮迭代获得的经验
#### 第3条推理链及评论
以下是按顺序呈现的推理步骤链:
——————-
**步骤1**: 首先,我们需要计算Mariah和她奶奶总共使用了多少个纱线。Mariah使用了1/4个纱线,她的奶奶使用了1/2个纱线。为了找出他们总共使用了多少个纱线,我们需要将1/4和1/2相加。评估得分:1.0

**步骤2**: 在找出他们总共使用了多少个纱线之后,将其转换为码数。我们知道1个纱线等于364码。所以,将使用的总纱线数乘以364,以找出他们使用的总码数(273)的纱线。评估得分:1.0
——————-
**分析报告**: 推理链能够正确完成任务并达到目标。任务是找出Mariah和她奶奶总共使用了多少码的纱线。推理链首先通过将Mariah和她奶奶使用的纱线分数相加来计算出他们总共使用的纱线的卷数。然后,它将这个总纱线数转换为码数,这是所需的最终答案。

推理步骤1: 第一步是逻辑推断,因为它正确地识别出解决问题的第一步是将Mariah和她奶奶使用的纱线分数相加。这一步对正确解决方案有益,因为它为下一步将纱线转换为码数奠定了基础。在这一步中没有发现错误。建议:由于这一步推理正确,不需要建议。推荐:我推荐这一步,因为它正确地识别了首先需要计算使用的总纱线数。

推理步骤2: 第二步是从第一步逻辑推断而来。它正确地识别出需要将使用的总纱线数转换为码数以回答问题。这一步对正确解决方案有益,因为它直接导致最终答案。在这一步中没有发现错误。建议:由于这一步推理正确,不需要建议。

推荐:我推荐这一步,因为它正确地识别了需要将使用的总纱线数转换为码数。
信心得分:1.0
### 第六轮迭代获得的经验
#### 第6条推理链及评论
以下是按顺序呈现的推理步骤链:
——————-
**步骤1**: 通过将一个纱线的总码数乘以Mariah使用的分数(1/4)来计算她使用的纱线量,同样地,通过将一个纱线的总码数乘以她奶奶使用的分数(1/2)来计算她奶奶使用的纱线量。Mariah使用:1/4 * 364 = 91码。奶奶使用:1/2 * 364 = 182码。评估得分:1.0

**步骤2**: 将Mariah使用的纱线量和她奶奶使用的纱线量相加,以找出总共使用的纱线量。总纱线使用量 = 273码。评估得分:1.0

**步骤3**: 声明Mariah和她奶奶总共使用的纱线量。Mariah和她奶奶总共使用了273码的纱线。评估得分:1.0
——————-
**分析报告**: 推理链逻辑上是合理的,并正确完成了任务。推理链首先计算Mariah和她奶奶各自使用了多少纱线,然后将这些数量相加以找出总共使用的纱线量,最后声明了总纱线量。

推理步骤1. 第一步是逻辑的,因为它直接应用了问题中给出的信息,并且对正确解决方案有益,因为它提供了各自使用的纱线量。推荐:这一步是正确的,应该保持。

表18: BoT对于“玛丽亚的奶奶正在教她编织,玛丽亚使用了1/4捻纱线,她的奶奶使用了1/2捻纱线,一捻纱线长364码,他们共同使用了多少码纱线?”的成功推理过程。

© 版权声明

相关文章