ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

大模型为什么连 24 点都算不对?Tree of Thoughts 让它学会「试错和回头」,成功率从 4% 飙到 74%

大模型为什么连 24 点都算不对?Tree of Thoughts 让它学会「试错和回头」,成功率从 4% 飙到 74% 大模型为什么连 24 点都算不对Tree of Thoughts 让它学会「试错和回头」成功率从 4% 飙到 74%你让 GPT-4 算一道 24 点用 4 个数字加减乘除凑出 24它大概率会卡壳。不是因为它不会算——459这种它门儿清。而是因为它太「一根筋」一旦第一步选错了路它就一路错到底永远不会说「算了我换条路」。论文里有个扎心数字在 100 道高难度 24 点上标准推理方法CoT成功率只有4%。而给它加上一个叫Tree of Thoughts思维树ToT的框架后——同一个 GPT-4成功率直接干到74%。差了快 20 倍。没换模型没加参数没有微调。只是让它学会了「试错和回头」。这篇是长文建议先点收藏慢慢看。我会从「为什么需要它」一直讲到「它怎么落地、坑在哪、下一步是什么」争取一篇讲透。〇、先对齐背景CoT 和 SC 分别解决了什么要懂 ToT得先懂它的两个前辈否则你会觉得 ToT 莫名其妙。CoT思维链Chain of Thought让模型把推理写成「一条线性链」——问题 → 步骤1 → 步骤2 → 步骤3 → 答案」。它把难预测的一步拆成一串易预测的小步。比如「小明买 3 斤苹果每斤 12 元…」这类题CoT 已经能稳定答对。SC自一致性Self-Consistency同一个题用较高温度采样生成 N 条独立的 CoT对最终答案做多数投票滤掉单条随机错误。适合有标准答案、想用算力换稳的题如数学 GSM8K。它们共同的根本限制来自 ToT 论文Yao et al., 2023的原话语言模型在推理期仍然被限制在「token 级、从左到右」的决策过程里。这句话是理解全文的钥匙。它带来两个死穴不可回溯某步写错错误一路带到底无法回头换路。无法前瞻/规划面对「得先试几步、发现走不通再换思路」的任务线性或平行链都无能为力。用两个任务一对比就清楚了任务CoT / SC 表现原因小明买苹果3×12−52×1255CoT 已能稳定答对单链线性推理足够无需试错Game of 24用 4 个数凑 24CoT 仅4%必须先「试运算、看是否走得通、不通就换」一句话定位ToT 把「推理」从「写一条链」重新建模成「在一棵思维树上做搜索」——可以生成多个分支、自评每个分支、前瞻与回溯。它是 CoT / SC 的自然推广论文原文IO、CoT、CoT-SC、self-refine 都是 ToT 在「树深/树宽受限」时的特例。一、大模型为什么这么「一根筋」CoT 很强但天生死穴就是上面说的从左到右写错了就只能错到底。于是有人想那让它想 100 遍、投票决定呢论文也试了——想一遍CoT4%想 100 遍投票SC9%为什么没救因为每一次「想」它都是一根筋往前冲。100 个一根筋的人没有一个会中途回头。多采样只是在重复同一个不会回头的错误。这就引出一个关键洞察24 点这种题难点根本不是「会不会算」而是「要不要试错和回头」——而这恰恰是 CoT/SC 最不会的东西。二、ToT 是什么把推理变成「在一棵树上搜索」Tree of Thoughts 的思路特别像人解题不是「想出一条路」而是「同时想几条路边想边判断哪条靠谱走不通就换一条」。它把推理从「写一条链」变成「在一棵思维树上做搜索」。四个关键词思维thought不是单个 token而是「一个有意义的中间步骤」——一步运算、一段话的提纲、填字的一个词。树tree同一状态可以分出多个候选分支而不是一条道走到底。自评self-evaluate每个状态都被打分决定保留还是剪掉。搜索search用 BFS / DFS 等算法在树上导航。三者关系一句话CoT 是「想一条路」SC 是「想多条路再投票」ToT 是「想多条路、边想边判断哪条靠谱、不通就回头」。而且论文明确说CoT、SC 全是 ToT「缩水版」的特例。ToT 不是替代它们是它们的升级档——按任务难度「升档」使用。三、ToT 不是什么先破除 3 个误解讲原理前先排掉最容易踩的坑❌不是新训练了一个模型ToT完全不训练无奖励模型、无策略梯度、无微调跑的是冻结的预训练 LM。❌不是一句 prompt 就能触发它是一套需要外部代码控制器的推理期框架详见第五节。❌不是 CoT 的替代品它是 CoT 的推广按任务难度升档使用。这三点很重要因为网上很多「ToT prompt 模板」其实只是轻量变体后面第九节会讲和论文里真正的框架是两回事。四、内部机制4 个可插拔模块ToT 是模块化框架由 4 个组件构成。下面仍以 24 点贯穿讲解。4.1 思维分解Thought Decomposition先决定「一个 thought 多大」这定义了搜索的状态粒度。24 点每个 thought 一步运算如13−94状态 当前剩下的数字集合。创意写作每个 thought 一段提纲 / 一段正文。填字游戏每个 thought 填一个词。4.2 候选生成Thought Generation给当前状态用 LLM生成 k 个下一步候选 thought。论文用两种策略策略做法特点Sample独立采样同一状态独立采样 k 次彼此无关多样性高Propose顺序提议基于已有 thought 续写下一个更连贯但更贵24 点每状态生成 k 个候选运算论文约 k5。4.3 状态评估State Evaluation★ 关键分水岭这是 ToT 与 CoT / SC 最大的不同每个状态都单独被打分。两种方式方式做法24 点用法Value打分让 LLM 给状态打 0–1 分few-shot—Vote投票让 LLM 对多个状态比较、选最优判断「剩余数字能否凑出 24」标sure / maybe / impossible每状态采样 3 次取多数评估器通常就是 LLM 自己自洽地当裁判。4.4 搜索算法Search Algorithm按评估结果组织探索论文主推两种BFS广度优先每一层只保留top-b个最有希望的状态逐层展开24 点用 BFSb5depth3。DFS深度优先沿一条分支深探走到死路impossible 或超步数就回溯到上层换分支填字游戏用 DFS。论文还提到 A* / MCTS 是更先进的未来方向。五、剪枝与回溯算法级真相最容易被误读的部分这是 ToT 真正的精髓也是最多人讲错的地方。我把「剪枝怎么剪、回溯怎么回」在算法层面拆开——它们不是模型「想通了往回走」而是搜索算法的显式操作。5.1 剪枝Pruning剪枝 根据评估分数把不值得展开的状态直接丢弃不再为它生成子节点。分类式评估状态被贴impossible→ 立即剪掉连子节点都不生成。数值式评估打 0–1 分 → 按分数排序只保留最高的 b 个beam width b其余全丢。剪枝不删除已生成的 token只是「不再继续往下生成这条分支」。5.2 回溯Backtracking★ 破除最大误区回溯不是把已生成的 token 撤销、退回去重算Transformer 生成的 token 不可逆。ToT 的「回溯」是搜索控制流——当一条分支走死算法放弃它转去处理 frontier待探索集合里另一条还活着的分支。每个节点 「到目前为止的 thought 序列」一个状态。ToT 在内存维护一棵树 一个待探索集合队列 BFS / 栈 DFS。「回到 A2 / B 分支」 用 A2 或 B 的 thought 前缀新开一次 LLM 调用而不是把 A1 的 token 抹掉。树是由很多次独立调用拼出来的不是一次连续生成。5.3 BFS 版伪代码frontier[初始状态]# 第 0 层fordepthinrange(max_depth):next_frontier[]forstateinfrontier:childrengenerate_k(state)# 模块2生成 k 个候选forcinchildren:c.scoreevaluate(c)# 模块3状态评估children.sort(byc.score,descTrue)next_frontierchildren[:b]# 剪枝只留分数最高的 b 个frontiernext_frontier# 被丢弃的 剪枝ifany(solved):returnsolution# 找到 24 就停returnNone这里「回溯」表现为A1 分支死掉后它根本没进next_frontier算法自然去处理同层的 A2、B。没有回退动作只是不追这条了。5.4 DFS 版伪代码defdfs(state,depth):ifsolved(state):returnstate# 命中 24ifdepthmax_depth:returnNone# 超深死forcingenerate_k(state):c.scoreevaluate(c)ifc.scoreimpossible:continue# 剪枝跳过此子节点resdfs(c,depth1)# 深入下一层ifres:returnres# 下游找到了一路返回returnNone# 所有子节点都死 → 回溯到上层dfs(初始状态,0)这里「回溯」是字面意义return None把调用栈弹回父节点父节点for循环continue试下一个子节点。5.5 回溯是「承重墙」消融证据论文做了去掉组件的消融实验在填字游戏上去掉回溯退化为 b1 贪心 BFS词级成功率从60% 跌到约 20%。这意味着回溯不是锦上添花而是 ToT 生效的关键机制。少了它整个方法塌房。六、实战24 点完整走查题目用4、9、10、13四个数加减乘除各用一次凑出 24。规则每个数用一次thought 一步运算状态 剩余数字集合。搜索树绿色保留/求解红色评估器剪枝{4, 9, 10, 13} / | | \ A:13-94 B:10-46 C:91019✗ D:4×936✗ {4,4,10} {6,9,13} (剪枝) (剪枝) / \ A1:10-46 A2:448 {4,6} {8,10} │ (无法凑24✗) A1a:6×424 ✓逐层走查思维分解切成「一步一运算」状态 剩余数字集合。生成候选从根同时提 4 个第一步候选见上表C、D 被评估为impossible剪枝只留 A、B。沿 A 展开{4,4,10}生成 A110−46→{4,6}、A2448→{8,10}。A1 求解{4,6}→6×424 ✓。完整路径13−94→10−46→6×424。如果走错了回溯演示假设 A1 没成它的子节点全被剪算法从 frontier 取A2{8,10}或B{6,9,13}继续——这就是「换分支」。CoT / SC 永远没有这一手。同题对比范式24 点表现原因CoT贪心~4%随机选一条常是4×936死路一条、无法回头SC多链投票~9%多条独立链投票但每条链内部仍贪心规划力有限ToT树搜索~74%显式剪枝 回溯七、ToT 是框架不是 prompt成本量化这一节很多教程会跳过但它决定了你能不能真用起来。CoT / SC 是「改 prompt 就能跑」ToT 不行它需要一个控制器循环维护状态树、反复调用 LLM、解析输出成状态、按评估分数决定展开/剪枝/回溯。成本论文数据24 点GPT-4每题约5.5k 补全 token约等于并行跑 100 次独立 CoT 试错的总量约 100 倍单次直答成本。实测约100 次 LLM 调用 / 题量级。比 SC 的「100 条独立链」更省因为剪枝提前砍掉死路但远高于单次 CoT。一句话ToT 用「算力换正确率」只在「值得试错」的难题上划算。八、评估器不可靠ToT 的致命弱点前面说评估器通常就是那个 LLM。如果它看走眼把本该保留的好分支误判为impossible→ 错剪把死路误判为likely→ 浪费算力还走错。这连回一个老问题模型自评不一定反映真实推理不忠实 CoT。解法用确定性 verifier 替代 / 补充。24 点里「剩余数字能否凑 24」其实可以写段代码确定性验证不一定要 LLM 自评。论文四组件可插拔→ 评估器可以换成硬规则 verifier、外部工具、或训练好的过程奖励模型PRM。这把 ToT 从「纯 LLM 自评」升级为「LLM 生成 可靠验证」的混合系统大幅降低误剪风险。九、适用场景与边界照着选别乱用适合用 ToT场景类型例子为什么有效组合 / 数学规划Game of 24、约束满足需要试运算、前瞻、回溯约束满足5×5 填字中间词必须互相一致需回溯改字带硬约束的创作给定结尾句写连贯文章全局约束需回溯调整提纲博弈 / 排程 / 策略多步决策、路径规划初始决策关键需试错不适合 / 要慎用❌一眼能答的简单题增益≈0还白白多烧几十倍 token。❌纯事实 / 知识问答ToT 不补知识不懂还是不懂该用检索 / RAG。❌实时 / 高并发搜索是多轮生成延迟扛不住。❌状态难定义很多任务拆不出干净的 thought评估器无从打分。❌小模型当评估器评估器本身得够强小模型自评不可靠。三档选型对照档位方法适用成本1CoT多步但能一次走对低2Self-Consistency有标准答案、想用算力换稳中N 倍3ToT必须规划 / 试错 / 回溯高百倍级十、论文实测结果已核对原文 Yao et al., 2023以下数字来自 ToT 论文arXiv:2305.10601GPT-4经核对原文与官方数据集。Game of 24100 道难题方法成功率IO输入-输出 prompt7.3%CoT贪心4.0%CoT-SCk1009.0%ToTb1退化为贪心45%ToTb5BFS74%即便「best-of-100 的 CoT」也只有 49%——说明搜索更多节点胜过重复采样链。Creative Writing给定 4 个随机结尾句写 4 段连贯文章ToT 连贯性评分 7.56高于 CoT 的 6.93人类两两偏好 ToT 胜 CoT 41/100 对CoT 胜 21/100。Mini Crosswords5×5 填字ToTDFS词级成功率 60%、整局 20%远高于 CoT 的 15.6% / 1%。消融实验填字词级完整 ToT 60%用 oracle 最优状态 82.4%去掉剪枝 65.4%去掉回溯 ~20%——再次印证回溯是承重墙。十一、方法版图与延伸ToT 之后看这些GoTGraph of Thoughts, 2023把 ToT 的「树」放宽为「图」允许不同分支的结论汇聚/合并适合「多思路融合产出最终解」。MCTS 路线如 rStar-Math用蒙特卡洛树搜索替代 BFS/DFS带「探索-利用」权衡更接近 AlphaGo。区别在于 MCTS 常在训练时用树搜索蒸馏进权重ToT 是推理期、纯 prompt的对应物不训练。两篇都叫「Tree of Thoughts」的论文命名澄清Yao et al., 2023本文所讲通用 BFS/DFS/beam 搜索vs Long, 2023用强化学习训练 ToT Controller 驱动搜索策略。查资料别撞车。轻量变体 Tree-of-Thought PromptingHulbert, 2023把 ToT 思想压进单个 prompt如「想象三位专家各自写一步错了就离场」无需外部控制器但搜索深度/质量远弱于完整框架。想「零代码尝鲜」可用。ToT 与 PRM 的关系ToT 的评估器是手写的、未训练的启发式PRM「Let’s Verify Step by Step」把它换成训练好的逐步验证模型。前者即插即用、零训练后者更准但需标注数据。十二、为什么你现在就该搞懂它2026 年整个行业都在卷「推理」。你听到的 o1、DeepSeek-R1还有各种 reasoning 模型底层到处都是「搜索 回溯 逐步验证」的影子。而ToT是这套思想最早、最干净、最好懂的一版原貌。读懂它你就不只是「会用 prompt」的人了而是真正理解了——「让 AI 学会思考」这件事在架构上到底长什么样。 关注看后续 顺手推荐一个开源工具deepSeekHarenss Desktop—— DeepSeekHarness 客户端工具一键安装 deepSeekHarenss。 下载地址https://github.com/qweqe417/dsh-desktop有兴趣的朋友可以去下一个玩玩顺便点个 ⭐Star支持作者 一张图看懂线性链 vs 思维树线性链CoT / SC—— 一根筋走到底问题 │ ▼ 步骤 1 │ ▼ 步骤 2 │ ▼ 步骤 3 │ ▼ 答案 ← 错了只能错到底思维树ToT—— 多路并行能回头┌─→ 候选 A ─┐ │ │ 问题 ── 生成 ──┬─→├─→ 候选 B ─┼─→ 评估 ─→ 剪枝/保留 ─→ 答案 │ │ │ │ │ └─→ 候选 C ─┘ │ │ │ └──────── 回溯换路 ───────────┘一句话线性链「一根筋」错了只能错到底思维树「多条路并行 评估 剪枝 回溯」错了能换路 —— 这就是 ToT 把 24 点从 4% 飙到 74% 的关键。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表