2023 年 5 月,普林斯顿大学与 Google DeepMind 的研究团队发表了论文《Tree of Thoughts: Deliberate Problem Solving with Large Language Models》。这篇论文提出了一个看似简单却极其强大的想法:让大语言模型像人类一样,在解决问题时探索多个推理路径,并在遇到死胡同时回溯。
Chain of Thought(CoT)教会了模型”一步步思考”,但它的推理是线性的——一旦走错方向,就无法回头。Tree of Thoughts(ToT)打破了这一限制,将推理过程建模为一棵搜索树,让模型能够分支、评估、回溯,就像国际象棋选手在脑中推演多种走法一样。
Tree of Thoughts 是 LLM 推理能力从”本能反应”到”深思熟虑”的关键跃迁。
本文要点
- CoT 的线性推理局限与回溯动机
- ToT 核心:推理过程建模为搜索树
- 思维状态(Thought State)的生成与评估
- BFS 与 DFS 两种搜索策略
- Game of 24、Creative Writing、Mini Crosswords 三大实验
- 与 CoT、Self-Consistency 的全面对比
- 与 OpenAI o1 推理模型的关系
- 后续发展:Graph of Thoughts、Tree of Thoughts+
一、为什么需要 Tree of Thoughts
1.1 CoT 的线性困境
Chain of Thought 让大模型在给出答案前先展示推理步骤,极大提升了复杂任务的准确率。然而,CoT 本质上是一种左到右的线性生成过程:
核心问题在于:CoT 没有探索和回溯的能力。 一旦模型在某个推理步骤上做出了错误选择,后续所有步骤都会被拖累。
1.2 人类是如何解决问题的
认知科学研究表明,人类在解决复杂问题时,通常会:
- 探索多种可能的方案,而不是只考虑一条路径
- 评估每个方案的可行性,在继续深入前先做判断
- 在发现死胡同时回溯,转向其他有希望的方向
- 在多个可行方案中选择最优的,而非随意挑选一个
ToT 正是受此启发,试图让 LLM 模仿这种”深思熟虑”的决策过程。
1.3 论文信息
论文: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机构:Princeton University, Google DeepMind发表:NeurIPS 2023 (Oral)引用:1500+ 次二、Tree of Thoughts 核心框架
2.1 从链到树的范式升级
ToT 将推理过程从线性链条扩展为树状结构。在树中,每个节点代表一个思维状态(Thought),模型可以:
- 分支:从一个状态生成多个候选下一步
- 评估:对每个候选状态打分或判断是否可行
- 搜索:通过 BFS 或 DFS 策略在树中搜索最优路径
- 回溯:在发现某条路径不通时,返回上一层继续探索
2.2 四个关键组件
| 组件 | 功能 | 示例 |
|---|---|---|
| Thought 分解 | 将问题分解为多个思维步骤 | 将 24 点游戏分解为逐步填入数字和运算符 |
| Thought 生成 | 从当前状态生成候选下一步 | 给定已有步骤,生成可能的下一步操作 |
| 状态评估 | 评估当前状态的好坏 | 判断当前中间结果是否可能达到目标 |
| 搜索算法 | 在思维树中搜索最优路径 | BFS(广度优先)或 DFS(深度优先) |
每个组件都可以根据任务特点进行定制。好的思维分解应该让每个步骤足够小以便评估,但又足够有意义以避免搜索空间过于庞大。
2.3 Thought 生成策略
ToT 提供了两种生成候选思维的方式:
策略一:独立采样(i.i.d. Sampling) — 从同一状态独立生成多个思维,每个互不影响。适合创意生成等需要多样性的任务。
策略二:顺序提出(Sequential Propose) — 根据已有的候选依次提出新思维,避免重复。适合有明确约束的任务(如填字游戏)。
2.4 状态评估
状态评估是 ToT 的关键创新之一:
- 独立评估:模型对每个状态打分(如 1-10 分),选择得分最高的继续探索
- 投票评估:多次 LLM 调用对多个状态投票,得票最多的被选中
示例 — Game of 24 的状态评估:State: 1 + 2 = 3, remaining: 3, 4 → Score: 3 (不太可能达到 24)State: 1 × 2 = 2, remaining: 3, 4 → Score: 8 (2 × 3 = 6, 6 × 4 = 24 )三、搜索策略:BFS 与 DFS
3.1 广度优先搜索(BFS)
BFS 逐层扩展搜索树,每一层保留最优的 b 个候选:
BFS 适合解的深度有限且每步选择较少的任务,如 Game of 24。
3.2 深度优先搜索(DFS)
DFS 沿着一条路径深入探索,在遇到死胡同时回溯到上一层。DFS 适合搜索空间大但解可能很深的任务,如填字游戏。
def dfs_search(state, max_depth, evaluate, threshold): if is_solution(state): return state if depth(state) >= max_depth: return None
for candidate in generate_thoughts(state): score = evaluate(candidate) if score >= threshold: # 只探索有希望的路径 result = dfs_search(candidate, max_depth, evaluate, threshold) if result is not None: return result # score < threshold → 剪枝 return None # 回溯3.3 BFS vs DFS 对比
| 维度 | BFS | DFS |
|---|---|---|
| 搜索方式 | 逐层扩展,先广后深 | 深入到底,不行回溯 |
| 内存开销 | 较高(需存储整层候选) | 较低(只存储当前路径) |
| 适用场景 | 解的深度有限,分支多 | 解的深度不确定,需剪枝 |
| 典型任务 | Game of 24 | Mini Crosswords |
| 最优性 | 更容易找到全局最优 | 可能陷入局部最优 |
四、三大实验任务
4.1 Game of 24
任务:给定 4 个数字,使用 +、−、×、÷ 使结果等于 24,每个数字只用一次。
输入:1, 2, 3, 4 → 输出:(1 + 2 + 3) × 4 = 24输入:4, 5, 6, 7 → 需要仔细搜索才能找到解ToT 使用 BFS 搜索:每步选两个数字做一次运算,生成 5 个候选,评估后保留最优的继续。
| 方法 | 准确率 |
|---|---|
| Standard Prompting | 7.3% |
| Chain of Thought | 4.0% |
| Self-Consistency (CoT) | 9.0% |
| Tree of Thoughts (BFS) | 74.0% |
ToT 的准确率是 CoT 的 18 倍以上。这说明 GPT-4 完全具备解决这类问题的能力,只是线性 CoT 无法释放这种能力。
4.2 Creative Writing(创意写作)
任务:给定约束条件,生成满足约束的创意文本,用另一个 LLM 打分评估。
ToT 的方法:生成 5 个不同开头 → 评估质量 → 选择最优 2-3 个继续展开 → 生成完整短文。
任务:以"那天晚上,月光格外明亮"开头,写一个悬疑故事 开头 A: "...李探长站在废弃仓库前..." → 7.0 开头 B: "...她从未想过,这个约定会..." → 7.5 开头 C: "...抽屉里的信封在银色光芒下..." → 8.0 开头 D: "...老钟停在三点十七分..." → 8.5→ 选择 D 继续展开ToT 生成的文本在人工评估中获得了显著更高的连贯性和创意度评分。
4.3 Mini Crosswords(迷你填字游戏)
任务:在 5×5 填字游戏中填写单词,满足横向和纵向的交叉约束。
ToT 使用 DFS 策略:选择约束最强的提示词 → 生成候选答案 → 检查兼容性 → 深入或回溯。
| 方法 | 字母准确率 | 词准确率 |
|---|---|---|
| Standard Prompting | 58.5% | 15.6% |
| Chain of Thought | 65.4% | 24.0% |
| Tree of Thoughts (DFS) | 78.0% | 60.0% |
五、与其他方法的全面对比
5.1 方法演进图谱
5.2 详细对比表
| 维度 | Standard | CoT | Self-Consistency | ToT |
|---|---|---|---|---|
| 推理路径 | 无中间步骤 | 单条线性路径 | 多条独立路径 | 树状结构 |
| 回溯能力 | ||||
| 状态评估 | (事后投票) | (过程评估) | ||
| 搜索策略 | 无 | 无 | 并行采样 | BFS / DFS |
| 计算成本 | 1x | 1x | Nx | B^D x |
| Game of 24 | 7.3% | 4.0% | 9.0% | 74.0% |
5.3 Self-Consistency 的局限
Self-Consistency 通过多次采样 CoT 并投票选择最一致的答案,但根本局限在于:
- 路径间无交互:每条路径独立采样,无法共享信息
- 无过程评估:只能在最终答案层面投票
- 无法回溯:每条路径一旦生成就无法修改
ToT 解决了这些问题:路径通过树结构关联,中间状态可评估,死胡同可回溯。
六、与 OpenAI o1 推理模型的关系
6.1 从显式搜索到隐式搜索
2024 年 9 月,OpenAI 发布 o1 推理模型。ToT 与 o1 之间存在深层联系:
6.2 Test-Time Compute Scaling
| 特性 | ToT | o1 |
|---|---|---|
| 计算控制 | 分支因子 + 搜索深度 | 思考 Token 数量 |
| 搜索方式 | 显式树搜索 | 隐式内部搜索 |
| 评估机制 | 外部 LLM 评估 | 内化的自我评估 |
| 回溯能力 | 显式回溯 | 生成新思考链 |
| 部署成本 | 多次 API 调用 | 单次调用(内部多次推理) |
核心洞察:ToT 证明了”搜索式推理”的巨大价值,o1 将这一洞察融入模型本身,通过 RL 让模型自动学会何时搜索、何时回溯。
七、后续发展
7.1 Graph of Thoughts(GoT)
2023 年底,研究者进一步将树结构推广为图结构。GoT 新增了三个关键能力:
- 思维融合:将多个推理路径的结果合并为新的思维节点
- 思维精炼:对已有思维节点进行迭代改进
- 循环连接:允许后期思维回溯影响前期思维
这使得 GoT 特别适合需要迭代优化和全局信息的任务。
7.2 Tree of Thoughts+ 与其他改进
- ToT+:工程优化版本,支持一次 LLM 调用评估多个候选、自适应分支因子、缓存和并行化
- RAP(Reasoning via Planning):将推理转化为 MDP,通过蒙特卡洛树搜索寻找最优策略
- Agent 集成:ToT 思想深刻影响了 LLM Agent 框架,在规划、工具选择等环节应用树状搜索
八、局限性与挑战
8.1 计算成本
ToT 的最大局限是计算成本。一次推理可能需要 数十到数百次 LLM 调用:
CoT: 1 次 | Self-Consistency (k=40): 40 次 | ToT (BFS, b=5, d=3): ~155 次8.2 适用范围
ToT 最适合:多步规划、创意生成、约束满足、复杂决策。对于简单单步任务或搜索空间极其庞大的任务,效果可能有限。
8.3 评估器的可靠性
ToT 效果高度依赖状态评估器质量。如果评估器将差的路径标记为好的,整个搜索可能被误导。
FAQ
Q1:ToT 和普通 CoT 在实际使用中怎么选?
如果任务只需 2-3 步简单推理,CoT 通常够用。当涉及规划、约束满足或需比较多个方案时,ToT 优势才体现。判断标准:如果人类也会”犹豫和尝试不同方法”,ToT 可能更合适。
Q2:ToT 的计算成本可以接受吗?
取决于场景。对于关键决策(代码生成、数学证明),准确率从 4% 到 74% 的提升完全值得。可通过调整分支因子和搜索深度来平衡成本和效果。
Q3:ToT 能否与 RAG 结合?
可以。每个思维节点都可以触发 RAG 检索获取相关上下文,适合需要外部知识的复杂推理任务。
Q4:ToT 和 o1 的推理有什么本质区别?
ToT 是提示框架,不需修改模型;o1 是训练方法,通过 RL 内化搜索能力。ToT 更灵活可解释,o1 更高效但黑盒。
Q5:ToT 能用在代码生成上吗?
可以。ToT 可生成多个代码方案骨架,评估可行性后选择最优的继续细化。AlphaCode 的采样+聚类策略就与 ToT 异曲同工。
小结
Tree of Thoughts 是 LLM 推理方法演进中的关键节点:
- 核心贡献:将推理从线性链条扩展为树状搜索,赋予 LLM 分支、评估、回溯能力
- 关键创新:将 LLM 同时用作推理引擎和评估器,无需外部工具
- 实验验证:Game of 24 准确率从 4% 提升到 74%,证明搜索式推理的巨大价值
- 深远影响:启发了 Graph of Thoughts、o1 推理模型等后续工作
- 实践价值:提供可操作框架,通过提示工程即可实现搜索式推理
ToT 的意义不仅在于方法本身,更在于它所传达的理念:LLM 的推理能力远超线性生成,关键在于设计合适的搜索和评估框架来释放这种能力。 这一理念正在深刻塑造 o1、DeepSeek R1 等新一代推理模型的发展方向。
参考资料
8.1 核心论文
- Tree of Thoughts: Deliberate Problem Solving with Large Language Models (Yao et al., 2023) — 本文解读的核心论文
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models (Wei et al., 2022) — CoT 基础
- Self-Consistency Improves Chain of Thought Reasoning in Language Models (Wang et al., 2022) — 多路径投票
- Graph of Thoughts: Solving Elaborate Problems with Large Language Models (Besta et al., 2023) — 从树到图
8.2 相关工作
- Reasoning via Planning in Large Language Models (Hao et al., 2023) — RAP,LLM 作为世界模型
- Large Language Models are Zero-Shot Reasoners (Kojima et al., 2022) — “Let’s think step by step”
- Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., 2023) — 自我反思与改进
8.3 推理模型
- Learning to Reason with LLMs — OpenAI o1 (OpenAI, 2024) — o1 推理模型
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via RL (DeepSeek Team, 2025) — GRPO 训练推理
8.4 实现资源
- Tree of Thoughts — 官方实现 — Princeton NLP 官方代码库
- Reasoning in LLMs: A Survey — LLM 推理能力综述
支持与分享
如果这篇文章对你有帮助,欢迎支持作者或分享给更多人
部分信息可能已经过时






