3.2 思维树与思维图:多路径探索与回溯


3.2 思维树与思维图:多路径探索与回溯

CoT 是一条线——一旦走错,整条链报废。但很多问题(创意写作、谜题、长程规划)不止一条思路,需要「试几条、比一比、走不通就回头」。思维树(ToT)就是把推理从「线」推广到「树」;思维图(GoT)更进一步,推广到「图」——节点之间可以合并、循环、复用。

3.2.1 为什么需要 ToT:CoT 的局限

回顾 CoT 的形态:它是一条单向线性的推理链。

[CoT] 想法1 → 想法2 → 想法3 → 答案

这种结构有三个根本局限:

局限 表现 后果
无分支 只有一条思路 错过更优解
无评估 中间步骤不被打分 走到错路也不知
无回溯 走错无法回头 一步错步步错

对于「答案唯一、路径明确」的任务(如数学计算),CoT 够用。但对于「多解、需探索、需比较」的任务(如「写一首关于秋天的诗,要用隐喻」),单链 CoT 会困在第一条思路里,错过更好的可能性。

💡 ToT 的核心洞察:人类解决开放性问题时,不是一条路走到底,而是**「试探多条路径、评估可行性、走最优的、走不通就回退」**。ToT 把这个人类思维机制显式地建模进 LLM。

3.2.2 ToT 的四要素

Yao 等人 2023 年提出的 ToT,把推理建模为一棵搜索树。一棵 ToT 需要 four 个要素:

要素 含义 实现
思维分解(Thought Decomposition) 把推理拆成多步「思维状态」 Prompt 让 LLM 一次生成一步
思维生成器(Thought Generator) 从当前状态生成多个候选下一步 采样多次或一次生成多个
状态评估器(State Evaluator) 给每个候选状态打分 LLM 评分(多数投票或数值)
搜索算法(Search Algorithm) 在状态树上搜索 BFS 或 DFS

要素一:思维分解

把问题拆成多步推理的关键,是定义「一步思维」的粒度:

任务类型 一步思维是什么
数学题 一次运算
创意写作 一段或一句
谜题 一次推理或一步操作
规划 一个子任务

粒度太粗,搜索空间小但可能错过细节;粒度太细,搜索爆炸。粒度匹配任务,是 ToT 设计的关键

要素二:思维生成器

从当前状态生成多个候选下一步。两种方式:

方式 做法 优点
采样式 同一 Prompt 采样 N 次 多样性高
提议式 一次 Prompt 让 LLM 给 N 个候选 节省调用

要素三:状态评估器

给每个候选状态打分,决定保留哪个、淘汰哪个。两种评估方式:

方式 做法
数值评估 让 LLM 给状态打 1-10 分
投票评估 让 LLM 在多个候选里选「最可能成功的」

⚠️ 评估器是 ToT 的瓶颈。ToT 的每一步都要调用 LLM 生成 + 评估,调用次数是 CoT 的几十倍。一个低质量评估器会让搜索在错误方向上浪费大量算力。ToT 的效果上限,由评估器的质量决定

要素四:搜索算法

ToT 通常用两种经典搜索:

算法 策略 适用
广度优先 BFS 每层保留 top-k,逐层深入 浅而宽的问题
深度优先 DFS 一条路走到底,走不通回溯 深而窄的问题

3.2.3 BFS 与 DFS:两种搜索流程

BFS 的逻辑

每一层生成 N 个候选 → 评估 → 保留 top-k → 进入下一层 适合: 创意任务(每步有多个等价选择,需横向比较)

DFS 的逻辑

选一个候选深入 → 评估 → 通过则继续,失败则回溯到上一层换一个 适合: 谜题(路径明确但需试错,失败要快速回退)

一个 ToT 应用例子:24 点游戏

「用 1, 4, 5, 6 凑出 24」。CoT 一条路走不通就放弃;ToT 会探索所有运算组合。

[1, 4, 5, 6] / | \ 1+4=5 4+5=9 5+6=11 ... / | \ [5,5,6] [1,9,6] [1,4,11] / \ / \ / \ 5*5=25 5+6=11 ... ... ... 1*4=4 ✗ ↓ ↓ [5,5,11] [4,11] ... ... ↓ 发现 6/(1-5/4)=24 ✓

