使用MCTS显著提升LLM在复杂任务的推理能力 精华

发布于 2024-11-20 14:41
浏览
0收藏

一、概述

Title:Reasoning with Language Model is Planning with World Model

URL:​ https://arxiv.org/abs/2305.14992​

Code:​ https://github.com/maitrix-org/llm-reasoners​

Demo:​ https://github.com/maitrix-org/llm-reasoners/blob/main/demo.ipynb​

1 Motivation

• 尽管COT表现不错,但是当前LLM在生成plan、复杂数学推理、逻辑推理时仍然表现不够好。

LLMs缺乏内部“世界模型”来预测世界状态(例如环境状态、中间变量值)并模拟行动的长期结果

• LLM缺乏类似于人脑的深思熟虑的规划能力。具体来说,LLMs 缺乏以下能力:

探索更多推理路径:人类在解决问题时,会考虑多种可能的方案,并评估每种方案的优缺点。而 LLMs 通常只会按照一种固定的推理路径进行,缺乏灵活性和多样性。

预测未来状态和奖励:人类在规划时,会预测每个行动可能导致的结果,并根据结果调整自己的计划。而 LLMs 无法预测未来状态,因此无法进行有效的规划。

迭代改进现有推理步骤:人类在规划过程中,会根据反馈不断调整自己的计划,使其更加完善。而 LLMs 通常只会按照既定的计划进行,缺乏自我反思和改进的能力。

2 Methods

RAP框架通过以下几个关键步骤来克服这些限制:

  • 将LLM用作世界模型:提供未来state预测息,帮助后面做action的决策。
  • 采用基于蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)规划算法进行探索,高效找出reward最高的路径
  • 在推理过程中,action执行agent在世界模型agent的指导和reward奖励下逐步构建推理树,并有效地找到高回报的推理路径,同时在探索与利用之间保持适当的平衡

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

1)关键组成

本文文通过提出一个新的框架Reasoning via Planning (RAP)来解决大型语言模型(LLMs)在复杂推理任务中遇到的挑战, 关键组成部分解释如下:

  • 基于LLM构建世界模型:通过适当的prompt,基于LLM构建世界模型,预测在给定当前状态的情况下,应用某个动作后下一个状态的可能性。
  • 根据不同的任务设置不同的reward:定义一个奖励函数来评估每个推理步骤的可行性和可取性。奖励函数可以根据不同任务的需求进行定制,包括动作的似然性、状态的置信度、自我评估以及特定任务的启发式方法。
  • 引入Plan算法进行推理:MCTS通过迭代地构建推理树,有效地在探索(未访问的推理路径)和利用(已识别的最佳推理步骤)之间保持平衡。
  • 构建推理路径的空间:在推理过程中,LLM(作为agent)根据世界模型的预测和reward模型的奖励函数的指导,通过selection,expand,simulation,back-propagation逐步构建一个推理树。
  • 结果聚合(RAP-Aggregation):对于只需要最终答案的问题,RAP可以产生多个推理路径和答案,这些结果可以通过聚合方法结合起来,以进一步提高推理性能。

2)基于世界模型预测未来状态,提升LLM的planning能力能力

Language Model as World Model:RAP 框架将 LLM 重新利用为世界模型,使其能够模拟未来状态指导规划算法,从而实现更类似于人类深思熟虑的推理。即f(current state + action) -> next state of the reasoning。

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

2.1 如何将 LLM 作为世界模型:

  • 定义状态和动作:根据不同的推理任务,定义状态和动作的具体含义。例如,在积木世界中,状态是积木的配置,动作是移动积木;在数学问题中,状态是变量的值,动作是提出子问题。
  • 构建马尔可夫决策过程 (MDP):将推理过程视为一个 MDP,其中 LLM 作为智能体,根据当前状态生成动作空间,并使用 LLM 作为世界模型预测执行动作后的下一个状态。
  • 模拟未来状态:通过 LLM 作为世界模型预测未来状态,LLM 作为智能体可以在脑海中模拟执行不同动作后的结果,类似于人类的规划过程。

2.2 使用世界模型的优势:

• LLM 能够更好地理解推理过程中的状态变化,从而进行更准确、更连贯的推理。

• 有了世界模型,LLM 就可以使用各种规划算法来探索推理空间,例如蒙特卡洛树搜索 (MCTS),从而找到更优的推理路径。

2.3 CoT 和 RAP 的主要区别:

状态建模:CoT 中只有动作序列,没有对世界状态的建模。而 RAP 引入了世界模型,能够预测未来状态,使推理过程更加全面和可靠。

规划能力:CoT 缺乏规划能力,只能按照固定的推理路径进行。而 RAP 引入了规划算法 (如 MCTS),能够探索多种可能的推理路径,并选择最优的路径。

推理过程:CoT 的推理过程是自回归的,每一步推理都依赖于前一步的输出。而RAP 的推理过程是迭代的,LLM 可以根据反馈不断调整推理步骤

3 如何设计Reward Model?

3.1 奖励函数的核心目标:

