1339 字
7 分钟
CoT、ToT 与 GoT:让模型展开推理

为什么需要推理结构#

对简单问题,模型直接给答案就够了;对数学、逻辑、多跳问答等复杂问题,一步到位的生成容易跳步、算错或遗漏约束。把推理过程展开,让模型先写中间步骤再给结论,通常能显著提高正确率。

这类方法不改变模型参数,而是在推理时组织生成过程。区别在于:推理过程是线性的一条链、一棵可回溯的树,还是一张可合并的图。

思维链#

思维链(Chain of Thought, CoT)让模型在给出答案前,先写出逐步推理:

问题:小明有 5 个苹果,又买了 3 袋,每袋 4 个,他共有多少个?
推理:原来有 5 个;3 袋每袋 4 个,共 3×4=12 个;合计 5+12=17 个。
答案:17

Few-shot CoT#

在提示中给出几个“问题—推理过程—答案”的示例,模型会模仿示例的推理格式。示例通常包含算术、常识或逻辑推理步骤。

Zero-shot CoT#

不提供示例,只在问题后加一句:

让我们一步一步地思考。

模型就会自行展开推理。它实现简单,但生成的步骤可能冗余或偏离方向。

Auto-CoT#

零样本 CoT 的中间步骤可能出错。Auto-CoT 先对问题聚类,在每个簇中选代表性问题,用零样本 CoT 生成推理链,再过滤或修正,作为少样本示例。这样既能自动构造示例,又能覆盖不同类型的任务。

自一致性#

同一个问题采样多条推理链,最后对答案做多数投票。不同推理路径可能在不同位置出错,但正确答案往往在多数路径中一致出现。自一致性用更多的推理计算换取稳定性,适合答案可比较的封闭任务。

思维树#

思维链本质上是一条贪心路径:每一步只保留当前生成的一个想法,走错也很难回头。思维树(Tree of Thoughts, ToT)把推理组织成一棵树:

  1. 分解:把问题拆成多个中间“思维”步骤;
  2. 生成:每个节点产生若干候选下一步;
  3. 评估:让模型或规则给候选打分;
  4. 搜索:用广度优先或深度优先遍历,保留高分分支,剪掉低分分支;
  5. 回溯:某条路径走不通时退回上层,换一个分支。

以 24 点游戏为例,每个中间状态是一组数字和已有运算,模型生成若干下一步操作,评估哪些状态更接近 24,再用搜索找到解。相比 CoT,ToT 能探索更多路径,代价是更多的模型调用和更长的推理时间。

思维图#

思维图(Graph of Thoughts, GoT)进一步把推理组织成有向图:

  • 节点是想法或中间结果;
  • 边表示依赖、组合或改进;
  • 一个节点可以有多个父节点,即把多个中间结论合并成新结论;
  • 可以对想法做聚合、排序、精炼,而不只是沿树分叉。

例如多文档问答中,不同文档的结论可以先分别形成节点,再合并、比较、纠正。GoT 更像一个组织和引导思维的框架,而不是某一种固定的提示模板;它适合需要整合多源信息、反复修改的任务,但实现和调度更复杂。

对比#

方法结构搜索方式优点代价
CoT线性链无搜索简单、便宜一步错可能步步错
自一致性多条链采样 + 投票稳定,适合封闭答案多次采样
ToT树BFS/DFS + 剪枝可回溯,探索多路径调用次数多
GoT图依赖图 + 聚合可合并多源结论调度复杂

慢思考与测试时计算#

CoT/ToT/GoT 都属于测试时计算(test-time compute):不增加训练,而是在推理阶段投入更多计算。近年来“慢思考”模型把这一思路系统化:

  • 用结构化搜索在推理空间中探索;
  • 用自一致性或验证器筛选中间步骤;
  • 用强化学习微调推理过程,让模型学会生成更高质量的思维链;
  • 在推理时分配更多 token 给难题,简单题则快速回答。

代价是延迟和成本上升。实际系统通常按问题难度路由:简单问题直接回答,复杂问题才启用长推理。

使用建议#

  • 答案可验证:数学、代码、逻辑题最适合 CoT 和搜索;
  • 需要多源整合:GoT 式的合并结构更有优势;
  • 低延迟场景:慎用 ToT/GoT,或限制深度和分支数;
  • 评估要控制变量:比较不同推理方法时,固定模型、提示和采样预算;
  • 中间步骤未必可信:模型写出的推理链可能只是“事后解释”,需要用最终答案或外部验证器检验。

相关阅读#

CoT、ToT 与 GoT:让模型展开推理
https://biscuit0613.github.io/posts/nlp/12-02-cot-tot-got/
作者
Biscuit
发布于
2026-10-20
许可协议
CC BY-NC-SA 4.0
RAG:检索增强生成
基于大语言模型的智能体:规划、记忆与工具调用