AI PRO·Prompt Day 4 Few-shot与Zero-shot学习:给AI看例子

作者:

![配图待生成]

一句话总结

Zero-shot = 直接问,Few-shot = 给例子再问。例子越精准,答案越靠谱。

就像教小孩认字:Zero-shot是直接指着字问”这是什么”,Few-shot是先教几个字再问。


Zero-shot vs Few-shot

Zero-shot(零样本)

直接提问,不给任何示例:

`

将这段话翻译成英文:

今天天气很好

`

Few-shot(少样本)

先给示例,再提问:

`

输入:今天天气很好

输出:The weather is nice today.

输入:我喜欢编程

输出:I enjoy programming.

现在请翻译:这本书很有意思

`

效果对比

方法 优点 缺点 适用场景

|——|——|——|———-|

Zero-shot 简单快速 不够精确 简单任务
Few-shot 精确可控 需要设计示例 复杂任务

什么时候用Zero-shot?

适用场景

  1. 简单任务

`

总结这篇文章的要点

`

  1. 通用任务

`

翻译这段话成英文

`

  1. 创意任务

`

写一首关于春天的诗

`

Zero-shot的技巧

1. 明确指令

`

❌ 帮我翻译一下

✅ 将这段中文翻译成英文,保持专业术语

`

2. 提供上下文

`

❌ 分析一下数据

✅ 分析Q2销售数据,找出增长最快的3个产品

`

3. 指定格式

`

❌ 写个总结

✅ 用3个要点总结这篇文章,每个要点一句话

`


什么时候用Few-shot?

适用场景

  1. 格式转换

`

输入:苹果

输出:🍎 苹果 – 水果,红色,甜

输入:汽车

输出:🚗 汽车 – 交通工具,四轮,快速

现在请写:飞机

`

  1. 风格模仿

`

原文:今天天气很好

改写:阳光正好,微风不燥,正是出门的好时节

原文:这个产品很不错

改写:这款产品让我眼前一亮,忍不住想推荐给大家

现在请改写:这本书很有意思

`

  1. 分类任务

`

评论:这个手机太棒了!

情感:正面

评论:电池续航太差了

情感:负面

评论:屏幕显示效果一般

情感:中性

现在请分析:拍照功能很强大

`

  1. 数据提取

`

文本:张三,男,25岁,北京

输出:{“姓名”: “张三”, “性别”: “男”, “年龄”: 25, “城市”: “北京”}

文本:李四,女,30岁,上海

输出:{“姓名”: “李四”, “性别”: “女”, “年龄”: 30, “城市”: “上海”}

现在请提取:王五,男,28岁,广州

`


如何设计高质量的Few-shot示例?

原则1:示例要典型

`

❌ 不好的示例:

输入:a

输出:A

输入:b

输出:B

(太简单,没有代表性)

✅ 好的示例:

输入:hello world

输出:Hello World

输入:machine learning

输出:Machine Learning

(展示了首字母大写的规则)

`

原则2:示例要多样

`

❌ 不好的示例:

输入:苹果是水果

输出:苹果 – 水果

输入:香蕉是水果

输出:香蕉 – 水果

(都是水果,没有多样性)

✅ 好的示例:

输入:苹果是水果

输出:苹果 – 水果

输入:汽车是交通工具

输出:汽车 – 交通工具

输入:桌子是家具

输出:桌子 – 家具

(覆盖不同类别)

`

原则3:示例要简洁

`

❌ 不好的示例:

输入:今天天气非常好,阳光明媚,微风习习,正是出门散步的好时节

输出:The weather is very nice today, sunny and breezy, perfect for a walk

(太长,浪费token)

✅ 好的示例:

输入:今天天气很好

输出:The weather is nice today

(简洁明了)

`

原则4:示例要一致

`

❌ 不好的示例:

输入:苹果

输出:🍎 苹果 – 水果

输入:汽车

输出:汽车是交通工具

(格式不一致)

✅ 好的示例:

输入:苹果

输出:🍎 苹果 – 水果

输入:汽车

输出:🚗 汽车 – 交通工具

(格式一致)

`

原则5:示例数量适中

