11 Prompt 工程进阶:Few-shot 与 Chain-of-Thought
前10节总结 & 后10节展望
在前 10 节,我们已经完成了 AI 产品经理的入门阶段:
- 1--3:理解了大模型的基本概念、Token、Prompt 基础;
- 4--5:体验了本地部署与 API 调用;
- 6--8:掌握了 RAG 技术链路(Embedding + 向量数据库),让模型学会查资料;
- 9:学会了评估 AI 产品的效果;
- 10:写出了第一份 AI 产品 PRD。
可以说,这 10 节我们已经完成了从 "知道 AI 是什么" → "能跑起来一个 Demo" → "能写出产品文档" 的过程。
接下来的 第 11--20 节 ,我们进入 进阶阶段:
- 深入 Prompt 工程(Few-shot、Chain-of-Thought、模板化);
- 构建完整的 RAG 系统,并做优化(检索、向量库、评估平台);
- 体验多轮对话、流式输出、Web Demo;
- 学习如何把技术和 具体行业场景(教育、电商、金融) 结合。
👉 今天(第 11 节)是第二阶段的开篇,我们要学习的内容是 Prompt 工程进阶技巧。
为什么要学习 Prompt 工程?
在第一阶段的实验中,你可能发现:
- 有时候模型回答很棒,但有时候答得完全跑偏;
- 问题稍微复杂一点,答案就不靠谱;
- 同一个问题,不同次回答可能差别很大。
这说明,大模型的表现 高度依赖 Prompt(提示词) 。
就像和人交流,如果你说得含糊,对方可能乱猜;但如果你举例说明、逐步解释,对方往往理解得更准确。
👉 Prompt 工程就是学习"如何和模型对话",让它表现得更稳定、更符合需求。
今天我们重点看两种方法:
- Few-shot(少样本提示):通过给模型一些"示范",让它模仿;
- Chain-of-Thought(思维链提示):要求模型"逐步推理",而不是只给最终答案。
一、核心概念(零基础友好解释)
1. Zero-shot vs Few-shot
- Zero-shot(零样本):不给示例,直接问问题。
- Few-shot(少样本):先给几个示例,让模型模仿示例风格或推理方式。
2. Chain-of-Thought(思维链)
- 直译:让模型"展示推理过程"。
- 作用:尤其适合逻辑推理、数学题、复杂业务流程,可以显著提升准确率。
二、实践:对比实验
Python 示例
python
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:11434/v1", api_key="ollama")
def ask(prompt):
resp = client.chat.completions.create(
model="deepseek-r1",
messages=[{"role": "user", "content": prompt}],
temperature=0.2
)
return resp.choices[0].message.content
# Zero-shot
q1 = "小明有12个苹果,给了朋友3个,然后又买了5个,现在有多少个苹果?"
print("Zero-shot 回答:")
print(ask(q1))
# Few-shot
q2 = """示例:
Q: 小红有10个橙子,吃了2个,还剩多少?
A: 她还剩 8 个橙子。
Q: 小王有7支笔,送人2支,还剩多少?
A: 他还剩 5 支笔。
现在请回答:
Q: 小明有12个苹果,给了朋友3个,然后又买了5个,现在有多少个苹果?
A:"""
print("\nFew-shot 回答:")
print(ask(q2))
# Chain-of-Thought
q3 = """请逐步推理:
小明有12个苹果,给了朋友3个,然后又买了5个,现在有多少个苹果?"""
print("\nChain-of-Thought 回答:")
print(ask(q3))
预期结果
在学术定义中,三种方式本应区别如下:
- Zero-shot:只给结果
- Few-shot:模仿示例,风格更统一
- CoT:逐步推理,展示步骤
特别说明:为什么 DeepSeek R1 三种方式都输出了推理过程?
如果你用 DeepSeek R1 跑实验,可能会发现:
- Zero-shot / Few-shot / CoT 的回答里都有
<think>
部分; - 模型总是自动展示推理过程。
这是因为:
- DeepSeek R1 是"推理增强模型",被设计成默认生成思维链,即使用户没有要求。
- 这是它的特性,不代表 Zero-shot / Few-shot / CoT 的概念无效。
- 在代码里,你可以通过正则去掉
<think>
部分,得到更接近"标准差异"的对比结果。
👉 换句话说:概念依然正确,但模型行为会因实现不同而有所差异。
三、产品经理思考
1. 为什么 PM 要懂 Few-shot 和 CoT?
- 交互设计:决定用户是"一问一答",还是用模版(Few-shot)。
- 控制风格:通过 Few-shot 可以固定回答口吻(礼貌、专业、简洁)。
- 保证准确率:涉及逻辑推理的任务,必须要求模型展示思维链。
2. 模型行为差异要注意
-
有些模型简洁(GPT-3.5),Zero-shot 只给答案。
-
有些模型"话多"(DeepSeek R1),会自动展示推理过程。
-
在 PRD 中要写清楚:
- 是否要展示推理过程给用户?
- 是否只在后台保留(便于调试)?
- 是否需要清理
<think>
标签,让用户只看到最终答案?
3. 案例
- 教育产品:学生问数学题 → 用 CoT 提示,强制展示步骤。
- 客服机器人:用 Few-shot 保证礼貌统一。
- 企业助手 :可以保留
<think>
作为调试日志,但前端只展示结果。
四、小结
- Few-shot:通过示例提升模型模仿能力。
- Chain-of-Thought:通过逐步推理提升逻辑准确性。
- DeepSeek R1 默认输出思维链,这是它的特性,不影响我们理解概念。
- PM 角度:Prompt 工程是"产品体验的调节阀",不同模型行为差异本身也是产品设计的考量点。