提示词工程进阶:从 Chain-of-Thought 到 Tree-of-Thought
AI 导读
提示词工程进阶:从 Chain-of-Thought 到 Tree-of-Thought 作者:Maurice | 灵阙学院 提示词工程的三个阶段 阶段一:直接提示(2022 前) 直接向模型提问,依赖模型的"直觉": Q: 小明有 15 个苹果,给了小红 7 个,又买了 3 个,现在有几个? A: 11 个 问题:对于稍复杂的推理任务,直接提示的准确率显著下降。...
提示词工程进阶:从 Chain-of-Thought 到 Tree-of-Thought
作者:Maurice | 灵阙学院
提示词工程的三个阶段
阶段一:直接提示(2022 前)
直接向模型提问,依赖模型的"直觉":
Q: 小明有 15 个苹果,给了小红 7 个,又买了 3 个,现在有几个?
A: 11 个
问题:对于稍复杂的推理任务,直接提示的准确率显著下降。
阶段二:引导式推理(2022-2024)
通过提示词引导模型逐步推理:
- Chain-of-Thought(思维链)
- Few-shot CoT(少样本思维链)
- Zero-shot CoT("Let's think step by step")
阶段三:结构化搜索(2024-)
将推理过程组织为树/图结构,系统化地探索解空间:
- Tree-of-Thought(思维树)
- Graph-of-Thought(思维图)
- Self-Consistency(自一致性)
Chain-of-Thought(思维链)
核心思想
Google Brain 在 2022 年提出 CoT:让模型在给出最终答案之前,显式输出中间推理步骤。
三种用法
Zero-shot CoT(最简单):
Q: [问题]
A: Let's think step by step.
(或中文:让我们一步一步地思考。)
Few-shot CoT(更可控):
Q: 一家餐厅有 23 个座位,其中 8 个已被占用。接下来又来了 5 个人,还剩几个空位?
A: 起初有 23 个座位。已被占用 8 个,所以空位是 23 - 8 = 15 个。
又来了 5 个人,所以空位变为 15 - 5 = 10 个。
答案是 10 个空位。
Q: [新问题]
A: [模型会模仿示例的推理格式]
Self-Ask CoT(分治策略):
Q: 马斯克创办的公司中,哪家公司最先达到 1000 亿美元市值?
Follow up: 马斯克创办了哪些公司?
Intermediate answer: SpaceX、Tesla、Neuralink、xAI 等。
Follow up: 这些公司分别何时达到 1000 亿美元市值?
Intermediate answer: Tesla 于 2020 年 6 月首次达到 1000 亿美元市值。SpaceX 于 2024 年达到...
So the final answer is: Tesla
CoT 的局限
- 路径依赖:一旦早期步骤出错,后续推理全部偏移
- 单线程:只探索一条推理路径,可能错过更优解
- 不可回溯:无法在中间步骤回退重来
- 长度爆炸:复杂问题的推理链可能非常长
Tree-of-Thought(思维树)
核心改进
ToT 由 Princeton 和 Google DeepMind 于 2023 年提出,将 CoT 的线性推理升级为树状搜索:
CoT(线性):
State_0 → State_1 → State_2 → State_3 → Answer
ToT(树状):
┌→ State_1a → State_2a → Answer_a (score: 0.8)
State_0 → Branch ──┤
├→ State_1b → State_2b → Answer_b (score: 0.3)
│ ↑ 剪枝
└→ State_1c → State_2c → Answer_c (score: 0.9) ← 最优
三个关键组件
1. 思维生成器(Thought Generator)
在每个节点生成多个可能的下一步:
当前状态:公司去年收入 1000 万,增长率 20%
生成候选思路:
- 思路A:按复合增长率计算未来 3 年收入
- 思路B:考虑市场饱和的增长率递减模型
- 思路C:对标同行业公司调整增长假设
2. 状态评估器(State Evaluator)
评估每个中间状态的"前景":
# 评估策略:让 LLM 评分
prompt = f"""
评估以下推理步骤的质量(1-10分):
问题:{question}
当前推理:{current_reasoning}
请从以下维度评分:
1. 逻辑正确性
2. 与问题的相关性
3. 是否接近最终答案
总分:
"""
3. 搜索算法(Search Algorithm)
- BFS(广度优先):逐层展开,适合浅搜索
- DFS(深度优先):深入一条路径,适合深搜索
- Beam Search:保留 Top-K 分支,平衡广度和深度
适用场景
ToT 在以下场景显著优于 CoT:
- 创意任务:写诗、编剧(需要探索多种表达)
- 规划问题:旅行规划、项目排期(需要评估多种方案)
- 数学推理:复杂数学题(需要尝试不同解题路径)
- 博弈推理:需要考虑对手策略的场景
代价
- 成本高:每个节点需要多次 LLM 调用(生成 + 评估)
- 延迟高:搜索过程比单次生成慢 5-20 倍
- 工程复杂:需要实现搜索逻辑和状态管理
Graph-of-Thought(思维图)
超越树结构
GoT 将推理组织为有向图(DAG),允许:
- 聚合:多个推理路径合并为一个结论
- 细化:对某个中间结果做进一步改进
- 循环:在不满足质量要求时回到之前的节点
┌→ Thought_A ──┐
Start ──┤ ├→ Merge → Refine → Answer
└→ Thought_B ──┘ ↑
│ │
└── Loop ─────┘(若质量不够)
与 ToT 的区别
| 维度 | ToT | GoT |
|---|---|---|
| 结构 | 树(无环) | 有向无环图(DAG) |
| 聚合 | 不支持 | 支持多路合并 |
| 细化 | 不支持 | 支持迭代改进 |
| 适用 | 探索型任务 | 综合型任务 |
Self-Consistency(自一致性)
核心思想
对同一个问题,多次使用 CoT 生成不同的推理路径,然后投票选出最一致的答案。
Run 1: 15 - 7 + 3 = 11 → 答案: 11
Run 2: 15 - 7 = 8, 8 + 3 = 11 → 答案: 11
Run 3: 15 + 3 = 18, 18 - 7 = 11 → 答案: 11
Run 4: 15 - 7 + 3 = 11 → 答案: 11
Run 5: 15 + 3 - 7 = 11 → 答案: 11
投票结果: 11 (5/5) → 最终答案: 11
参数选择
- 采样次数(n):通常 5-20 次,更多不一定更好
- 温度(temperature):0.5-0.8,需要一定随机性来产生不同路径
- 投票策略:简单多数 or 加权投票(置信度高的路径权重更大)
与 ToT 的互补
- Self-Consistency 适合有明确答案的问题(数学、事实)
- ToT 适合开放性问题(规划、创意)
- 可以组合使用:ToT 生成候选 + Self-Consistency 选最优
推理模型时代的提示词工程
OpenAI o1/o3 和 Claude Extended Thinking
推理模型(Reasoning Models)在模型内部实现了类似 ToT 的搜索:
- 模型自动进行多步推理
- 不需要用户在提示词中写"让我们一步一步思考"
- 思考过程可能被隐藏(o1)或显示(Claude Extended Thinking)
新的提示词最佳实践
对于推理模型,提示词工程的重点从"如何让模型思考"变为"如何让模型理解需求":
- 清晰的目标:明确最终输出的格式和内容要求
- 完整的约束:列出所有必须满足的条件
- 相关上下文:提供解决问题所需的所有背景信息
- 少用模板:不要过度约束推理路径,让模型自主探索
旧方式(引导推理):
请一步步分析以下合同的合规风险:
Step 1: 识别合同类型
Step 2: 列出适用法规
Step 3: 逐条检查合规性
Step 4: 输出风险清单
新方式(定义目标):
请分析以下合同的合规风险。要求:
- 覆盖《合同法》《税法》《数据安全法》相关条款
- 风险按严重程度排序(高/中/低)
- 每个风险附带修改建议和法规引用
- 输出格式:JSON,含 risk_id, severity, description, regulation, suggestion
实践决策树
选择哪种提示策略:
任务是否需要推理?
├── 否 → 直接提示
└── 是 → 使用推理模型?
├── 是 → 定义清晰目标 + 约束(让模型自主推理)
└── 否 → 任务复杂度?
├── 低(1-3步)→ Zero-shot CoT
├── 中(3-8步)→ Few-shot CoT + Self-Consistency
└── 高(>8步/多路径)→ ToT 或 GoT
Maurice | maurice_wen@proton.me