引言
什么是大语言模型的累积推理?为什么我们需要LLM的累积推理?累积推理在LLM中是如何运作的?LLM能否很好地完成累积推理?在本博客中,我们将以通俗易懂的方式逐一讨论这些问题,并参考 Yifan Zhang、Jingqin Yang、Yang Yuan 和 Andrew Chi-Chih Yao 的论文《Cumulative Reasoning with Large Language Models》。
什么是累积推理?
累积推理框架的核心思想是将复杂的推理问题分解为更小的步骤,然后通过累积和验证每个中间步骤,迭代地构建最终解决方案。
借鉴人类认知过程,累积推理引入了专门的角色,如“提议者”用于提出潜在的推理步骤,“验证者”用于根据上下文验证提议的正确性,以及“报告者”用于将累积的点综合成最终解决方案。
累积推理能够动态存储和组合经过验证的中间命题,形成有向无环图(DAG)。

具体来说,在累积推理框架中:
- 提议者根据当前上下文提出潜在的推理步骤,这些步骤在DAG中表示为新节点。
- 验证者评估提议者的建议是否正确,并将有效的步骤整合到不断演变的解决方案上下文中,这对应于在DAG中添加新的有向边。
- 报告者根据当前状态判断累积的上下文是否已达到最终解决方案。如果是,则输出结果。
因此,整个推理过程可以表示为一个动态构建的DAG,其中节点是中间推理步骤,有向边捕捉了新的推理步骤如何从之前的步骤推导而来。DAG允许推理过程分支和重新汇聚,并能够重访和重用先前的推理结果,更好地模拟人类在解决复杂问题时灵活的多路径思维过程。
为什么我们需要LLM的累积推理?
尽管大语言模型(LLM)在各种应用中取得了最新进展,但它们解决复杂、多步骤推理问题的能力仍然有限。现有的方法,如思维链(CoT)和思维树(ToT)提示,虽然尝试引导LLM进行更结构化的逐步推理过程,但缺乏动态存储和利用推理过程中生成的中间结果的机制。这种无法有效构建和组合先前命题的限制,使得它们在处理需要多步骤细致推理的复杂多方面问题时表现不佳。
借鉴人类认知过程,累积推理引入了专门的角色,如“提议者”用于提出潜在的推理步骤,“验证者”用于根据上下文验证提议的正确性,以及“报告者”用于将累积的点综合成最终解决方案。这种分解为提议、验证和报告迭代循环的方式,使得LLM能够将复杂任务分解为可管理的组件。
至关重要的是,累积推理能够动态存储和组合经过验证的中间命题,形成有向无环图(DAG),而不仅仅是线性链或树状结构。这种利用更广泛已验证命题上下文的灵活性,反映了人类在处理复杂多步骤问题时采用的细致入微的非线性推理。因此,累积推理为大语言模型解锁了更强大和多样的推理能力。
累积推理在LLM中是什么样子的?
构建语言模型角色
根据累积推理框架,作者构建了三个语言模型角色:
- 提议者:根据当前上下文提出潜在的推理步骤
- 验证者:评估提议者的建议是否正确,并将有效步骤整合到上下文中
- 报告者:判断累积的上下文是否能够得出确定的解决方案
这三个角色可以使用同一个大语言模型,通过特定的提示来分配不同的角色。

设置基线
为了评估累积推理的有效性,作者设置了以下基线:
- 直接输入输出提示(Direct)
- 思维链提示(CoT)
- 自验证思维链提示(CoT-SC)
- 思维树提示(ToT)
遵循实验流程
作者测试了多种大语言模型,包括 GPT-3.5、GPT-4 和 LLaMA 模型。实验流程如下:
- 对于数据集中的每个问题,将问题输入给提议者。
- 提议者生成一系列推理建议作为中间步骤。
- 将中间步骤输入给验证者,验证者评估每个步骤。
- 有效的步骤被整合到上下文中,无效的步骤被丢弃。
- 重复上述过程,直到报告者确定可以给出最终解决方案。
- 在某些实验中,使用多数投票或其他策略来提高鲁棒性。
选择评估数据集
作者选择了多个涵盖不同类型复杂推理任务的数据集进行评估,包括:
- 逻辑推理任务:FOLIO wiki 数据集、AutoTNLI 数据集
- 24点游戏数学难题
- 数学问题求解:MATH 数据集
LLM能否很好地完成累积推理?
简单的答案是:能!实验结果表明,CR框架在所有评估任务中均显著优于基线方法。
总体性能
在 FOLIO wiki 数据集上,准确率从 85.02% 提升至 98.04%;在 AutoTNLI 数据集上,相比思维链提升了 9.3%;在 24 点游戏中,准确率达到 98%,比之前的最佳方法提升了 24%;在 MATH 数据集上,CR 获得了 4.2% 的绝对提升,并且在最具挑战性的 Level 5 问题上获得了 43% 的相对提升。值得注意的是,通过将 CR 与代码环境结合,作者在 MATH 数据集上实现了 72.2% 的准确率,相对优于之前最佳方法 38.8%。

