探索/智能体

新篇智能体arXiv:2305.10601

思维树:让语言模型学会分叉与回溯

Tree of Thoughts: Deliberate Problem Solving with Large Language Models

Shunyu Yao, Dian Yu, Jeffrey Zhao, Izhak Shafran, Thomas L. Griffiths, Yuan Cao, Karthik Narasimhan

NeurIPS · 2023

3.5k 引用 · 1.4k 阅读 · 0 收藏

摘要

把思维链推广成可评估、可搜索的思维树,让语言模型进行带回溯的审慎求解。

Generalizes chain-of-thought to a tree of candidate thoughts that can be evaluated and searched, enabling deliberate problem solving.

提要

ToT 把生成看成在思维空间里做搜索,而不是一条直线写到底。它通过分叉、评估与回溯,让语言模型在需要探索的任务上更审慎地求解。

01背景与动机

链式思维提示让大语言模型能够逐步写出中间推理,但整条路径通常仍是单一的直线:模型一旦在中途走偏,后续内容往往只能沿着错误方向继续,缺少系统的纠正机制。许多经典谜题、数学规划与多步决策问题,本质上要求在若干候选思路之间比较优劣、主动放弃死路并回溯,单线生成很难覆盖这种探索需求。

思维树因此把问题求解重新表述为在思维空间中的搜索:引入可被单独评估的思想单元,用启发式方法估计局部价值,再借助树搜索在有希望的分支上展开。这样,语言模型不再只是一次性写完答案,而是能够像审慎的解题者一样分叉、评估与回溯。

02核心方法

在思维树框架中,模型在每一决策层针对当前状态提出多个候选的中间想法,而不是只沿一条路径续写。这些想法可以是具体的解题步骤、可检验的子目标,或局部的行动计划,各自成为搜索树上的节点,为后续的评估与扩展提供结构化的选择空间。

随后,模型借助自我评估提示或多样本投票,对各个节点的前景给出启发式判断,估计其通向正确解的可能性。搜索过程可采用广度优先或深度优先策略,优先展开更有希望的分支,并在必要时剪枝或回溯,从而在可控的测试时算力预算内探索更大的思维空间。

迷你填字中:(a) 如何提出想法并汇入优先队列以供深度优先搜索(DFS);(b) 如何按各剩余词线索可填性评估状态,若语言模型判定任一线索无法填入则剪枝,随后DFS回溯至父状态并探索下一有希望的想法。
1. 迷你填字中:(a) 如何提出想法并汇入优先队列以供深度优先搜索(DFS);(b) 如何按各剩余词线索可填性评估状态,若语言模型判定任一线索无法填入则剪枝,随后DFS回溯至父状态并探索下一有希望的想法。

03结果与证据

在需要多步探索与规划的任务上,思维树使模型能够显式比较不同推理路径,而不是把全部希望押在单次链式生成上。通过评估与搜索,错误或不成熟的中间想法可以被更早识别并放弃,从而有望提高最终解答的可靠性。

论文将该方法用于若干依赖规划与回溯的谜题类问题,表明把生成组织成可搜索的树,有助于语言模型展现更审慎的问题求解行为。需要强调的是,收益来自搜索与评估机制本身,而非单纯增加输出长度。

04影响与意义

思维树把语言模型的逐步生成与经典人工智能中的启发式搜索重新连接起来,表明提示与解码阶段也可以承载结构化的探索,而不仅是简单的文本续写。这一视角为后来强调测试时计算、以更多推理换取更好答案的工作提供了直观先例。

与此同时,对中间想法进行评估的做法,与过程监督、过程奖励等后续方向在思想上相通:不仅关心最终答案对不对,也关心推理路径是否可信。它提醒社区,推理系统的质量同时取决于生成器与评估器。

05局限

树搜索需要多次调用模型来提出候选并评估节点,测试时的计算与延迟成本明显高于单次链式推理,在资源受限或对时延敏感的场景中可能难以直接部署。若评估器本身不稳定或带有系统性偏差,错误的价值信号会被搜索过程放大,反而把探索导向错误分支。

此外,并非所有任务都适合显式分叉:对于模式匹配较强、一步即可完成或中间状态难以定义的问题,维护思维树可能带来不必要的开销。方法的效果也高度依赖思想粒度的设计以及搜索广度与深度的权衡,需要针对任务仔细设定。

06要点

  1. 01推理不必沿单线进行,可以在思维空间中分叉、评估并回溯。
  2. 02评估器与生成器同样关键,不可靠的价值估计会放大搜索中的错误。
  3. 03在测试时投入更多算力进行审慎搜索,有时比继续扩大预训练更划算。

标签

reasoningsearch

相关论文

和这篇论文对话

开启对话后,本页的标题、摘要、导读和图注会装进上下文。模型是你自己接入的。

登录后可以接入自己的模型,向这篇论文提问。