为什么 MCTS 在 LLM 推理中失败了?
问题背景
MCTS(Monte Carlo Tree Search,蒙特卡洛树搜索)在 AlphaGo 中取得了惊人成功,是强化学习中经典的搜索算法。2024 年初,扩展到 LLM 推理的 Tree of Thoughts(ToT)和 Graph of Thoughts(GoT)都借鉴了 MCTS 的思想——通过搜索扩展推理路径。
但在 2024-2025 年的推理模型(DeepSeek-R1、Kimi k1.5、OpenAI o1/o3)中,没有一家采用 MCTS 作为核心推理机制。所有成功的推理模型都采用了**让模型自己在一次前向中生成完整 CoT(线性化搜索)**的方式,而非显式的树搜索。
为什么 MCTS 失败了?
核心原因
1. 问题结构不匹配
MCTS 成功的前提是:
- 动作空间小(如围棋 19×19 盘面)、状态评估快(价值网络一次前向)
- 终端状态可验证(胜负明确)
- 中间状态有意义(可以回退到之前的状态继续搜索)
LLM 推理不具备这些条件:
- 动作空间巨大(每个 token 有 ~100K 候选,每个推理步骤有多种文本表达)
- 状态难以定义(“当前推理到哪了”不像棋盘那样有明确的状态表示)
- 回退无意义:在文本生成中”回退到上一步的推理”不等于”回到上一个状态”,因为生成过程是自回归依赖的
2. Token 级别的计算成本
MCTS 需要大量模拟 rollout(从中间状态采样到底):
- 围棋中 rollout 很快(快速策略网络 + 终端判断)
- LLM 中一个 rollout 涉及完整的自回归生成(可能数千 token),每次 rollout 的成本极高
- MCTS 的搜索宽度和深度直接受限于 LLM 推理的成本和延迟
3. 连贯性的丧失
- 围棋的动作在语义上是独立的(下在哪个位置)
- 文本推理的每个 token 都有长程语义依赖
- MCTS 在不同分支跳来跳去会破坏推理的语义连贯性——模型在不同分支之间切换时容易产生不一致
4. “好推理”难以在中间评估
MCTS 需要价值函数 V(s) 对中间状态打分:
- 围棋中有明确的优势判断(当前局面谁好)
- 推理的中间步骤很难判断”好不好”——一个看似错误的中间步骤可能导致正确结论,反过来也可能
- DeepSeek-R1 和 Kimi k1.5 都选择只在最终答案上给予奖励,因为中间步骤的监督信号不可靠
5. 自验证替代了搜索
最终成功的推理模型采用了一个更简单的策略:让模型自己生成一个完整的推理链,然后让模型自己验证。这比显式树搜索更有效,因为:
- 模型在单一连贯的上下文中进行推理和验证,保持了语义一致性
- 自验证(self-verification)是 emergent 行为(R1-Zero 中涌现了 aha moment 和 self-reflection)
- 成本远低于多分支搜索
一个框架性解释
可以将问题这样理解:
- MCTS 适用于”外部搜索”(搜索空间在模型外部,如围棋盘)
- LLM 推理需要的是”内部搜索”(搜索空间在模型的 token 分布中,隐式地进行)
- LLM 的 chain-of-thought 本质上就是将隐式搜索线性化——模型在思考过程中已经在进行”隐式 beam search”,只是这个过程被压缩进了 token-by-token 的自回归生成中
- 显式 MCTS 试图重新外部化这个已经内部化的搜索过程,引入的额外开销远大于收益
从失败中得到的洞察
MCTS 在 LLM 推理中的失败并不是搜索本身的失败——它告诉我们:
- LLM 的内部机制已经是隐式搜索:Transformer 的前向过程本质上在做某种形式的隐式检索和推理,显式搜索可能是在”重复劳动”
- 让模型学会自己思考 > 为模型设计搜索策略:这是 DeepSeek-R1 和 o1 的核心哲学
- 不要将经典 AI 的方法论直接移植到 LLM:LLM 有自己的动力学,需要对问题和方法进行重新理解
与已有 Wiki 的连接
- 关联概念:Chain-of-Thought 思维链、推理模型与强化学习、GRPO 分组相对策略优化
- 关联比较:推理增强方法比较
- 关联实体:DeepSeek 系列模型