你给了 5 个 few-shot 例子教模型输出风格。2 个很好——精准、具体、正是你想要的语气。3 个是从旧草稿复制来的,一般——啰嗦、泛泛、调子稍偏。你期望模型从那 2 个好的学。它没有。它输出的是 5 个的平均,偏向那 3 个一般的多数。更糟的——它学到了那 3 个一般例子的坏习惯,又忽略了那 2 个好例子的亮点。
模型不会给你的例子打分。它把 prompt 里每个例子当同等权威。质量混杂的 few-shot 是 “我给了例子它还是不会” 最常见的原因——例子不全都好。
常见原因
1. 老例子从没重新评估过
3 个月前你刚摸索任务时加的例子。这期间你对”好输出”的标准提高了。老例子已经不代表当前 bar。
怎么判断:把每个例子当今天的输出读。今天能直接发吗?不行就是在拖模型。
2. 长度方差教会”不一致”
例 1 80 词、例 2 200 词、例 3 50 词。模型推断长度是变量,输出也变长——即使你想要稳定长度。
怎么判断:数每个例子的词数。max/min > 2x 就是不一致。
3. 语气在例子间漂
例 1 正式、例 2 随意、例 3 带 emoji。模型挑一个(通常最近的)或混合——都不是你要的。
怎么判断:例子连读一遍,自己脑子里 code-switch 了——模型也会。
4. 有一个例子带细微错误
5 个例子里有一个有 typo、事实错、或格式 glitch。模型学会复制这个错误类别。
怎么判断:每个例子当成最终输出审一遍。源里的错会下毒。
5. 例子全是边缘 case、不是常见 case
你挑了刁钻例子去 stress test prompt。现在模型以为每个输入都是 edge case,常规输入被过度处理。
怎么判断:例子里 80% routine 还是 80% 怪输入?应该反映真实分布。
6. 输出结构在例子间变
例 1 用 bullet、例 2 用编号、例 3 用 prose。模型在 format 间随机切。
怎么判断:例子之间输出结构不同。挑一个。
7. 例子来自别的任务类型
prompt 现在用在新场景,例子还是旧场景的。模型带过来不适用的模式。
怎么判断:例子的输入分布跟当前不符。“跑题”感。
最短修复路径
第 1 步:审例子、重打分
对每个例子按 1-5 分打:
- 匹配当前输出 bar
- 长度跟目标一致
- 语气跟目标一致
- 没错误
- 结构跟目标 format 一致
任一维度低于 4 的踢掉。
第 2 步:踢掉的换成精选的
2 个顶级例子比 5 个参差例子更好。模型从小而一致的集合学得比从大而杂的快。
Input: [routine case]
Output: [exemplary output]
Input: [common variation]
Output: [exemplary output]
Input: [tricky case worth covering]
Output: [exemplary output]
3 个例子常常就够。
第 3 步:长度归一
目标输出 ~100 词时,每个例子输出 80-120 词。不要 30 词的紧挨着 200 词的。
第 4 步:结构归一
挑一个输出格式,所有例子统一。bullets、numbered list、prose、JSON 都行,混着用会教不一致。
第 5 步:按相似度排例子顺序
recency bias 真实存在——最近的例子塑形最强。把输入形状最接近真实输入的那个例子放最后。
Examples 1-2: general case
Example 3 (放最后): 输入跟 live input 最接近的例子
---
Live input: [user's real input]
第 6 步:在每个例子上加一行说明展示了什么
有些团队在每个例子前加 1 行注释:
Example 1 (concise, formal):
Input: ...
Output: ...
Example 2 (handles missing field):
Input: ...
Output: ...
帮模型理解从每个例子学哪个维度。
第 7 步:A/B 测例子集合
用集合 A(5 个混杂)生 20 条输出、用集合 B(3 个精选)生 20 条。盲打分。精选集合通常赢。
哪些情况可能不是你操作错了
有些任务方差本来就大——开放创作里跨风格的例子是故意的。那种场景里”质量混杂”是 OK 的、只要是有意为之。bug 是你没打算让它方差。
容易误判的情况
“模型就是不擅长这个任务”。多数时候模型没问题、是例子噪声大。在判模型差之前先 curate。
预防建议
- 季度审 few-shot 例子,过时的踢或更新。
- 3 个高质量 > 5 个混杂。
- 例子间长度、语气、结构归一。
- 例子覆盖不同场景时每个加一行注释。
- 上线新例子集合前 A/B 测,看 win rate。
- 把例子池当 production code——版本控制 + code review。
FAQ
- few-shot 例子是真实输出还是合成的? 真实质量才是关键;合成的只要达到目标也一样有效。
- 例子顺序重要吗? 重要——recency bias 让最后一个影响最大。最好 / 最相关的放最后。
相关阅读
- 没给例子导致输出漂移
- Few-shot 例子太多反而压垮模型
- 语气混杂的 instruction
- 互相冲突的指令削弱输出
- AI 输出风格漂移
- Style 和 format 互相打架
- Prompt 是从别的任务复制来的
- 最后一句覆盖前面的指令
- Prompt 缺少 context 层级
- 没定义成功标准
标签: #Prompt 工程 #排查 #llm-output #few-shot #examples #in-context-learning