Few-shot Prompting:让模型从示例中理解任务

与其反复解释"应该怎么做",不如给模型看几份合格样例。 Few-shot Prompting 的本质,是利用上下文中的 demonstrations 暂时建立一套任务规则。

Few-shot Prompting 是指在 Prompt 中放入少量输入---输出示例, 让 Large Language Model 在不更新参数的情况下,根据这些示例推断任务规则, 再处理后面的新输入。

1. Few-shot Prompting 是什么

Large Language Model 往往具备不错的 Zero-shot 能力:只给任务说明,也能完成分类、抽取、改写或生成。 但当任务包含自定义标签、特殊格式、隐含边界或领域表达时,单靠一句说明通常不够稳定。

Few-shot Prompting 的解决方式很直接:先给模型看几份 demonstrations。 每一份 demonstration 都像一张临时的"参考答案",告诉模型什么输入对应什么输出。 模型随后会在当前上下文中延续这种模式,这种现象通常被称为 In-Context Learning

**关键区别:**Few-shot Prompting 不是 Fine-tuning。 它不会修改模型权重,示例只在本次请求或当前 conversation context 中生效。

2. 模型究竟从示例里学到了什么

初学者常把 Few-shot 理解成"让模型模仿答案"。这只说对了一部分。 一组 demonstrations 通常会同时向模型传递四类信息。

这也解释了为什么有时一条简单 instruction 写了很多遍,效果仍然不如两三个清晰示例。 自然语言说明经常存在歧义,而示例把抽象规则落到了具体输入和具体输出上。

3. Zero-shot、One-shot 与 Few-shot

方式 示例数量 适用情况 主要代价
Zero-shot 0 任务常见、要求简单、标签含义明确 边界和格式可能不稳定
One-shot 1 需要展示一次输出形式或表达风格 单个示例可能造成偏置
Few-shot 通常为 2--10 个 自定义分类、结构化抽取、固定文风、领域任务 占用 context window,并增加维护成本

"多少个示例才算合适"没有固定答案。3-shot、5-shot、10-shot 只是常见叫法, 并不意味着示例越多越好。一个覆盖边界情况的 3-shot Prompt, 往往比十个内容高度重复的示例更有效。

4. 从一个完整示例开始

假设我们要做客服消息分类,标签不是常见的 Positive 或 Negative, 而是业务内部定义的 REFUNDLOGISTICSACCOUNTOTHER。只给标签名称时, 模型可能不知道"快递显示签收但我没收到"究竟属于物流还是退款。

复制代码
任务:将用户消息分类为 REFUND、LOGISTICS、ACCOUNT 或 OTHER。
只输出标签,不要解释。

示例 1
用户:订单取消三天了,钱还没退回来。
标签:REFUND

示例 2
用户:物流显示已签收,但我没有收到包裹。
标签:LOGISTICS

示例 3
用户:换了手机号后无法登录原来的账号。
标签:ACCOUNT

待处理消息
用户:退款已经审核通过,银行卡里为什么还没有到账?
标签:

这里的 demonstrations 不只是展示了三个标签,还悄悄确定了两条规则: "退款进度"归入 REFUND,最终输出只保留一个大写标签。 因而模型更容易输出 REFUND,而不是写一段客服式解释。

**注意:**示例中的答案本身必须可靠。 一旦 demonstrations 混入错误标签,模型可能把错误边界当成任务规范。

5. 如何选择高质量 demonstrations

Few-shot 的效果很大程度上取决于"选了什么例子",而不只是"放了几个例子"。 下面几条比盲目增加 shot 数更重要。

静态示例与动态示例

最简单的实现,是把一组固定 examples 写死在 Prompt 中。这适合任务稳定、类别较少的场景。 当数据复杂时,可以先从案例库中检索与当前 Query 最相似的若干样本, 再动态拼接 Prompt。这种方法常被称为 Dynamic Few-shot Prompting 或 example retrieval。

6. Few-shot Prompting 的局限

Few-shot 对分类、抽取、格式模仿和风格迁移很实用,但它不是通用解法。 原页面给出的算术判断例子说明:即使添加了若干输入---答案示例, 模型仍可能在需要多步计算时给出错误结论。

不要把 Few-shot 当作知识库。 它适合演示规则,不适合塞入大量事实材料。 需要外部知识时,更合理的方案通常是 RAG;需要长期稳定改变模型行为时,再考虑 Fine-tuning。

遇到的问题 优先考虑的方法
复杂算术、符号推理或多步决策不稳定 任务分解、工具调用、Program-Aided 方法或可验证的推理流程
缺少外部或最新知识 RAG、搜索、数据库查询
示例太多,Prompt 成本持续上升 Dynamic Few-shot、Prompt 压缩,或评估 Fine-tuning
输出结构必须 100% 合法 Structured Outputs、JSON Schema、parser 与 validation
相关推荐
段一凡-华北理工大学2 小时前
LangChain框架在高炉炼铁智能化领域的应用~系列文章02:从Prompt开始,让大模型听懂高炉的“黑话“
大数据·人工智能·学习·架构·langchain·prompt·高炉炼铁
kisdiem3 小时前
Prompt Engineering完整教程
prompt
TheRouter3 小时前
LLM 应用的Prompt 版本管理工程实践:从ad-hoc 字符串到生产级Prompt 仓库
大数据·elasticsearch·ai·prompt
沪漂阿龙3 小时前
Prompt Template:提示词如何从“玄学”变成工程能力?
人工智能·prompt
shchojj4 小时前
ChatGPT Prompt Engineering for Developers - Expanding
开发语言·python·prompt
2501_9400417416 小时前
技术分享:高质量全栈开发提示词设计实践 —— 覆盖简单到复杂
前端·prompt
任我坤17 小时前
16G显卡跑本地大模型:三大框架选型指南
ai·prompt·ai编程
XLYcmy1 天前
一个基于 Python 的轻量级 LLM(大语言模型)API 客户端程序:从API交互到LLM应用架构
服务器·python·ai·llm·prompt·agent·token
garmin Chen1 天前
prompt实战:nof1.ai Alpha Arena
java·人工智能·python·prompt