优于思维链(CoT)和思维树(ToT)
累积推理(CR)通过一系列在不同任务上的实证结果展示了其对思维链(CoT)和思维树(ToT)的优越性。在逻辑推理任务(如 FOLIO wiki 和 AutoTNLI 数据集)上,CR 表现卓越,在整理的 FOLIO 数据集上达到 98.04% 的准确率,相比 CoT-SC 的 96.09% 有了显著提升。这一进步归功于 CR 动态存储和利用中间结果的能力,形成有向无环图(DAG),从而能够利用更广泛的已验证命题上下文。
在数学谜题 24 点游戏中,CR 以 98% 的准确率胜出,比 ToT 提升了 24%,并且只访问了四分之一的节点,突显了其效率和问题解决能力。
此外,在 MATH 数据集上,CR 不仅创下了新基准(比之前方法提升 4.2%),在最困难的问题上还实现了 43% 的相对提升。将 CR 与 Python 代码环境结合后,准确率高达 72.2%,比 PoT 和 PAL 等方法提升了 38.8%。这些结果共同说明了 CR 相比 CoT 和 ToT 具有更强的适应性、鲁棒性和增强的推理能力。

累积推理在LLM中的未来方向有哪些?
与符号系统集成
文章讨论了将 CR 与 Python 代码环境结合的潜力,以利用 LLM 的计算和逻辑推理能力。未来可以探索与符号系统、知识图谱或形式定理证明器的更深层次集成,以进一步提高推理的准确性和复杂性。
增强泛化能力
虽然 CR 在特定领域已取得成功,但将其泛化能力扩展到更广泛的任务和领域将至关重要。这可能涉及使 CR 适应跨不同学科的各种推理和问题求解。
提高鲁棒性和容错性
文章强调了 CR 的容错特性。未来的工作可以专注于使 CR 更加鲁棒,特别是在处理模糊或噪声数据时,以及提高从错误中间步骤中恢复的能力。
基准测试和标准化
为累积推理任务开发标准化的基准和评估指标,有助于系统性地评估进展并比较不同方法。
如何用大语言模型实现累积推理?
作者提供的大部分代码需要连接 OpenAI API 以使用 GPT 3.5 和 4 模型,这应该是你的第一步。
接下来,无论你是想解决数学问题、玩 24 点游戏,还是复现累积推理实验,只需运行此 Github 页面提供的特定 Python 文件:https://github.com/iiis-ai/cumulative-reasoning。
此外,如果你想像论文作者那样使用 LLaMA 模型或其他 LLM 来测试累积推理,可以使用 Novita AI LLM API 来访问多种 LLM。

结论
总之,这篇博文全面介绍了 LLM 的累积推理,这是一种显著增强 LLM 复杂问题求解能力的新方法。通过将复杂问题分解为更小的步骤,并通过提议、验证和报告的过程迭代构建解决方案,累积推理模拟了人类的认知策略。
来自多个数据集的结果令人印象深刻,展示了准确率的显著提升,尤其是当累积推理与代码环境结合时。此外,结果证明了累积推理优于现有的思维链和思维树方法。
总体而言,LLM 累积推理的未来方向有望将 LLM 推至 AI 推理的新高度,带来更复杂、更接近人类的问题求解能力。
参考文献
Zhang, Y., Yang, J., Yuan, Y., & Yao, A. C.-C. (2024). Cumulative Reasoning with Large Language Models. IIIS, Tsinghua University. https://arxiv.org/pdf/2308.04371
Novita AI 是一个一站式平台,提供无限创造力,接入 100+ 个 API。从图像生成、语言处理到音频增强和视频处理,按用量付费,让您在构建自己的产品时免去 GPU 维护的烦恼。免费试用。
