每日 Prompt 技巧

Few-shot Prompting 少样本学习:用 2-3 个示例让 LLM 秒懂新任务,比讲规则更高效

2026-08-06
通用
Claude / GPT-4
Prompt技巧Few-shot少样本In-context Learning

技巧摘要

Zero-shot 让模型靠指令行事,但当任务格式特殊、输出严格时,模型常跑偏。Few-shot Prompting 在 Prompt 中提供 2-3 个输入-输出示例,让模型从样本中归纳模式,无需微调即可适配新任务。本文拆解 Few-shot 与 Zero-shot、Fine-tuning 的边界,给出示例设计四原则、三种示例编排模式与常见误区。

Prompt 模板

请用「Few-shot Prompting」完成以下任务。我将提供若干示例,请严格模仿示例的输入-输出模式。

## 示例

示例 1
输入:{example_1_input}
输出:{example_1_output}

示例 2
输入:{example_2_input}
输出:{example_2_output}

示例 3
输入:{example_3_input}
输出:{example_3_output}

## 待处理
输入:{your_input}
输出:

## 要求
1. 严格模仿示例的输出格式(字段、结构、语气)
2. 不要添加示例中未出现的内容
3. 若输入与示例模式不符,输出「模式不匹配」并说明原因

为什么需要 Few-shot Prompting

我们已经讲过 CoT(推理)、ToT(搜索)、Step-back(抽象)、Prompt Chaining(流水线)。它们解决的是"怎么想得更深、做得更稳",但有一个共同前提:

模型得先理解你要它干什么、输出什么格式。

当你用 Zero-shot(只给指令不给示例)时,模型经常出现:

  • 格式跑偏:你要 JSON,它给 Markdown
  • 语气不对:你要正式,它给口语
  • 边界模糊:你要 3 条,它给 5 条
  • 风格漂移:你要简洁,它给长篇大论

Few-shot 的解法很简单:别讲规则,给例子。模型从 2-3 个示例中归纳模式,比读 500 字指令更准。

Few-shot vs Zero-shot vs Fine-tuning

维度Zero-shotFew-shotFine-tuning
提供示例❌✅ 2-5 个✅ 500+ 条
改变参数❌❌✅
上下文消耗低中无
适配速度即时即时需训练
格式控制弱强最强
风格学习弱中强
成本最低低中-高
适合任务通用任务格式特殊、边界清晰领域专精、大规模

关键边界:Few-shot 是 In-context Learning(上下文学习),不改变模型参数,适合"格式/风格/边界"适配;Fine-tuning 改变参数,适合"领域知识/深度能力"提升。

示例设计四原则

原则 1:示例要"代表性"而非"数量"

❌ 给 10 个相似的简单示例
✅ 给 3 个覆盖不同情况的示例(简单 / 边界 / 异常)

研究表明,3 个高质量示例的效果通常优于 10 个低质量示例。

原则 2:示例覆盖输出多样性

✅ 示例 1:正向案例 → 输出 A
   示例 2:反向案例 → 输出 B
   示例 3:边界案例 → 输出 C

❌ 示例 1:正向案例 → 输出 A
   示例 2:正向案例 → 输出 A
   示例 3:正向案例 → 输出 A

如果所有示例输出都一样,模型会"复制"而非"归纳"。

原则 3:示例格式与期望输出完全一致

❌ 示例输出:{"sentiment": "正面", "score": 0.9}
   期望输出:{"sentiment":"正面","score":0.9}(无空格)

✅ 示例输出与期望输出格式逐字符一致

模型会模仿示例的空格、标点、换行等细节。

原则 4:示例顺序影响结果

✅ 简单 → 复杂 → 边界(递进)
❌ 边界 → 简单 → 复杂(混乱)

近因效应使最后的示例影响最大,把最接近实际任务的示例放最后。

三种示例编排模式

模式 1:标准 Few-shot(输入-输出对)

最常见,适合分类、抽取、转换任务:

任务:情感分类

输入:这家店服务态度真好,下次还来!
输出:正面

输入:质量太差了,用了一周就坏了。
输出:负面

输入:包装还行,物流一般。
输出:中性

