动态示例选择
少样本提示里的示例不一定要固定。做法是为每个输入检索相关度最高的几条示例拼进提示:示例与当前输入越接近,模型越容易照葫芦画瓢。固定示例集在输入分布发生变化后效果会衰减,而按相似度挑选能跟上分布漂移。代价是每次请求多一次检索。
基本信息
| 依据 | 相近示例对上下文学习贡献更大,固定示例集在分布变化后失效 |
|---|---|
| 实现 | 示例存向量库,检索使用与索引一致的嵌入模型 |
| 成本 | 每次请求多一次检索;示例库要带版本 |
| 可追溯 | 记录本次使用的示例 ID |
典型使用场景
- 多领域抽取:法律、医疗、金融各取相近示例
- 多语言任务:按语种检索示例,避免语言不匹配
- 格式多样:按目标输出格式挑选示例
- 长尾场景覆盖:固定示例覆盖不到的输入改为检索获得
- 示例库演进:新旧示例并存,按相似度自然分流
流程
流程
1. 离线准备一批带标注的示例(输入 + 期望输出)
2. 对当前输入做向量检索,取相似度居前的 3 个
3. 按固定模板拼接进提示
- 顺序固定:相似度靠前的在前
- 示例之间用统一分隔标记,避免边界混淆
4. 记录本批使用的示例 ID,便于回溯与复现
# 检索用的嵌入模型要与建库时一致,否则相似度不可比
# 示例库带版本号,更新后要重跑回归看效果是否漂移环节与风险
| 环节 | 要点 | 风险 |
|---|---|---|
| 示例准备 | 标注正确、格式统一 | 示例本身有错,会被模型照抄 |
| 向量检索 | 嵌入模型与建库时一致 | 模型不一致导致相似度不可比 |
| 拼接顺序 | 相似度靠前的在前,格式固定 | 顺序随机时输出稳定性下降 |
| 示例数量 | 一般 3 条左右 | 塞入过多示例挤占上下文且引入噪声 |
| 日志 | 记录本次使用的示例 ID | 效果波动时无法回看是哪批示例 |
只看表面相似度可能挑到「格式像、任务不同」的示例,反而把模型带偏。评估时要抽查挑选结果,确认检索出的示例与当前任务确实是同一类。
示例库更新后效果会漂移。把示例库版本号写进评测记录,每次更新都跑一遍回归,避免出现「指标变化但不知道是提示改了还是示例库换了」的情况。