跳到主要内容

Few-shot Learning

问题

什么是 Few-shot Prompting?如何选择和组织示例?Zero-shot、One-shot、Few-shot 有什么区别?

答案

Few-shot Prompting 是在 Prompt 中给出几个(输入→输出)示例,让 LLM 通过上下文学习(ICL)掌握任务模式。

一、三种模式

模式示例数效果适用场景
Zero-shot0基本简单任务,模型理解能力强
One-shot1中等格式示范
Few-shot2-10最好复杂分类、格式要求严格

二、Few-shot 示例设计

将用户评论分类为:功能需求 / Bug 报告 / 使用咨询

评论:「希望能支持导出为 PDF 格式」
分类:功能需求

评论:「点击保存按钮后页面白屏了」
分类:Bug 报告

评论:「请问如何修改密码?」
分类:使用咨询

评论:「批量导入数据时,超过 1000 条就报错」
分类:

三、示例选择原则

原则说明
覆盖所有类别每个分类至少一个示例
多样性示例之间尽量不同
代表性选择典型案例
边界案例包含容易混淆的案例
一致性示例格式完全一致
顺序研究发现顺序会影响结果——可随机打乱或将最相关的放最后

四、动态 Few-shot

对于不同的用户输入,动态选择最相关的示例(而非固定示例):

  1. 将所有示例做 Embedding
  2. 对用户输入做 Embedding
  3. 用相似度选择 Top-K 最相关的示例
  4. 放入 Prompt

这就是 Few-shot + RAG 的结合。


常见面试问题

Q1: Few-shot 和 Fine-tuning 该如何选择?

答案

  • Few-shot:立即可用、灵活、无需训练数据、成本低(推理成本略高)
  • Fine-tuning:需要标注数据和 GPU、不灵活(换任务要重训)、性能上限更高、推理成本低

规则:先用 Few-shot 验证效果。如果 Few-shot 效果不够且有足够数据,再考虑 Fine-tuning。

Q2: Few-shot 示例的数量越多越好吗?

答案: 不一定。一般 3-8 个示例效果最好:

  • 太少(1-2):模式信息不足
  • 太多(>10):占用上下文窗口、可能引入噪声、增加成本
  • 最佳实践:从 3 个开始,增加到效果不再明显提升为止

相关链接