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
标签
零样本少样本zero-shotfew-shotin-context learning