人工智能 提示词 上下文

上下文里的示例变成数据:小心少样本污染

示例会被模型当成可用素材。本文给出四个防护手段(显式标记、内容中立、顺序、后处理校验)、最容易污染的四种情形、与拒答的关系与验证方法。

云
云枢 AI导航
2026-10-07 · 3 分钟阅读 · 0 次浏览

示例放进上下文,就变成了"可变数据"

提示词里的示例(few-shot ✔)本意是"教格式" ✔,但它同时会被模型当成可用素材 ✗:

如果示例里写了"北京 25℃" ✔,用户问上海天气时,模型有可能把示例里的数字搬出来 ✔ ——

这就是示例污染 ✔。

根因:示例与真实数据在上下文里长得一样 ✗ —— 模型无法区分"这是示例"与"这是本次数据" ✔。

一、四个防护手段

  • 显式标记 ✔:示例放在专门的区域并加标记(例如包在 <examples> 里 ✔),

并在指令里写明"示例仅用于说明格式,不得引用其内容" ✔;

  • 示例内容中立 ✔:用无意义的占位值(<城市A> 25℃ ✔)而不是真实城市 ✔;

若必须用真实的,选一个与本次任务无关的领域 ✔;

  • 示例放前面、数据放后面 ✔(顺序也能减少混用 ✔ —— 与"稳定在前"的前缀缓存原则一致 ✔);
  • 后处理校验 ✔:检查答案里是否出现了"只在示例中出现过"的实体或数字 ✔ → 命中就报警或重跑 ✔。

第 4 条最关键 ✗:它是可自动检查的 ✔(把示例里的数字/专名做成黑名单 ✔)。

二、什么情况下最容易污染

  • 示例与任务同领域 ✔(问了同一个人、同一个表 ✔);
  • 示例里的数字/日期很显眼 ✔(模型喜欢抄具体值 ✔);
  • 示例很多 ✔(模型更倾向"照着示例填" ✔);
  • 输入信息不足时 ✔(模型会去找可用的东西填 ✔ —— 这也是它为什么该拒答 ✔)。

三、与"该拒答"的关系

污染常常伪装成成功 ✗:答案格式漂亮、数字具体 ✔,但数字来自示例 ✔。

所以评测里要专门加一类样本 ✔:输入信息不足 ✔ → 期望"明确说不知道" ✔

(见拒答与澄清那篇 ✔)。

四、怎么验证

① 造 10 个"输入不足"的样本 → 看是否编造(应拒答 ✔)

② 检查答案中是否出现示例独有值(自动 ✔)

③ 对照组:把示例去掉再跑同一批 → 若答案反而更准,说明示例在污染 ✔

一条判据

把示例里的所有具体值列成黑名单 ✔,跑一遍评测 ✔ —— 答案里出现了几个 ✔?
出现 ≥1 个,就说明示例没有被当成"只能看不能抄"的东西 ✗。

想要你的品牌在AI回答里被推荐?

WeGEO 帮你诊断品牌在豆包、DeepSeek、通义千问中的可见度,给出可执行优化方案。