1. 为什么需要推理模式?
- LLM 以预测为基础,推导过程如果隐式进行,容易累积误差。
- 目的: 写出思考过程,减少累积误差。
2. CoT(Chain of Thought)
定义: 让模型先给出推理步骤,再给结论,即“让我们一步步思考”。
Zero-Shot CoT 与 Few-Shot CoT 对比
| Zero-Shot CoT | Few-Shot CoT | |
|---|---|---|
| 做法 | 加一句“让我们一步步思考” | 给出完整推理示例,让 LLM 模仿 |
| 优点(Adv) | 零示例成本、即插即用 | 稳定,适合格式固定的问题 |
| 缺点(Dis) | 推理格式与深度自由发挥,不稳定 | 需要高质量示例,占用 Token |
CoT 局限: 纯文字推理,无法与外部世界交互。
3. ReAct
从 CoT 到 ReAct
- CoT:纯推理,缺少真实数据,容易产生幻觉。✗
- Act-only:只行动,行动之间缺少推理路径。✗
- ReAct:将推理和行动交织在一起。✓
ReAct 存在的问题
- 循环漂移: 历史信息可能把 LLM 的注意力从原始目标拉远。
- 错误传播: 前面发生错误后,可能沿后续步骤继续传播。
4. Plan-and-Execute
为应对 ReAct 的问题,将规划和执行分开。
- Planner:只负责做规划。
- Executor:执行规划,可使用 ReAct。
flowchart LR
P["Planner:只负责规划"] --> L["步骤计划"]
L --> E["Executor:执行计划"]
E --> R["可使用 ReAct"]
模式选用
| 模式 | 特点 | 适合任务 |
|---|---|---|
| ReAct | 灵活,根据当前信息做决策 | 任务边界不明确 |
| Plan-and-Execute | 有全局规划,不容易跑偏 | 目标明确,需要多步骤协作完成 |