Few-shot 是什么
Few-shot(少样本提示)是在提示里给 1-5 组输入输出示例,让模型照这个模式处理新输入。它靠的是上下文学习:示例把抽象要求变成看得见的样子,格式、语气、映射规则都能靠模仿传递,比用文字描述规则更直接。Brown 等人 2020 年用 GPT-3 系统展示过这种能力,此后少样本成为与零样本并列的两条基本路径。代价是示例要占上下文:每多一组示例就多一份重复内容,还会挤压真正要处理的输入。
什么时候用示例、什么时候不用
任务定义清楚、输出是常规样式时,零样本描述就够;一旦输出模式特殊(自定义标签、罕见的字段命名、公司内部格式),用文字描述规则往往越描越乱,给一组示例反而最省事。判断方法:把规则写在纸上,看同事能否照着做出完全一致的输出,做不到就补示例。
三个决定项
| 数量 | 通常 1-5 组:先保质量,再考虑数量;同类示例重复堆叠收益递减 |
|---|---|
| 选择 | 覆盖典型、边界、易错三类;与待处理输入相似度越高越有效 |
| 顺序 | 示例在前、待处理输入在后;示例之间格式严格一致,最后一行留出输出开头 |
| 格式 | 字段名、引号、布尔写法、空值表示全部照抄,示例即规格 |
| 成本 | 示例会重复占用输入 token,长示例要先精简掉无关字段 |
典型使用场景
- 固定字段抽取:字段名与嵌套结构用示例演示一次,比逐字段解释省字数
- 语气与风格迁移:给出两段范文,让输出贴近目标文体
- 内部标签体系:类别名是自造的,示例能把边界案例一起交代清楚
- 格式罕见的输出:特殊标记、自定义 DSL、混合中英写法,靠示例避免误改
- 规则难以言说但可辨认:人工能判断对错却写不出条款时,示例是最快的对齐手段
少样本结构
少样本结构
### 示例 1
输入:订单号 A1001,9 月 30 日签收,10 月 3 日申请退货。
输出:{"within_7d": true, "action": "受理"}
### 示例 2
输入:订单号 B2002,9 月 20 日签收,10 月 5 日申请退货。
输出:{"within_7d": false, "action": "拒绝"}
### 待处理
输入:订单号 C3003,9 月 28 日签收,10 月 1 日申请退货。
输出:示例集检查项
| 检查项 | 做法 | 不做的后果 |
|---|---|---|
| 格式一致 | 字段名、标点、布尔与空值写法逐字对齐 | 模型在多种样式间摇摆,解析随机失败 |
| 覆盖边界 | 至少一组空值、极短或多语种输入 | 线上遇到边界样本时表现不可预期 |
| 无错误示范 | 示例的答案必须人工核对过 | 模型忠实复制示例中的错误 |
| 标注分隔 | 示例之间用统一小标题或标签分开 | 模型把上一条的输入当成下一条的输出 |
示例即规格:模型会忠实复制示例里的格式细节,包括你不小心带进去的错误,所以示例提交前要人工核对一遍。
示例写在提示里的位置也有影响:把最贴近待处理输入的那组放在紧邻位置,通常比随意排列更稳。