ToT 在 24 点这类「组合爆炸」任务上远胜 CoT——因为答案路径不唯一,必须搜索。

3.2.4 ToT 的代价与适用

ToT 的强大不是免费的。它的代价:

代价 量级
LLM 调用次数 CoT 的 10-100 倍
延迟 分钟级(CoT 是秒级)
成本 显著上升
实现复杂度 高(需搜索框架、评估器)

因此 ToT 的适用场景明确:

场景特征 是否用 ToT
答案唯一、路径明确(数学) ❌ CoT 够用
简单事实问答 ❌ 浪费
创意任务、多解问题 ✅ 优势明显
组合爆炸(谜题、调度) ✅ 必需
长程规划、需探索 ✅(但常与任务分解结合)

⚠️ ToT 不是「更强的 CoT」。ToT 与 CoT 解决的是不同类型的问题。把 ToT 用在简单任务上,是把大炮打蚊子——既贵又不讨好。ToT 的真正价值在「探索空间大、最优解稀疏」的开放性问题

3.2.5 思维图 GoT:从树到图

ToT 是树——节点之间不共享子节点,不能合并。但很多推理需要图结构

  • 合并:两条思路殊途同归,应汇合成一个结论。
  • 循环:某步推导需要回头引用前面的结论。
  • 复用:不同分支共享某个中间结论。

思维图(Graph of Thoughts, GoT) 把 ToT 的树推广为图,支持节点之间的任意连接:

GoT 的关键操作:

操作 含义 场景
聚合(Aggregation) 多个节点合并为一个 多条推理汇成结论
细化(Refinement) 对某节点迭代改进 逐步打磨答案
回溯(Backtracking) 回到上游节点 走错了换路径

GoT 在需要「多次迭代改进 + 多路汇合」的任务上比 ToT 更强,如长文写作、复杂方案设计。但实现复杂度也更高,工业落地相对少。

💡 从 CoT 到 ToT 到 GoT 的演进:本质是把 LLM 的推理结构从「线 → 树 → 图」逐步泛化,模拟人类越来越复杂的思维模式。但结构越复杂,工程成本越高。生产实践中,CoT 仍是绝对主流,ToT 用于特定开放任务,GoT 多见于研究

3.2.6 ToT/GoT 与第 4 章 ReAct 的关系

值得强调:ToT/GoT 是纯思维的探索——LLM 在「想」的空间里搜索,不调用工具、不行动。这与第 4 章的 ReAct 不同:ReAct 是「想一步、做一步」,每步都涉及真实世界。

两者可以结合:LATS(Language Agent Tree Search) 就是 ReAct + ToT 的融合——让 Agent 在「想+做」的复合空间里树搜索。这是 3.4 节与第 4.3 节会展开的主题。

范式 想的空间 做的空间 搜索
CoT 线性
ToT 树形
ReAct 线性 有(工具调用)
LATS 树形 有(工具调用)

本节小结

  • CoT 是「单链推理」,对开放性任务有三个局限:无分支、无评估、无回溯。ToT 把推理从线推广到树,支持多路径探索与回溯。
  • ToT 的四要素:思维分解(定义一步思维)、思维生成器(生成候选)、状态评估器(打分)、搜索算法(BFS/DFS)。评估器是 ToT 效果的上限
  • BFS 适合浅而宽(创意、比较),DFS 适合深而窄(谜题、试错)。ToT 在 24 点、创意写作等组合爆炸任务上远胜 CoT。
  • ToT 代价高昂(调用次数 10-100 倍),适用场景明确:探索空间大、最优解稀疏的开放问题。简单任务用 ToT 是浪费。
  • GoT 把树推广到图,支持聚合、细化、回溯,适合多次迭代改进的复杂任务,但工业落地较少。
  • 演进脉络:CoT(线)→ ToT(树)→ GoT(图)→ LATS(树+行动)。结构越复杂、能力越强、工程成本越高。生产仍以 CoT 为主。

下一节《3.3 任务分解策略》将讨论如何把复杂长程任务拆成小任务——这是处理「规模大、步骤多」类问题的关键工具。


作者与出处
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 会发光的石头的小龙虾 转发
评论区 (0)
U