day11:理解Few-shot / Chain-of-Thought 提示技巧
第一部分:核心概念解析
1. Few-shot Prompting (少样本提示)
-
是什么?
在提示词中给模型提供一个或多个具体的例子(Input -> Output),让模型"照葫芦画瓢"。
-
为什么需要它?
大模型虽然博学(Zero-shot/零样本能力强),但在处理特定格式、特定语气或复杂任务时,直接问它可能会出错或格式不统一。给它看几个例子,它能迅速学会上下文规律(In-context Learning)。
- 核心公式:
Prompt=任务说明+示例1+示例2+⋯+你的新问题
2. Chain-of-Thought (CoT, 思维链)
- 是什么?
不仅要求模型给结果,还要求模型展示推理过程。
- 为什么需要它?
对于数学题、逻辑推理或复杂分类,如果直接让模型给答案,它容易"凭直觉"瞎猜(产生幻觉)。强制它一步步推理,能大幅提高准确率。
-
两种主要形式:
-
Zero-shot CoT: 只要在结尾加一句魔法咒语:"请一步步思考 (Let's think step by step)"。
-
Few-shot CoT: 在给出的例子(Few-shot)中,把推理过程(CoT)写出来给模型看。
-
第二部分:从0开始的实战 Demo
为了让你直观感受区别,我们设计一个**"逻辑推理题"**场景。请打开你常用的 AI(ChatGPT, Claude, Gemini 等),跟随以下步骤操作。
场景设定
我们要计算一个虚拟的"外星货币兑换"问题,这个问题稍微有点绕,直接问容易错。
已知规则:
1 个"咕噜币" = 3 个"咔嚓币"
1 个"咔嚓币" = 5 个"人类硬币"
但是,如果你一次性兑换超过 5 个"咕噜币",你会获得 10 个额外的"人类硬币"作为奖励。
第 1 步:Zero-shot (直接问,容易翻车或解释不清)
请复制以下提示词给 AI:
已知规则:
1 个"咕噜币" = 3 个"咔嚓币"
1 个"咔嚓币" = 5 个"人类硬币"
如果你一次性兑换超过 5 个"咕噜币",你会额外获得 10 个"人类硬币"作为奖励。
问题:小明有 6 个"咕噜币",他能换多少个"人类硬币"?直接告诉我答案。
- 预期结果: AI 通常能答对,但有时会忽略奖励规则,或者直接丢出一个数字,如果数字错了你都不知道错在哪。
第 2 步:Few-shot (给例子,规范格式)
现在,我们想让 AI 按照特定格式输出,确保它理解规则。我们将提供一个例子(Few-shot)。
请复制以下提示词给 AI:
任务:根据外星货币规则计算兑换结果。
规则:
1 咕噜 = 3 咔嚓
1 咔嚓 = 5 硬币
兑换 > 5 咕噜,额外奖励 10 硬币。
例子 1:
输入:小红有 2 个"咕噜币"。
输出:30 个"人类硬币"。
例子 2:
输入:小刚有 4 个"咕噜币"。
输出:60 个"人类硬币"。
问题:小明有 6 个"咕噜币",他能换多少个"人类硬币"?
- 预期结果: AI 会非常顺从地模仿例子 1 和 2 的简短格式,直接输出 90 个"人类硬币"(或者它计算错误的数字)。
- 缺陷: 这里的例子太简单(都没触发奖励规则),模型可能会单纯模仿简单的乘法逻辑,从而忽略"额外奖励"的条件,导致算错(6 * 3 * 5 = 90,若是忘了加10,答案就是错的)。
第 3 步:Few-shot + CoT (终极形态:既给例子,又教推理)
这是最强大的技巧。我们在例子里把**思考过程(思维链)**写出来,强迫模型模仿这个思考过程。
请复制以下提示词给 AI:
任务:根据外星货币规则计算兑换结果,请展示详细计算逻辑。
规则:
1 咕噜 = 3 咔嚓
1 咔嚓 = 5 硬币
兑换 > 5 咕噜,额外奖励 10 硬币。
例子 1:
输入:小红有 2 个"咕噜币"。
思维过程:
1. 先计算基础兑换:2 咕噜 * 3 = 6 咔嚓。
2. 然后换成硬币:6 咔嚓 * 5 = 30 硬币。
3. 检查奖励条件:2 咕噜没有超过 5,所以没有奖励。
4. 总计:30 硬币。
输出:30 个"人类硬币"。
例子 2:
输入:大壮有 10 个"咕噜币"。
思维过程:
1. 先计算基础兑换:10 咕噜 * 3 = 30 咔嚓。
2. 然后换成硬币:30 咔嚓 * 5 = 150 硬币。
3. 检查奖励条件:10 咕噜超过了 5,需要加上 10 个额外硬币。
4. 总计:150 + 10 = 160 硬币。
输出:160 个"人类硬币"。
问题:小明有 6 个"咕噜币",他能换多少个"人类硬币"?
预期结果: AI 会完美地模仿你的"思维过程"格式:
-
算出 6 * 3 = 18 咔嚓
-
算出 18 * 5 = 90 硬币
-
关键点: 它会显式地写出"6 超过了 5,触发奖励"。
-
算出 90 + 10 = 100。
**最终答案:1最终答案:100(正确)。