Appearance
提示策略对比
提示工程(Prompt Engineering)是与 LLM 交互的核心技能。从简单的 Zero-shot 到复杂的 Tree of Thoughts,不同策略在效果、成本和复杂度上差异显著。本页对比主流提示策略的特点与选型指南。
对比概览
| 策略 | 复杂度 | 成本 | 效果提升 | 最佳场景 | 模型要求 |
|---|---|---|---|---|---|
| Zero-shot | 极低 | 最低 | 基线 | 简单任务、快速原型 | 任意 |
| Few-shot | 低 | 低 | +10-30% | 格式控制、任务示例 | 任意 |
| Chain-of-Thought | 中 | 中 | +20-50% | 数学、逻辑、推理 | ≥ 20B |
| Self-Consistency | 中 | 高 (N 次采样) | +5-15% | 高风险推理 | ≥ 20B |
| ReAct | 中 | 中 | +30-60% | Agent、工具调用 | ≥ 20B |
| Tree of Thoughts | 高 | 高 | +40-80% | 复杂规划、创意 | ≥ 70B |
| Plan-and-Solve | 中 | 中 | +20-40% | 多步骤任务 | ≥ 20B |
| DSPy | 高 | 中 | +10-30% | 系统化提示优化 | 任意 |
效果提升为相对于 Zero-shot 的示意性估计,实际效果依赖任务和模型。
策略详解
Zero-shot — 基线
定义:直接提问,不提供任何示例或上下文。
问题:计算 15 × 27
回答:405优势:简单、快速、无额外 token 消耗 劣势:对复杂任务效果有限 适用:简单问答、文本生成、分类任务
Few-shot — 示例驱动
定义:在提示中提供 1-10 个任务示例。
将以下文本转换为 JSON:
文本:订单号 12345,用户张三,金额 99.99 元
输出:{"order_id": "12345", "user": "张三", "amount": 99.99}
文本:订单号 67890,用户李四,金额 199.50 元
输出:优势:格式控制精准、无需训练 劣势:示例占用上下文窗口、对复杂推理帮助有限 适用:格式转换、分类任务、风格模仿
Chain-of-Thought (CoT) — 思维链
定义:引导模型逐步推理,输出中间思维过程。
问题:一个园子有 15 棵苹果树。每棵树产 8 个苹果。如果已经摘了 47 个,还剩多少个?
让我们逐步思考:
1. 总产量 = 15 × 8 = 120 个
2. 已摘 47 个
3. 剩余 = 120 - 47 = 73 个
答案:73 个优势:显著提升数学和逻辑推理能力 劣势:增加 token 消耗、延迟 变体:Zero-shot CoT("让我们逐步思考")、Few-shot CoT 适用:数学、逻辑、代码、复杂问题求解
Self-Consistency — 自我一致性
定义:对同一问题进行多次 CoT 采样,选择最常见的答案。
采样 1: 推理... 答案:A
采样 2: 推理... 答案:A
采样 3: 推理... 答案:B
采样 4: 推理... 答案:A
采样 5: 推理... 答案:A
最终答案:A(出现 4/5 次)优势:降低随机性错误、提高难题准确率 劣势:成本增加 N 倍(N 次采样) 适用:高风险推理、数学竞赛、关键决策
ReAct — 推理 + 行动
定义:交替进行推理(Reasoning)和行动(Action),形成思维-行动循环。
问题:查询北京明天的天气
思绹 1:我需要查询天气信息
行动 1:调用 weather_api(city="北京", date="明天")
观察 1:{温度: 25°C, 天气: 晴}
思绹 2:已获取天气信息,可以回答用户
答案:北京明天天气晴朗,温度约 25°C优势:将推理与工具调用结合,适合 Agent 架构 劣势:需要工具集成、循环可能陷入死循环 适用:Agent、外部工具调用、多步骤任务
Tree of Thoughts (ToT) — 思维树
定义:在每个推理步骤探索多个可能性,形成树状搜索空间。
问题:24 点游戏,用 4、6、8、3 得出 24
步骤 1:
分支 A: 4 + 6 = 10
分支 B: 4 × 6 = 24 → 再用 8、3 得出 24? 否
分支 C: 8 - 3 = 5
步骤 2 (从分支 A):
10 + 8 = 18, 18 + 3 = 21 ×
10 × 8 = 80, 80 / 3 ≈ 26.7 ×
10 - 3 = 7, 7 × 8 = 56 ×
步骤 2 (从分支 C):
5 × 4 = 20, 20 + 6 = 26 ×
5 + 4 = 9, 9 × 6 = 54 ×
6 / (1 - 3/4) = 24 ✓优势:处理需要探索和回溯的复杂问题 劣势:成本极高(指数级 token 增长)、需要外部评估函数 适用:创意写作、游戏、规划、数学证明
Plan-and-Solve — 规划解决
定义:先制定解决方案,再逐步执行。
问题:写一篇关于人工智能的短文
规划:
1. 介绍 AI 的定义和历史
2. 讨论当前主要应用领域
3. 分析潜在风险和挑战
4. 展望未来发展方向
5. 总结
执行:[按规划逐步生成]优势:结构化输出、可控性强 劣势:需要模型具备规划能力 适用:文章写作、项目规划、复杂任务分解
决策矩阵
| 任务类型 | 推荐策略 | 理由 |
|---|---|---|
| 简单问答 | Zero-shot | 最快、最便宜 |
| 格式控制 | Few-shot | 示例驱动精确格式 |
| 数学/逻辑 | CoT | 逐步推理显著提升 |
| 外部工具调用 | ReAct | 推理 + 行动循环 |
| 高风险决策 | Self-Consistency | 多次采样降低随机性 |
| 创意/规划 | ToT | 多路径探索 |
| 长文生成 | Plan-and-Solve | 结构化控制 |
| 系统化优化 | DSPy | 可编程优化框架 |
策略组合
生产环境中常见的组合模式:
复杂 Agent 任务:
Plan-and-Solve → 制定计划
ReAct → 执行每个步骤
Self-Consistency → 验证关键决策
高风险推理:
CoT → 逐步推理
Self-Consistency → 多次验证与模型能力的关系
| 策略 | 小模型 (< 7B) | 中等模型 (7-70B) | 大模型 (> 70B) |
|---|---|---|---|
| Zero-shot | ✅ | ✅ | ✅ |
| Few-shot | ✅ | ✅ | ✅ |
| CoT | ⚠️ 效果有限 | ✅ | ✅ |
| ReAct | ❌ | ✅ | ✅ |
| ToT | ❌ | ⚠️ | ✅ |
| Plan-and-Solve | ⚠️ | ✅ | ✅ |
关键洞察:CoT 和 ReAct 等策略需要模型具备足够的推理能力,小模型可能无法有效执行。
趋势观察
自动化提示优化
DSPy 等框架正在将提示工程从"手工艺术"转变为"系统工程": n
- 将提示策略参数化
- 自动搜索最优示例和指示
- 端到端优化 pipeline
推理模型的影响
OpenAI o1/o3、DeepSeek-R1 等推理模型内建了 CoT 能力: n
- 无需显式编写 CoT 提示
- 模型自动进行多步推理
- 但外部策略(如 ReAct、ToT)仍有价值
相关页面
- Prompt Engineering — 提示工程技术详解
- Chain-of-Thought & Reasoning — Chain-of-Thought 推理技术
- AI Agents — AI Agent 架构与实践
- Function Calling / Tool Use — 函数调用技术
- Test-Time Compute / Inference-Time Scaling — 测试时计算与推理模型
- DSPy — DSPy 声明式编程框架
参考来源
Brown et al. (2020). "Language Models are Few-Shot Learners."
Wei et al. (2022). "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models."
Wang et al. (2023). "Self-Consistency Improves Chain of Thought Reasoning in Language Models."
Yao et al. (2023). "ReAct: Synergizing Reasoning and Acting in Language Models."
Yao et al. (2023). "Tree of Thoughts: Deliberate Problem Solving with Large Language Models."
Khattab et al. (2023). "DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines."
Large Language Model (LLM) — 大语言模型的核心定义、技术原理与发展历程