`

❌ 太少(1个):

输入:苹果

输出:🍎 苹果 – 水果

现在请写:飞机

(可能不够清晰)

❌ 太多(10个):

输入:苹果

输出:🍎 苹果 – 水果

输入:汽车

输出:🚗 汽车 – 交通工具

… 8个更多示例 …

现在请写:飞机

(浪费token)

✅ 适中(2-3个):

输入:苹果

输出:🍎 苹果 – 水果

输入:汽车

输出:🚗 汽车 – 交通工具

现在请写:飞机

`


Few-shot的高级技巧

技巧1:带解释的示例

`

输入:今天天气很好

输出:阳光正好,微风不燥,正是出门的好时节

解释:使用了环境描写,增加了画面感

输入:这个产品很不错

输出:这款产品让我眼前一亮,忍不住想推荐给大家

解释:使用了个人感受,增加了说服力

现在请改写:这本书很有意思

`

技巧2:反面示例

`

✅ 好的示例:

输入:今天天气很好

输出:阳光正好,微风不燥

❌ 不好的示例:

输入:今天天气很好

输出:今天天气很好(没有改写)

现在请改写:这本书很有意思

`

技巧3:难度递增

`

简单示例:

输入:苹果

输出:🍎 苹果 – 水果

中等示例:

输入:红苹果

输出:🍎 红苹果 – 水果,红色

复杂示例:

输入:大红苹果

输出:🍎 大红苹果 – 水果,红色,大

现在请写:小青苹果

`

技巧4:边界示例

`

正常示例:

输入:苹果

输出:🍎 苹果 – 水果

边界示例:

输入:未知水果

输出:❓ 未知水果 – 无法分类

现在请写:火龙果

`


实战示例

示例1:情感分析

`

请分析以下评论的情感:

评论:这个手机太棒了!

情感:正面

理由:使用了积极词汇”太棒了”

评论:电池续航太差了

情感:负面

理由:使用了消极词汇”太差了”

评论:屏幕显示效果一般

情感:中性

理由:使用了中性词汇”一般”

现在请分析:拍照功能很强大

`

示例2:代码生成

`

请按照以下风格写Python函数:

输入:计算两个数的和

输出:

def add(a: int, b: int) -> int:

“””计算两个数的和”””

return a + b

输入:计算阶乘

输出:

def factorial(n: int) -> int:

“””计算n的阶乘”””

if n <= 1:

return 1

return n * factorial(n – 1)

现在请写:判断一个数是否是素数

`

示例3:文案改写

`

请按照以下风格改写:

原文:今天天气很好

改写:阳光正好,微风不燥,正是出门的好时节

风格:使用环境描写,增加画面感

原文:这个产品很不错

改写:这款产品让我眼前一亮,忍不住想推荐给大家

风格:使用个人感受,增加说服力

现在请改写:这本书很有意思

`

示例4:数据提取

`

请从以下文本中提取信息:

文本:张三,男,25岁,北京

输出:

{

“姓名”: “张三”,

“性别”: “男”,

“年龄”: 25,

“城市”: “北京”

}

文本:李四,女,30岁,上海

输出:

{

“姓名”: “李四”,

“性别”: “女”,

“年龄”: 30,

“城市”: “上海”

}

现在请提取:王五,男,28岁,广州

`


🚇 地铁深读:Few-shot的原理

为什么Few-shot有效?

  1. 模式识别:AI从示例中识别出模式
  2. 格式学习:AI学习输出的格式
  3. 风格模仿:AI模仿示例的风格
  4. 减少歧义:示例明确了期望

Few-shot vs Fine-tuning

方法 数据量 成本 效果

|——|——–|——|——|

Few-shot 2-3个示例 中等
Fine-tuning 1000+样本

什么时候Few-shot不够?

  1. 任务太复杂:需要更多知识
  2. 领域太专业:需要专业训练
  3. 格式太特殊:示例难以覆盖

今日小结

方法 原理 适用场景

|——|——|———-|

Zero-shot 直接提问 简单、通用任务
Few-shot 给示例再问 复杂、特定任务

一句话记住: Zero-shot = 直接问,Few-shot = 给例子再问。例子越精准,答案越靠谱。


下期预告

AI PRO·Prompt Day 5 结构化输出与格式控制:让AI输出你想要的格式

我们将深入解析如何控制AI的输出格式,包括JSON、Markdown、表格等。


*攀岩者 | 技术总监 | 19年IT全栈实战*

*每天分享AI学习笔记,陪你从零基础到AI达人*

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注