应用

Zero-shot / Few-shot

为什么需要了解 Zero-shot 和 Few-shot

让模型完成任务,不一定需要训练它——可以通过 Prompt 直接指挥。

但"直接指挥"有两种方式:不给示例,或给几个示例。哪种更有效?取决于任务的复杂度和模型的熟悉程度。


什么是 Zero-shot 和 Few-shot

一句话定义:Zero-shot 和 Few-shot 是在 Prompt 里不训练模型就能让它完成任务的方式——本质上是"在上下文里学会怎么做"(In-context Learning)。

  • Zero-shot:不给示例,直接描述任务
  • Few-shot:在 Prompt 里先给几个示例,让模型照着学

直觉例子:

Zero-shot

把下面这句话翻译成英文:
今天天气真好。

Few-shot

把下面这句话翻译成英文:

示例:
我爱你。 -> I love you.
他很高。 -> He is tall.

今天天气真好。 ->

Few-shot 的核心不是示例数量多,而是示例能不能把任务规则、格式和风格讲清楚。


怎么做:什么时候用 Zero-shot / Few-shot

用 Zero-shot 的场景

  • 任务很简单,模型已经很擅长
  • 更在意 Prompt 简洁和成本
  • 格式要求不严格

用 Few-shot 的场景

  • 输出格式要求很明确
  • 任务边界比较隐性,不容易一句话说清
  • 模型在 Zero-shot 下容易理解偏
  • 希望模型模仿某种固定风格或判断标准

注意事项

  • 示例不是越多越好:太多会增加 Token 成本,也可能稀释重点
  • 示例要有代表性:最好覆盖最常见、最容易出错的输入类型
  • 可以和 Chain of Thought 结合:如果示例里展示了推理过程,复杂任务效果往往更好

记住这一句:Zero-shot 直接命令,Few-shot 用示例示范——本质都是"不训练,通过 Prompt 让模型学会"。

相关词条Prompt · Chain of Thought