思维树:利用大模型搜索实现审慎的问题解决
在过去两篇文章中,我们探讨了通过自我反思(Reflexion)和工具交互式批评(CRITIC)进行自我纠正的智能体。现在,我想退后一步,看看一种更具结构性的方法:如果智能体从一开始就不承诺单一的推理路径会怎样?Yao 等人(NeurIPS 2023)提出的思维树(Tree of Thoughts, ToT)正是这样一种框架——一种搜索框架,其中大模型探索中间推理步骤的分支空间,而非单一的线性链。我读这篇文章是因为它代表了大模型推理中审慎搜索(deliberate search)的最清晰表述,而当财务计算中一个错误的中间步骤可能悄无声息地破坏下游所有结果时,审慎搜索正是你所需要的。
论文内容
Shunyu Yao、Dian Yu、Jeffrey Zhao、Izhak Shafran、Thomas L. Griffiths、Yuan Cao 和 Karthik Narasimhan 介绍了思维树(Tree of Thoughts),将其作为思维链(Chain-of-Thought)提示的推广。核心举措是将 中间推理步骤视为“思维(thoughts)”——即可独立评估的连贯文本单元,并将它们组织成树状结构而非链状。在每个节点,模型会生成多个候选思维,通过另一次大模型调用对每个思维进行评估(评分状态为“肯定 / 可能 / 不可能”),然后应用标准的搜索算法(广度优先搜索 BFS 或深度优先搜索 DFS)来遍历这棵树。如果一个分支看起来走不通,模型可以剪枝或回溯——这是 CoT 或 CoT-SC 无法做到的。
该论文在三项任务上进行了评估:24 点游戏(通过算术组合四个数字得到 24)、创意写作(使用四个随机句尾生成连贯段落)和迷你填字游戏(解决 5×5 的填字谜题)。这三项任务都需要能够从探索和回溯中受益的推理能力,这正是作者设计的初衷。
核心观点
- 在 24 点游戏中,束宽 b=5 的 ToT 实现了 74% 的成功率,而 标准 GPT-4 CoT 仅为 4%,采样 100 次的 CoT-SC 仅为 9%。这种差距令人震惊。
- GPT-3.5 + ToT 在同一任务中仅达到 19%;该方法的收益高度依赖于模型。GPT-4 的思维生成质量是提升收益的主要动力——GPT-4 生成 + GPT-3.5 评估可达到 64%,而 GPT-3.5 生成 + GPT-4 评估仅达到 31%。
- 在创意写作中,在 GPT-4 连贯性评分上,ToT 得分为 7.56,而 CoT 为 6.93。人类评估者在 100 次中有 41 次更倾向于 ToT 输出,而 CoT 为 21 次。
- 迷你填字游戏:ToT 实现了 60% 的单词级准确率(CoT 为 40.6%,IO 为 15.6%),但仅解决了 20 个完整游戏中的 4 个 (20%)。单词级成功与游戏级成功之间的差距表明,即使有回溯,全局约束满足仍然很难。
- 评估步骤本身也是一次大模型调用。在填字游戏中,论文指出评估者有时会因为词汇不熟悉而将正确的局部状态判定为“不可能”——这是一种复合失败模式,即评估者的错误会毒害整个搜索过程。
- 计算成本:在 24 点游戏中,ToT 的成本约为 每例 0.74 美元,而 100 次采样的 CoT 最佳结果为 0.47 美元。作者自己也指出,对于 GPT-4 已经能很好处理的任务,这种开销是不值得的。
哪些站得住脚,哪些站不住
核心结论——在需要回溯的任务上,对中间思维进行树搜索的表现大幅优于顺序 CoT——是真实且可复现的。24 点游戏中 74% 对 4% 的差距并非噪声。其原理在机械层面上是合理的:CoT 中一个错误的中间等式会使整条链条崩溃,而 ToT 可以剪掉该分支并尝试不同的分解方式。
我认为不那么有说服力的是其通用性主张。三个评估任务都相对具有合成性:数学谜题、带有结构约束的创意写作提示和文字游戏。它们都不像生产财务工作流中出现的开放式、模糊的问题。作者也仅在 GPT-4 上进行了评估(并将 GPT-3.5 作为消融实验),因此我们不知道 ToT 在较小或经过微调的模型上表现如何——GPT-3.5 仅 19% 的数据暗示答案是“不太好”。
填字游戏(尽管单词准确率 60%,但游戏级成功率仅 20%)的失败指向了一个更深层次的问题:ToT 是由局 部评估器引导的局部搜索。它不维护全局约束模型,而这正是子解交互密集的问题所需要的。后续的思维图(Graph of Thoughts)论文(Besta 等人,AAAI 2024)明确提出了这一批评,并证明在排序任务上,通过允许思维合并并形成循环而非受限于树,其质量比 ToT 提升了 62%,同时成本降低了 31% 以上。
最后,实际应用中的成本结构很重要。在 b=5 且需要重复调用评估器的情况下,ToT 的 API 调用成本约为单次 CoT 的 15–20 倍。对于延迟敏感或成本敏感的应用,这并不是轻而易举就能接受的。
为什么这对金融人工智能很重要
坦率地说:ToT 对 Beancount 问题空间中的一小部分非常重要,但这一部分是真实存在的。
我希望在金融任务中使用回溯的典型场景是带有模糊交易的多步账户分类。当大模型将导入的银行对账单映射到会计科目表时,链条早期的一个错误分配(例如,将贷款发放视为收入)可能会在几步之后演变成破碎的余额检查。在 CoT 智能体中,当余额检查失败时,模型没有机制去重新审视原始分类。而 ToT 智能体可以回溯到该节点并尝试使用 Liabilities:Loans。
同样,整个财政年度的税务优化是一个真正的树搜索问题:逐项扣除还是标准扣除、资本利得变现的时间点、慈善捐赠的集中处理。这些决策呈非线性交互,你需要在做出承诺之前评估多个分支。ToT 的 BFS/DFS 框架自然地映射到了这种结构上。
ToT 无助于 处理 Beancount 中的主流情况:常规交易录入和对账。对于在账本中已有明确对应项的交易,CoT + PAL(将算术运算卸载给代码解释器)更快、更便宜,而且已经足够准确。将 ToT 应用于 expenses:groceries 分类简直是大材小用(用大锤砸大头针)。
写入安全方面更迫切的担忧是评估器的可靠性问题。如果状态评估器也是一个大模型,它可能会出错——而错误的评估不仅会减慢搜索速度,还会剪掉正确的路径。任何使用 ToT 的生产级金融智能体都需要一个外部预言机(余额检查、架构验证器、规则引擎)来担任评估器,而不是另一个大模型调用。
延伸阅读
- Graph of Thoughts: Solving Elaborate Problems with Large Language Models (Besta et al., AAAI 2024) — arXiv:2308.09687。将 ToT 从树扩展到任意图,实现思维合并和反馈循环。如果你想要基于搜索的推理又不想承担 ToT 的开销,其关于成本降低(>31%)的主张非常相关。
- Large Language Models Cannot Self-Correct Reasoning Yet (Huang et al., ICLR 2024) — arXiv:2310.01798。一个关键的反面观点:如果没有外部反馈,内在的自我纠正会降低推理性能。这挑战了 ToT 基于大模型的评估器足以引导搜索的假设。
- RethinkMCTS: Refining Erroneous Thoughts in Monte Carlo Tree Search for Code Generation (arXiv:2409.09584) — 将 MCTS 而非 BFS/DFS 应用于思维搜索,并将执行反馈作为外部预言机。代码生成的场景在结构上类似于账本回写:你有一个可验证的真相(代码能运行吗?余额检查能通过吗?),这正是蒙特卡洛推演产生价值的地 方。