评估每个推理步骤的可行性和可取性:判断每个步骤是否符合规则,以及是否有助于达到最终目标。

引导 LLM 沿着最优路径进行推理:通过奖励机制,鼓励 LLM 选择更有利于达成目标的推理步骤

3.2 有哪些常见的reward奖励函数方法:

类别

描述

原理

作用

应用场景

动作概率 (Action Likelihood)

采用当前action的概率作为reward,即采用log probability of the action作为reward。

评估 LLM 在当前状态下生成特定动作的概率。

反映 LLM 对特定动作的偏好和置信度。

适用于需要判断动作合理性的任务,例如积木世界中的移动积木

状态置信度 (State Confidence)

状态置信度通过采样 LLM 的预测结果并计算最常见结果的比例来评估 LLM 对预测状态的可靠性

评估 LLM 对预测状态 (例如答案) 的置信度。

反映 LLM 对预测结果的可靠性程度。

适用于需要评估预测结果质量的任务,例如数学问题中的答案

自我评估 (Self-evaluation)

criticize itself,例如question“Is this reasoning step correct ?” 或者,利用next-word yes的概率作为reward。

让 LLM 对自身推理步骤的正确性进行评估。

反映 LLM 对自身推理能力的自我认知。

适用于 LLM 可以判断推理步骤正确性的任务,例如数学问题中判断计算或逻辑错误

特定任务启发式 (Task-specific Heuristics)

方便引入其他插件,来启发式引导。

根据特定任务的特性设计启发式函数,评估推理步骤的质量。

利用领域知识,指导 LLM 进行更有效的推理。

适用于需要利用领域知识的任务,例如积木世界中计算预测状态与目标状态之间的距离

4 如何利用MCTS进行迭代

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

4.1 MCTS 的四个阶段:

阶段

描述

选择(Selection)

从根节点开始,递归选择最优的子节点,直到达到一个叶子结点。此过程基于一定的选择策略,例如UCB (Upper Confidence Bound)。

扩展(Expansion)

当达到叶节点时,根据问题的定义,扩展树以添加一个或多个子节点。这模拟了在现实中采取一个动作并观察新状态的过程。

模拟(Simulation)

从扩展的节点开始,执行模拟来估计这个节点的价值。模拟是通过一种模型或随机方法生成的,模拟直到达到某个终止条件。

回溯(Backpropagation)

根据模拟的结果,将回报值(reward)传播回来更新经过的所有节点的统计信息,如访问次数和累计奖励。

4.2 如何选择最终推理路径?

算法终止后,需要从构建的搜索树中选择一条推理轨迹进行评估。这里有几种不同的选择策略:

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

  • 基于 Q 值的选择:从根节点开始,迭代地选择具有最高Q 值(即状态-动作对的预期回报)的动作,直到达到一个终端节点(叶子节点)。这种方法依赖于算法在迭代过程中积累的值。
  • 基于奖励的选择:直接选择在迭代过程中产生最高总奖励的路径。这种方法考虑了整个路径的累积奖励,而不是单个步骤的 Q 值。
  • 最频繁访问的叶子节点:选择访问次数最多的叶子节点,以及从根节点到该叶子节点的路径。这种方法假设最频繁访问的路径可能是最优的。

实际观察:在实际应用中,作者观察到第二种策略(基于奖励的选择)通常会产生最好的结果。这可能是因为它考虑了整个路径的累积奖励,而不是仅仅依赖于单个步骤的 Q 值,从而能够更好地捕捉到长远的推理效果。

5 Conclusion

• RAP在生成计划、数学推理和逻辑推理任务上表现出色,超越了包括CoT和least-to-most prompting在内的多种强基线。

• RAP在使用LLaMA-33B模型时超过了使用GPT-4的CoT方法,在plan生成中提升了33%。

二、详细内容

1 实验设计

Benchmark: 采用了4个不同的任务来证明本方法的有效性:

  • Plan生成(Plan Generation):使用Blocksworld基准测试,要求智能体将块按特定顺序堆叠。定义状态为块的当前方向,动作为移动块的指令。使用两种奖励:动作的似然性和特定任务启发式奖励。与Chain-of-Thought (CoT)和其他基线方法进行比较。
  • 数学推理(Math Reasoning):在GSM8K数据集上进行测试,该数据集包含小学数学文字问题。将问题分解为一系列较小的子问题。**定义状态为中间变量的值,动作为提出关于未知中间变量的增量子问题。**结合自我评估奖励和状态置信度奖励。与CoT、Least-to-Most prompting等变体进行比较。
  • 逻辑推理(Logical Reasoning):在PrOntoQA数据集上进行测试,该数据集包含一组事实和逻辑规则,要求模型验证假设事实的真假。定义状态为当前关注的fact,动作为从fact集中选择规则。使用自我评估奖励,并基于未来步骤的平均奖励更新Q函数。与CoT基线方法进行比较,评估最终答案的预测准确性和完整证明的准确性。

额外实验:

复杂问题的分析:在完整的Blocksworld数据集上使用更强大的LLM(Llama-2 70B)进行实验,以进一步研究RAP是否能帮助更强的LLM解决更复杂的问题。

