核心要点

  • Zero-shot:只给任务指令,不提供任何示例,依赖模型预训练中已习得的能力。

  • Few-shot:在 prompt 中放入 1~N 组「输入→输出」示例,通过上下文学习在推理时引导,不更新模型权重。

  • Few-shot 适用于:输出格式严格、任务定义模糊、有领域术语/边界规则、zero-shot 表现不稳定的场景。

标准回答

区别:Zero-shot 只在 prompt 里写清楚任务要求,让模型直接作答;Few-shot 则额外提供几组示范样例(demonstrations),模型通过In-Context Learning从示例中归纳出任务模式、输出格式与风格——注意这是推理时的「临时学习」,不会修改模型参数,与微调有本质区别。

何时用 few-shot

  • 需要固定输出格式(如 JSON、特定标签体系、固定字段顺序)。
  • 任务定义模糊或主观(情感分级、内容分类的边界),用示例界定标准比文字描述更精确。
  • 存在领域术语或特殊约定,示例能传递隐性规则。
  • Zero-shot 结果不稳定或偏离预期时,加示例可显著提升一致性。

实践要点:示例要覆盖典型与边界情况、保持格式统一、注意顺序与样本均衡(避免标签偏置);示例会占用上下文窗口token 成本。配合 Chain-of-Thought 可做 few-shot CoT 提升推理任务表现。详见 Prompt 工程实践

常见误区

⚠️ 常见踩坑

Few-shot 不是微调——它不更新权重,只在当前 prompt 生效。示例并非越多越好:过多会挤占上下文、增加成本,且收益递减;2~5 个高质量示例通常已足够。

追问

追问 1Few-shot 和微调(fine-tuning)有何本质区别?

Few-shot 在推理时通过 prompt 中的示例临时引导,不改动模型参数,灵活但占 token、每次请求都要带示例;微调通过梯度更新真正改变权重,效果持久、推理时无需示例,但需要训练数据、算力和迭代成本。数据少、需求多变用 few-shot,数据充足、任务固定用微调。

追问 2为什么 few-shot 示例的顺序会影响结果?

模型对示例存在位置偏置(recency/majority bias),靠近问题的示例和占多数的标签会被过度倾向。实践中应打散标签分布、避免同类标签连续堆叠,并对顺序做敏感性测试。

追问 3示例数量是越多越好吗?

不是。收益随数量递减,过多示例会挤占上下文窗口、抬高延迟与成本,甚至引入噪声。通常 2~5 个覆盖典型与边界情形的高质量示例即可,质量比数量更关键。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。