【小目标】
这一节点回答:怎么让模型基于已知一步步推出结论,而非只靠训练记忆? 也就是推理增强的几大范式——CoT、检索增强推理、图推理。
这里最关键的一句判断:推理不是"模型更聪明了",而是"用对了方法,让模型把已有的能力发挥出来"。 CoT、检索增强、图推理,本质上都是在"引导"模型更好地用它已有的知识和能力,而不是给它增加新能力。
对做产品的人来说,这一层直接关系到你对复杂问题的处理方式——是让模型"直接给答案"(容易错),还是让模型"先想一步/先查一步再给答案"(更稳但更慢更贵)。这是效果和成本之间的重要权衡。
【方法论】
一句话结论:推理增强有三大范式——CoT(让模型多想一步)、检索增强推理(边想边查)、图推理(沿关系多跳)。越复杂的问题,越需要多步推理,但代价是更高的延迟和成本。
推理增强范式(从简单到复杂)
① CoT(链式思考)—— "先想一步再说",数学/逻辑任务显著涨效果
② 检索增强推理(ReAct / RAG-driven)—— "边想边查",推理与检索交替进行
③ 图推理(GraphRAG 等)—— 沿图谱关系多跳推理,回答跨实体复杂问题
三种范式逐个讲:
① CoT(Chain-of-Thought,链式思考)—— "先想一步再说"
- 让模型"先输出中间推理步骤,再给答案",而不是直接给最终答案
- 为什么有效:复杂问题一步到位容易错,拆成多步就相当于让模型"一步步想",每一步都简单,加起来就能解决复杂问题
- 怎么用:
- 提示词里加"请一步步思考"或"Let's think step by step"
- 或者给 few-shot 示例,展示"问题 → 推理步骤 → 答案"的格式
- 效果:数学题、逻辑题、多步推理任务上效果提升明显
- 局限:
- 增加输出长度(费 token、费时间)
- 中间步骤可能也会错(累积错误)——一步错,步步错
- 主要靠模型训练时学到的知识,还是会有幻觉
② 检索增强推理(ReAct / RAG-driven)—— "边想边查"
- 推理(Thought)和检索/调用工具(Action)交替进行:想一步 → 查一下 → 基于查到的结果再想 → 再查……直到得出结论
- ReAct 范式(Reasoning + Acting):Thought → Action → Observation → Thought → Action → … → Answer
- 为什么有效:
- 把外部知识接进来,不依赖模型训练时的记忆——缓解静态知识与幻觉
- 每一步都有依据,答案更可靠
- 代价:
- 更多延迟与成本:多步推理 + 多次检索/工具调用,比单轮贵得多、慢得多
- 多步可能累积错误——第一步检索错了,后面全跑偏
- 要设步数上限,不然可能无限循环
③ 图推理(Graph Reasoning / GraphRAG 等)—— "沿关系多跳"
- 沿着知识图谱的关系多跳推理,回答跨实体的复杂问题
- 例子:"张三的同事的部门经理是谁?" → 张三 → 同事 → 部门 → 经理(三跳)
- GraphRAG 是"图检索 + 推理"的结合:先把文档建成图谱(检索侧,见 3.1.2),再沿图谱关系做综合推理得出答案
- 为什么有效:图谱关系是精确的,多跳推理路径可追溯、可解释;全局综合类问题("整份文档讲了哪几个主题")比纯向量检索效果好
- 局限:
- 需要知识图谱作为基础(可自动抽取,但质量需校验)
- 图谱覆盖不到的地方就推不了
- 多跳越多,计算量越大、可能引入的噪声也越多
关键注意(代价与边界):
- 多步推理 ≠ 一定更准:步数多了可能累积错误,有时候一步到位反而更准
- 延迟 × 成本 × 效果 的三角权衡:要更准的答案,就要花更多时间和钱
- 别只图"更会想",要配评测回归:加了 CoT / ReAct 之后,效果有没有提升、成本增加了多少,要用数据说话
- 设护栏:步数上限、超时机制、置信度低时转人工——防止"想个没完"或"越想越偏"
【知识点】
- 三大推理增强范式:CoT(多想一步)、检索增强推理(边想边查)、图推理(沿关系多跳)。
- CoT = 让模型一步步想:数学/逻辑题效果好,但增加 token 和延迟,且可能累积错误。
- ReAct = 推理 + 行动交替:边想边查,接入外部知识,缓解幻觉,但更贵更慢。
- 图推理 = 沿图谱多跳:精确、可解释,但需要知识图谱,构建成本高。
- 多步推理有代价:延迟更高、成本更高、可能累积错误。不是步数越多越好,够用就行。
- 效果要用评测验证:加了推理增强之后,效果提升了多少、成本增加了多少,要用数据说话,不能拍脑袋。
- 推理落成 Agent:ReAct 是 Agent 系统工程的核心范式之一,工程落地见阶段③第五章。
【名词卡】
| 名词 | 一句话解释 |
|---|---|
| Reasoning / 推理 | 模型基于已知知识/检索结果一步步推导出结论的能力 |
| CoT / Chain-of-Thought / 链式思考 | 让模型先输出中间推理步骤再给答案的提示方式,数学/逻辑任务显著涨效果 |
| ReAct / Reasoning + Acting / 推理+行动 | 让模型"推理与调用工具交替进行"的范式,接外部信息再推,是 Agent 的基础 |
| GraphRAG / 图增强检索生成 | 在 RAG 基础上引入知识图谱/图检索,先把文档建成图谱再沿关系召回与综合,支撑多跳与全局答案 |
| Graph Reasoning / 图推理 | 沿着图谱关系多跳推理、回答跨实体复杂问题的方法 |
| Thought / 思考 | ReAct 范式中模型的"推理步骤",决定下一步该做什么 |
| Observation / 观察 | ReAct 范式中工具/检索返回的结果,供模型下一步推理使用 |
| Multi-hop Reasoning / 多跳推理 | 需要沿关系/逻辑推多步才能得出答案的推理类型 |
| Error Accumulation / 累积错误 | 多步推理中,前面的步骤错了,后面的步骤跟着错的现象 |
易混对比:
- CoT vs ReAct:CoT 只"想"(用模型内部知识);ReAct"想+查/调用交替"(接外部知识)
- 检索 vs 推理:检索"捞已知片段";推理"用已知导出新结论"
- RAG 原理(F2.6)vs RAG 工程(F3.4):讲"为什么能"vs 讲"怎么搭出来"
【练一练】
目标:亲手感受 CoT 和直接回答的区别——用同一个数学/逻辑题,看模型"一步步想"和"直接给答案"的准确率差异。
实验:找一道需要 2–3 步推理的逻辑题或数学题(比如下面这道),分别用 A/B 两种方式问模型:
题目:
"一个书架有三层。第一层的书比第二层多 5 本,第三层的书是第二层的 2 倍。如果三层一共有 65 本书,请问第二层有多少本书?"
A 组(直接回答):
提示词:"请回答:[上面的题目] 直接给出答案。"
- 记录:模型答对了吗?用了几步?
B 组(CoT):
提示词:"请回答:[上面的题目] 请一步步思考,先列出已知条件,再列方程,最后求解。"
- 记录:模型答对了吗?中间步骤有没有错?
多做几道试试(如果有时间):
- 再找 2–3 道不同类型的逻辑题/数学题,重复 A/B 对比
- 统计:A 组的正确率?B 组的正确率?CoT 有没有提升?
思考题:
- 为什么"一步步想"能提升准确率?你觉得原因是什么?
- 如果你的产品是"小学数学作业辅导",你会默认用 CoT 吗?代价是什么?
- 有没有什么场景下,CoT 反而可能更糟?(提示:累积错误)