标准回答
选择什么示例
- 相似性:Few-shot 本质是 In-Context Learning,与当前 query 越相似的示例越有指导性。常用做法是把候选示例做 Embedding,按语义相似度用 kNN 动态检索 Top-k 拼入提示。
- 多样性与代表性:示例要覆盖不同子类型、难度和边界情况,避免全是简单/同类样本,否则模型只学到片面模式。
- 标签平衡:分类/抽取任务中,各类别示例数量要大致均衡,否则模型会偏向出现更多的类别。
如何排序
ICL 对示例顺序敏感:模型存在近因效应,更「记得」靠近末尾、靠近 query 的示例。因此可把最相关或最具代表性的示例放在末尾;同时固定顺序以保证可复现,必要时通过多次实验或校准来减小顺序带来的方差。
实践组合
「相似性检索 Top-k + 类别平衡 + 合理排序」通常优于随机固定示例。更多结构化提示技巧见 高级 Prompt 工程技术。
常见误区
⚠️ 常见踩坑
别以为「示例越多越好」:示例会大量占用上下文与成本,且无关或失衡的示例反而拉低效果。也别忽视顺序——同一批示例换个排列,准确率可能明显波动。
追问
追问 1:为什么用 kNN 检索示例通常比固定示例好?
因为不同输入需要的「参照」不同。kNN 按语义相似度为每个 query 动态挑选最贴近的示例,使提示更有针对性,模型能模仿到与当前问题最相关的输入-输出映射,通常比一套写死的示例泛化更好。
追问 2:示例顺序为什么会影响结果,如何降低这种敏感性?
Transformer 在 ICL 时对位置和近因敏感,靠后的示例影响更大,还可能受多数类/首尾偏置干扰。可通过固定并精心安排顺序、做标签平衡、对多种排列取平均或做概率校准来降低方差。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。