Tree of Thoughts
ToT(Tree of Thoughts,思维树)是 Yao 等人 2023 年提出、发表于 NeurIPS 的推理增强范式。核心思想:不再让模型沿着一条推理链走到黑,而是把中间推理步骤当成可评估、可剪枝、可回溯的搜索节点,用 BFS/DFS 等搜索算法遍历一棵思维树。
它解决的是 CoT 的结构性缺陷:CoT 从第一个想法开始就被自己的早期选择锁住,第一步选错,后面生成得再长也只是沿着错误状态继续。Self-Consistency 采样多条完整链再投票,但每条链内部仍不可回溯,比较的是终局答案而不是中间状态。ToT 在每一步就分支、评估、剪枝。
生成-评估-搜索循环
ToT 的生成-评估-搜索循环
三个组件:
- 思维生成:在当前状态下采样多个候选下一步思维,形成分支
- 状态评估:两种方式。打分(value prompt),让模型判断一个状态的前景,如算 24 点的 sure/maybe/impossible;投票(vote prompt),让模型在多个候选状态之间比较,适合创意写作这类绝对打分不稳定的任务
- 搜索:BFS 保留同一深度的 Top-b 状态,DFS 在强约束任务里回溯。评估器质量决定搜索效率,评估不准会剪错枝
论文数据
- 算 24 点:ToT(束宽 5)成功率 74%,GPT-4 的 CoT 只有 4%,采样 100 次的 CoT-SC 只有 9%
- 收益高度依赖模型:GPT-4 生成加 GPT-3.5 评估可达 64%,反过来只有 31%。思维生成的质量是主要驱动
- 填字游戏:单词级准确率 60% 对 CoT 的 40.6%,但完整游戏只解出 20%,说明局部评估器缺少全局约束建模
与相关范式的定位
| 范式 | 中间表示 | 分支 | 何时评估 | 失败点 |
|---|---|---|---|---|
| CoT | 单条推理链 | 无 | 不评估 | 早期错误被锁定 |
| Self-Consistency | 多条完整链 | 终局 | 末尾投票 | 预算浪费在坏分支 |
| ToT | 可搜索思维树 | 每层多个 | 每层评估 | 依赖评估器质量 |
ToT 的本质是把推理预算花在早期分支选择和剪枝上,而不是花在完整坏轨迹上。后续的 Graph of Thoughts 允许思维合并形成图结构,批评了 ToT 局部搜索缺全局约束的弱点。
生产注意
- 评估器可以是模型,但生产里优先用外部预言机:余额检查、规则引擎、代码验证。模型评估器会出错,还会毒害整个搜索
- 成本高:每一步生成加评估都是模型调用。只在需要试探、规划、可能走弯路的问题上用
- 缺评估和回溯就退化成普通多分支采样,失去核心价值
面试追问
- ToT 和 CoT 的区别? CoT 是单条线性推理链,早期错误被锁定无法纠偏;ToT 把中间思维当搜索节点,每层分支、评估、剪枝、回溯
- 和 Self-Consistency 的区别? SC 并行采样多条完整链后投票,链内不可干预;ToT 在每个中间步骤就评估并舍弃坏路径,预算花在早期分支选择上
- 评估器有哪两种? 打分(value prompt 判断单个状态前景)和投票(vote prompt 多候选比较)。评估质量决定搜索效率
- 为什么收益依赖模型? 思维生成质量是主要驱动。弱的生成器产生不了有前途的分支,再好的评估器也没用
- 什么时候用 ToT? 需要试探和规划的难题:算 24 点、数独、复杂规划。代价是大量生成加评估调用,简单任务用 CoT 就够