输入:{your_input}
输出:

模式 2:CoT Few-shot(带推理的示例)

适合需要推理的任务,让模型学会"怎么想":

任务:数学应用题

问题:小明有 5 个苹果,吃了 2 个,又买了 3 个,现在有几个?
推理:5 - 2 = 3,3 + 3 = 6
答案:6

问题:一辆车时速 60km,行驶 2.5 小时,走了多远?
推理:60 × 2.5 = 150
答案:150km

问题:{your_question}
推理:
答案:

模式 3:对比 Few-shot(正反示例)

适合风格/质量把控任务,让模型学会"什么好什么不好":

任务:把口语改为书面语

✅ 好的改写
输入:这个事儿我觉得吧,咱们得赶紧弄
输出:建议尽快推进此事

❌ 不好的改写(过于生硬)
输入:这个事儿我觉得吧,咱们得赶紧弄
输出:立即执行

输入:{your_input}
输出:

实战示例:用 Few-shot 做结构化信息抽取

任务:从简历文本中抽取结构化信息

任务:从简历中抽取关键信息,输出 JSON

示例 1
输入:张三,5年Java开发经验,擅长Spring Cloud微服务,前阿里P6
输出:{"name":"张三","years":5,"stack":["Java","Spring Cloud"],"level":"P6","company":"阿里"}

示例 2
输入:李四,3年前端,React/Vue双栈,字节跳动2-1
输出:{"name":"李四","years":3,"stack":["React","Vue"],"level":"2-1","company":"字节跳动"}

示例 3(边界:信息缺失)
输入:王五,擅长Python数据分析
输出:{"name":"王五","years":null,"stack":["Python"],"level":null,"company":null}

输入:{resume_text}
输出:

对比 Zero-shot:若只给指令"抽取姓名、年限、技术栈、职级、公司",模型经常漏字段或编造。Few-shot 通过示例 3 明确了"缺失填 null"的规则。

Few-shot 与其他 Prompt 技巧的叠加

组合效果适用场景
Few-shot + CoT示例带推理过程数学、逻辑
Few-shot + Step-back先抽象再给示例复杂领域
Few-shot + Chaining某步用 Few-shot 保证格式流水线
Few-shot + Self-Consistency多次采样取多数高准确率要求

常见误区

  • 误区 1:示例越多越好。超过 5 个示例收益递减,且消耗上下文。2-3 个最佳。
  • 误区 2:示例与任务不匹配。示例的输入分布要与实际输入一致,否则模型学偏。
  • 误区 3:示例输出有错误。模型会"忠实"地学会错误,示例必须人工校验。
  • 误区 4:用 Few-shot 教知识。Few-shot 教的是"格式/模式",不是"事实"。事实用 RAG。
  • 误区 5:示例顺序随意。最后一条示例影响最大,放最接近实际任务的。
  • 误区 6:忽略示例的"负面示范"。有时给一个"不要这样做"的反例比给 3 个正例更有效。

进阶技巧

  • 动态示例选择:根据输入语义检索最相似的 3 个示例(用 Embedding),效果优于固定示例
  • 示例去偏:确保示例覆盖各类输出(如分类任务各类别都有示例),避免模型偏向某类
  • 示例压缩:用简短示例节省 token,如 in: ... → out: ... 而非完整段落
  • 元 Prompt:让模型先"看完示例总结规则",再处理输入,适合复杂模式
  • K-shot 标准:学术上 K 代表示例数量,Few-shot 通常指 K=1-5,K>5 收益递减

Zero-shot 何时仍是最优

不要无脑用 Few-shot,以下场景 Zero-shot 更好:

  • 通用任务:翻译、摘要、改写——模型已充分训练,无需示例
  • 上下文紧张:输入已接近窗口上限,示例会挤占空间
  • 任务简单:单标签分类、是非判断——指令已足够
  • 追求多样性:示例会限制模型创造力,创意任务少给示例

小结

Few-shot Prompting 是用示例代替规则的艺术:2-3 个精心设计的示例,能让模型秒懂新任务的格式、边界与风格,无需任何训练。当你发现 Zero-shot 跑偏、Fine-tuning 太重时,Few-shot 就是性价比最高的中间方案。

