请谈谈目前有哪些主流方法可以赋予LLM规划能力?(例如CoT, ToT, GoT)
1️⃣ 考察意图
面试官想看你是否真正理解 LLM 规划能力的演进脉络,而非只背了 CoT、ToT 几个缩写。考察类型是系统设计 + 前沿对比。刁钻点在于:你是否清楚每种方法解决了前一种的什么缺陷,以及它们在不同任务(数学推理 vs. 代码生成 vs. 多步问答)下的适用边界。答好了能展示你对 LLM 推理范式的深度理解,以及工程落地的取舍判断力——这是 P1 级别区分“会用 API”和“懂原理”的关键。
2️⃣ 标准答
LLM 规划能力的核心挑战是:原生自回归模型缺乏显式的搜索和回溯机制,容易在长链推理中“走偏”或“遗忘”。主流方法可以按“推理结构复杂度”分为三个梯队:
1. Chain-of-Thought (CoT) —— 线性链式推理
- 原理:在 prompt 中插入“Let’s think step by step”,引导模型生成中间推理步骤(如数学题的逐步计算)。
- 变体:Zero-shot CoT(直接加触发词)、Few-shot CoT(给 2-3 个带步骤的示例)。
- 工程取舍:CoT 提升了复杂推理准确率(GSM8K 上从 18% 到 58%),但没有显式验证机制——模型可能生成看似合理但错误的步骤,且错误会累积。实际落地坑:在长链(>10 步)任务中,CoT 的准确率会急剧下降,因为模型“忘记”了早期步骤。
- 解法:结合 Self-Consistency(采样多条 CoT 路径后投票),牺牲 3-5 倍推理时间换取 5-10% 准确率提升。
2. Tree-of-Thoughts (ToT) —— 树状搜索推理
- 原理:在每一步生成多个候选推理分支(如 3-5 个),用评估函数(如 LLM 自评“这个分支有 80% 概率正确”)打分,再用 BFS/DFS 搜索最优路径。
- 关键组件:思维生成器(propose prompt)、状态评估器(value prompt)、搜索算法(BFS 宽度 w=3,深度 d=5)。
- 工程取舍:ToT 比 CoT 更鲁棒(24 点游戏从 4% 到 74%),但推理成本爆炸——每个节点都要调用 LLM 评估,复杂度 O(b^d)。实际落地坑:评估函数不稳定,LLM 自评分数方差大(同一分支两次打分可能差 30%)。
- 解法:用更小的模型(如 7B)做评估,大模型(如 70B)做生成;或引入启发式剪枝(如设定置信度阈值 <0.3 直接丢弃)。
3. Graph-of-Thoughts (GoT) —— 图结构推理
- 原理:允许推理步骤形成有向图,支持合并(将两个子结论合成)、回溯(回退到前序节点)、循环(迭代优化)。本质是把推理过程建模为 DAG。
- 关键论文:Besta et al. (2023) “Graph of Thoughts: Solving Elaborate Problems with Large Language Models”。
- 工程取舍:GoT 灵活性最高(可处理排序合并、文档摘要等任务),但状态管理复杂度陡增——需要维护图拓扑、节点依赖、剪枝策略。实际落地坑:图结构容易膨胀到不可控,需要设计合理的“思维合并”规则(如相似度 >0.8 才合并)。
- 解法:用固定窗口大小的图(如最多 50 个节点),超限后按分数淘汰最差节点。
4. 其他重要方法
- ReAct:推理 + 行动循环,让 LLM 调用外部工具(搜索、计算器)来验证中间结果。适合需要外部知识验证的任务(如多步问答 HotpotQA)。
- Plan-and-Solve:先让 LLM 生成完整计划(如“第一步查资料,第二步计算,第三步验证”),再逐步执行。适合长流程任务(如代码生成)。
- Self-Ask:将复杂问题分解为子问题,逐个回答后组合。适合多跳推理(如“爱因斯坦的出生地是哪个国家?”)。
总结:选型要看任务特性——短链推理用 CoT(成本低),需要搜索的博弈任务用 ToT(准确率高),需要合并多源信息用 GoT(灵活),需要外部验证用 ReAct(实用)。实际工程中常组合使用,如 CoT + Self-Consistency 作为基线,ToT 作为高精度场景的备选。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从推理结构复杂度、成本、适用场景三个层面回答。第一层是 CoT,线性链式推理,成本最低但缺乏回溯;第二层是 ToT,树状搜索,通过 BFS/DFS 和评估函数提升鲁棒性,但推理成本指数增长;第三层是 GoT,图结构,支持合并和回溯,灵活性最高但状态管理复杂。其他还有 ReAct 和 Plan-and-Solve。总结一句:选型取决于任务对准确率和成本的容忍度,没有银弹。”
4️⃣ 高频追问 & 应对
追问 1:ToT 的评估函数怎么设计?用 LLM 自评会不会有偏差?
评估函数有两种设计:一是用 LLM 直接打分(如“给这个分支的合理性打分 1-10”),二是用分类 prompt(如“这个分支正确吗?Yes/No”)。偏差确实存在——LLM 倾向于给高置信度分数(如 8-10 分集中),导致区分度不足。解法:① 用对比评估(让 LLM 比较两个分支哪个更好),② 引入外部验证(如数学题用计算器验证中间结果),③ 用更小的模型(如 7B)做评估,大模型做生成,降低评估成本。
追问 2:GoT 的图结构会不会导致推理路径无限膨胀?怎么控制?
会。实际工程中必须加约束:① 固定图大小(如最多 50 个节点),超限后按分数淘汰最差节点;② 设置合并阈值(如两个节点语义相似度 >0.8 才合并),避免冗余;③ 限制回溯深度(如最多回溯 3 步),防止无限循环。另外,GoT 更适合“信息聚合”类任务(如文档摘要、排序合并),对“线性推理”任务(如数学题)收益不大,不如直接用 ToT。
追问 3:CoT 和 ReAct 有什么区别?什么时候用 ReAct 而不是 CoT?
CoT 是纯内化推理,模型在隐空间里思考,不依赖外部信息;ReAct 是推理 + 行动循环,模型可以调用工具(搜索、计算器)来获取外部知识或验证中间结果。选型原则:如果任务依赖外部知识(如“2024 年诺贝尔物理学奖得主是谁?他有什么贡献?”),用 ReAct;如果任务可以靠模型内部知识解决(如“鸡兔同笼”问题),用 CoT 更高效。实际中 ReAct 的 token 消耗是 CoT 的 2-3 倍,但准确率在知识密集型任务上高 10-20%。
5️⃣ 避坑 · 常见错误答法
- ❌ 只背概念:“CoT 是思维链,ToT 是思维树,GoT 是思维图。” → ✅ 要讲清楚每种方法解决了前一种的什么缺陷(如 CoT 无回溯 → ToT 引入搜索 → GoT 支持合并),并给出具体数字(如 GSM8K 准确率提升幅度)。
- ❌ 说“ToT 一定比 CoT 好”。 → ✅ 要指出 trade-off:ToT 准确率高但成本高,短链推理用 CoT 更划算。面试官想看你有没有工程取舍意识。
- ❌ 忽略评估函数和搜索算法的具体设计。 → ✅ 要提到 BFS/DFS、评估 prompt 设计、剪枝策略等细节,证明你真正实现过或深入研究过。
6️⃣ 简历呼应
- 如果你有 RAG 项目:从“ReAct 在 RAG 中的应用”切入,讲如何用推理+搜索循环解决多跳问答,对比纯 RAG 的准确率提升(如 HotpotQA 上从 40% 到 60%)。
- 如果你只做过传统 NLP:用“搜索算法类比”迁移——CoT 像贪婪解码,ToT 像束搜索(beam search),GoT 像动态规划。强调你对推理结构的理解可以复用。
- 如果你是校招无项目:聚焦“在 GSM8K 上复现 CoT 和 ToT”的 demo,讲清楚评估函数设计、搜索宽度/深度对性能的影响,以及推理时间对比。展示动手能力和分析能力。
- Wei et al. (2022) “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”
- Yao et al. (2023) “Tree of Thoughts: Deliberate Problem Solving with Large Language Models”
- Besta et al. (2023) “Graph of Thoughts: Solving Elaborate Problems with Large Language Models”
- Yao et al. (2022) “ReAct: Synergizing Reasoning and Acting in Language Models”
- Wang et al. (2022) “Self-Consistency Improves Chain of Thought Reasoning in Language Models”