奖励选择的分析:对不同奖励选择对LLM推理性能的影响进行了综合实验,包括计划生成和数学推理任务。

适应性提示(Adaptive Prompting):为了解决演示案例和测试案例之间难度分布差异的问题,提出了一种适应性提示技术,通过预计算演示案例的中间状态并截断搜索树中的路径来提高性能。

2 Blocksword场景超过GPT4+COT的效果

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

说明:

任务:通过一系列的操作,将积木块从一种特定的初始配置移动到另一种目标配置。

RAP(10) 和 RAP(20):这指的是使用 RAP 方法时,迭代次数分别设置为 10 和 20 的实验设置。

“pass@10”:表示对于每个测试案例,算法采样了 10 个计划。如果一个测试案例中至少有一个计划是正确的,那么这个测试案例就被认为是解决了的。这种方法可以评估算法在多次尝试中找到至少一个有效解决方案的能力。

结论1: 使用 LLaMA-33B(一个大型语言模型)的 CoT 方法只能为少数几个两步的问题生成成功的计划,而在更难的问题上完全失败。这表明 CoT 方法在处理简单问题时表现尚可,但在问题复杂度增加时,其性能显著下降。

结论2: RAP 方法在性能上显著优于 CoT,几乎解决了所有四步以内的难题,并且解决了一部分六步问题,平均成功率达到 64%。这说明 RAP 方法在处理更复杂问题时的有效性。

结论3: 六步问题的搜索空间可以达到 ,而RAP算法在 20 次迭代内能够以 42% 的概率找到成功的计划。这强调了 RAP 方法在处理具有大规模搜索空间问题时的效率。

结论4: RAP框架使得 LLaMA-33B 在性能上超过了 GPT-4,提升了33%,表明 RAP 方法能够显著提升语言模型在复杂推理任务上的性能。

3 数学推理任务上表现也非常好

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

说明:

任务:例如GSM8k的数学任务,包括一个描述和一个final question,需要进行multi-step数学计算,需要将final question拆解成一系列小的字问题来解决。

状态定义:在这个框架中,"状态state"被定义为中间变量的值。中间变量是在解决问题过程中产生的,它们帮助模型理解问题的当前状态。

动作定义"动作action"是指提出一个关于未知中间变量的增量子问题。这个动作是为了获取关于问题更多的信息。

世界模型响应:世界模型(可以理解为问题的背景知识库)会根据当前的中间变量值和问题描述来回答提出的子问题。回答的结果是将新的中间变量值加入到下一个状态中,从而更新模型对问题的理解。

奖励函数:奖励函数是由两个部分组合而成的:LLM对自己提出子问题有用性的自我评估(rt,1)和模型对当前状态置信度(rt,2)的加权几何平均。这个加权几何平均表示为 rt = rα ∗ r1−α,其中 α 是权重系数。

奖励的目的:这个奖励函数的设计目的是鼓励模型提出更加相关和有用的子问题。通过这种方式,模型可以更有效地解决问题,因为它会被引导去关注那些能够显著推进问题解决进程的信息。

• 其他:RAP(aggr)取多条采样路径的结果。

4 逻辑推理任务上表现也比较好

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

使用MCTS显著提升LLM在复杂任务的推理能力-AI.x社区

image-20241104234512575

说明:

  • 任务设置:逻辑推理任务(例如 PrOn-toQA)通常提供一组事实和逻辑规则。模型的任务是使用这些逻辑规则来验证给定的假设事实是否为真或假。这些任务不仅要求模型提供正确的最终答案(真或假),还要求模型提供一个详细的证明来展示结果。
  • 状态定义:在这个框架中,"状态"被定义为模型当前关注的事实,这类似于人类在推理时的工作记忆(Baddeley, 1992)。工作记忆是指在进行复杂认知任务时,暂时存储和操作信息的心理能力。
  • 动作定义"动作"被定义为从事实集中选择一个规则。这个动作是为了应用逻辑规则来进行推理。
  • 世界模型:世界模型执行一个单跳推理步骤,使用选定的规则和当前的事实来生成一个新的事实,这个新事实成为下一个状态。
  • 奖励计算:奖励是通过自我评估来计算的(参见 Section 3.2)。具体来说,通过向 LLM 提供一些带有标签的示例,帮助它更好地理解推理步骤的质量。自我评估可以是模型对推理步骤有用性的评价。
  • Q 函数更新:使用未来步骤的平均奖励来更新 Q 函数,这与 GSM8k 中的方程(2)相同。Q 函数是强化学习中的一个概念,用于评估在特定状态下采取特定动作的预期回报。

三、总结

结论1:利用LLM作为世界模型和推理agent,可以显著提升其推理和规划能力,使其在多个推理任务上的表现优于现有强基线。

结论2:引入基于蒙特卡洛树搜索(MCTS)的规划算法,有效平衡了推理过程中的探索和利用,使得LLM在解决复杂推理问题时能够高效获取高奖励的推理路径。

本文转载自 NLP PaperWeekly​,作者: NLP PaperWeekly

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