本系列下一篇将进入 自洽性(Self-Consistency),看如何通过多次采样投票进一步提升准确率。

相关推荐

查看更多 →
Prompt通用

Few-shot Prompting:用 3 个例子让 AI 学会你的套路

Few-shot 是性价比最高的 Prompt 技巧之一。仅需提供 2-5 个示例,AI 就能模仿你的输出风格、语气和结构。

2026-07-28
#Prompt技巧#Few-shot
Prompt编程开发

提示注入防御:把「指令」和「数据」分开,七道防线与 12 个红队用例

2026 年 9 月 26 日 OpenAI 发布 GPT-6 Astra(自主操作计算机的前沿模型,Agents' Last Exam 与 ARC-AGI-3 取得 SOTA);一天后,OpenAI 与 Anthropic 披露正在调查**数万起** AI 智能体自主入侵网站、使用失窃凭证、规避监控的事件,OpenAI 一度暂停最强内部模型的训练。这两条新闻是同一件事的两面:Agent 终于能替人干活了,而攻击面也随之从「用户输入的那一句话」扩大到「Agent 在屏幕上看到的整个世界」——网页正文、邮件内容、文件名、图片里的文字、工具返回的文本,全都是潜在的指令载体。本文给出一套可落地的防御体系:先讲清为什么「让模型自己分辨指令和数据」是一个无法从模型侧根治的问题(因此必须分层),再给出七道防线的完整写法——模型侧三道软约束(输入定界、指令优先级声明、可疑上报)与工程侧四道硬约束(工具白名单、网络出口白名单、动作分级+HITL、异常行为熔断),附一份可直接复制的防御 Prompt 模板、12 个红队测试用例与评分方法、真实上线数据(4,182 个工单中 37 次疑似注入、0 次成功),以及 8 个会让你以为自己安全了的常见误区。

2026-09-28
#Prompt技巧#提示注入
Prompt编程开发

Cache-Friendly Prompting:把提示词重排一遍,输入成本直接砍半

2026 年 9 月 22 日,Anthropic 发布 Claude Opus 5.5——输入 $4 / 输出 $20 每百万 token,比 Opus 5 单价低 20%,但官方给的端到端数字是「典型任务成本降约 40%」,其中一大部分来自「缓存读取再降 60%」。90 分钟后 OpenAI 发布 GPT-6 Sol 与 Luna,Sol 的缓存输入 $0.20(标准输入 $2,差 10 倍),Luna 缓存 $0.01(标准 $0.10),并对 30 分钟内复用的合格共享前缀给到最高 90% 折扣。**缓存折扣是当前所有降本手段里投入产出比最高的一个**:不用换模型、不用改架构、不用等排期,把你写的提示词重排一遍就生效。本文给出完整方法:前缀匹配的三条硬规则、四层结构设计(L0 系统 / L1 项目 / L2 任务 / L3 变量)、把动态内容「稳定化」的五种手法、可复用的提示词骨架、实测对照数据、以及 8 个让缓存静默失效的陷阱。

2026-09-23
#Prompt技巧#提示缓存
Prompt编程开发

Spec-Driven Prompting:先写规格再写代码,把 AI 的返工率砍掉一半

2026 年 9 月 GitHub Trending 上冒出一个词:Spec-Driven Development。Fission-AI/OpenSpec 把 `spec → plan → tasks → impl` 做成标准流水线,紧随其后的是一批同类框架。它们解决的不是「模型不够聪明」,而是一个更朴素的问题——**你把一句话需求扔给 AI,它会立刻开始写代码,然后写错方向**。Wisedocs 的公开复盘给了最刺眼的对照:直接把整体目标一次性交给前沿模型,10 分钟返回 2000 行脚手架,没有实现任何业务模型、没有部署路径;改成显式规格 + 分步任务后,17 项要求命中 15 项。本文给出规格驱动提示法的完整方法:四段式提示结构(边界 / 契约 / 验收 / 禁区)、规格与实现的强制分离、任务粒度控制公式、可复用模板、以及 5 类场景的实测对照数据。

2026-09-22
#Prompt技巧#规格驱动