清华交叉信息研究院提出累积推理框架,在逻辑和算24点问题上取得98%准确率,对数学难题准确率从22%提升到32%

IIIS Proposes Cumulative Reasoning Framework, Achieving 98% Accuracy for Logic and the Game of 24, and Improving Level 5 Math Problem Accuracy from 22% to 32%.

本论文来自清华大学交叉信息研究院,论文的作者为清华大学博士生张伊凡,杨景钦,指导教师为袁洋老师,姚期智先生。

https://github.com/iiis-ai/cumulative-reasoning 

https://arxiv.org/abs/2308.04371 

简介:

尽管自然语言模型具有强大和多样的能力,但它们在处理高度复杂问题时经常表现不佳。这主要是因为解决复杂问题需要深思熟虑的推理,而这一点在模型的训练过程中往往只是最低限度地得到引导。在本论文中,我们提出了一种名为“累积推理”(Cumulative Reasoning,CR)的新方法,该方法以累积和迭代的方式使用语言模型,以模仿人类的思维过程。通过将任务分解为更小的组成部分,CR系统化了问题解决过程,使其更为可控和有效。在逻辑推理任务方面,CR的表现一致地超过了现有方法,最高提升了9.3%,并在FOLIO wiki curated数据集上达到了98.04%的准确率。在24点游戏任务下,CR实现了98%的准确率,比之前的最先进方法提高了24%。最后,在MATH数据集上,CR方法建立了新的SOTA,整体准确率为58.0%,超过了之前最好的方法4.2%,并在最困难的5级问题上实现了43%的相对提升(从22.4%提高到32.1%)。

尽管大型语言模型(LLMs)在多种应用中取得了显著进展,但在面对高度复杂的任务时,它们仍然难以提供稳定和准确的答案。例如,已观察到语言模型在直接生成高中数学问题的正确答案方面存在困难。 这种不足可能是预料之中的,考虑到目前LLMs采用的训练方法并没有专门针对复杂的推理任务进行特化。具体来说,它们被训练为基于给定的上下文依次预测下一个标记,而没有系统化地进行深思熟虑。正如Kahneman(2011)所阐述的,我们的认知处理过程包括两个不同的系统:System 1是快速、本能和情感化的;System 2是缓慢、深思熟虑和逻辑的。目前,LLMs与System 1更为接近,从而可能解释了它们在应对复杂任务方面的局限性。 

为了应对这些局限性,许多学者已经提出了几种模仿人类认知过程的方法。这些方法包括促使模型提供逐步解决方案的思维链(CoT)和将解决过程模拟为思维搜索树的思维树(ToT)。此外,还有学者创建了专门的数据集,以在模型训练中提供逐步监督信号。然而,这些方法没有用于存储思维过程中间结果的位置,并且假设所有的思维形成一个链或树,这并不能完全捕捉到人类的复杂思维过程。

在本文中,我们提出了一种名为累积推理(CR)的新方法,该方法提供了对思维过程的更一般性的建模。CR采用三种不同的LLMs:提议者 (Proposer)、验证者 (Verifier) 和报告者 (Reporter)。提议者不断提出潜在的新命题,这些命题由一个或多个验证者进行验证,而报告者决定是否已经完成推理,从而停止累积推理并报告最终解决方案。 CR通过将每个任务分解为原子性的和可控的步骤,显著提高了语言模型在应对复杂任务方面的能力。尽管受到计算复杂度的限制(某些问题可能具有不可规约的指数级复杂度),但CR确保每个单独的步骤都可以有效地学习和解决。这种策略性的分解有效地将一个原本难以解决的复杂问题转化为一系列可解决的任务,从而为原始问题提供了一个稳健可靠的解决方案。

我们的实证分析(实验结果)包括三个组成部分。在第一个实验中,我们解决了像FOLIO wiki(与一阶逻辑有关)和AutoTNLI(与高阶逻辑有关)这样的逻辑推理任务。在这些数据集上,CR始终优于当前的方法,显示出高达9.3% 的提升。特别是在在校对后的FOLIO wiki curated数据集上,CR达到了98.04% 的准确率。在第二个围绕24点游戏的实验中,CR达到了98% 的准确率。值得注意的是,与先前的最先进的方法ToT相比,这一数字有着高达24%的显著提升。在最后一个实验中,我们在著名的MATH数据集上建立了新的SOTA,总体准确率达到58.0%,超过了Complex-CoT with PHP方法4.2%。值得注意的是,我们的方法在最困难的5级问题上实现了43%的相对改进(从22.4%提高到32.1%)。

Method: Cumulative Reasoning 累积推理

我们的CR算法使用三种不同类型的大型语言模型(LLMs)作为组件:

  1. 提议者(Proposer)。该模型基于当前上下文提出下一步。
  2. 验证者(Verifier(s))。该模型或一组模型仔细检查提议者提出的步骤的准确性。如果该步骤被认为是正确的,它将被添加到上下文 (thinking context) 中。
  3. 报告者(Reporter)。该模型决定推理过程何时应该结束,通过判断当前条件是否可以直接导致最终解决方案。

请参见图2以获取说明。在每次迭代中,提议者通过基于现有前提 (premises) 和命题(propositions) 提出一个或几个提案来启动该过程。随后,验证者评估该提案,确定该提案是否可以作为新的命题保留。最后,报告者决定是否是终止思考过程并提供最终答案的最佳时机。 理想情况下,提议者应使用预先训练用于相应推导任务的语言模型来实现。验证者应能够将推导翻译成适当的形式系统,并使用诸如命题逻辑求解器或正式数学证明器等符号推理模块进行验证。然而,也可以使用像 GPT-4 或 LLaMA 这样的通用基础模型,并为这些角色使用不同的提示(prompt)的方式来实现。

Compare with CoT and ToT 与COT ToT的比较

CR 明确地推广了 CoT (Wei et al., 2022)(如果没有验证者,提议者将一直提出下一步直到结束,CR就涵盖了标准的思维链CoT), 然而,在 CR 中,整体的思考过程不一定是一个链或一棵树,它可以是一个有向无环图(DAG)如图1。因此,CR 可用于解决更复杂的问题。

粗略地看,CR 类似于 ToT,后者通过一个思维搜索树来解决问题 (Yao et al., 2023; Long, 2023)。然而,我们的方法更为一般,因为它将所有历史正确的推理结果存储在内存中,这可以是一个有向无环图(DAG)。相比之下,ToT 不会将其他分支的信息存储用于当前搜索分支的探索。

Experiments 实验结果

我们的算法和ToT算法看起来类似,但有两点根本不同:

  1. 我们的算法每次只基于当前的状态尝试一小步,而ToT会产生十多个步骤,然后选择其中最好的个推进。因此,我们的算法可以进行更细粒度的搜索。
  2. 我们的算法把所有的中间状态都保留下来,会动态决定搜索的宽度和深度;而ToT只记录了当前已搜索出的最优解,并没有完整记录之前的探索过程。

 Conclusion 结论与展望

在本文中,我们提出了一种使用语言模型以迭代和累积方式进行系统化推理的累积推理框架 (CR)。我们算法背后的主要思想是将复杂任务分解为更小的步骤,并为所有中间结果维护一个思考上下文 (thinking context)。实验结果表明,我们的方法在逻辑推理任务、24点游戏和数学推理(MATH)方面实现了最先进的性能。考虑到CR其固有的通用性,我们的框架具有解决更广泛数学挑战的潜力。

内容中包含的图片若涉及版权问题,请及时与我们联系删除