第 41 篇 · LLM高级技巧

Few-shot Learning:给AI几个例子,它就学会了

从Zero-shot到Few-shot,解锁AI的快速学习能力

你上学时,老师讲题前会不会先举几个例子?

比如老师要教你"把主动句改成被动句",可能先说:

示例1:"小明吃了苹果" → "苹果被小明吃了"

示例2:"猫抓了老鼠" → "老鼠被猫抓了"

示例3:"我写完了作业" → "作业被我写完了"

看完这几个例子,你再遇到新句子,自然就知道怎么改了。

AI也是这样。给它几个例子,它就能学会怎么做。这就是 Few-shot Learning。

Few-shot Learning 工作全流程
📝 准备示例挑选2-5个典型例子放入📋 构造 Prompt指令 + 示例 + 待解问题输入🤖 大模型处理识别模式 → 激活知识参考上下文 → 生成答案✅ 输出结果格式和模式与示例一致🔒 模型参数不变仅影响本次对话输出💡 核心要点① 示例不修改模型参数(区别于微调) ② 示例作为"参考上下文"影响生成 ③ 对话结束即失效④ 示例质量直接决定输出质量 ⑤ 这是 In-context Learning 能力的具体应用
什么是Few-shot?

1
从 Zero-shot 到 Few-shot

在讲 Few-shot 之前,我们先理解几个相关概念。它们是一脉相承的:

Zero-shot → One-shot → Few-shot 的演进
Level 0Zero-shot Learning

不提供任何示例,直接问AI。就像你不教学生,直接让他做题。

用户:

把"小红买了书"改成被动句。

AI:

书被小红买了。

✅ 简单任务:AI靠预训练知识就能搞定
⚠️ 复杂任务:可能理解偏差,答非所问

Level 1One-shot Learning

提供一个示例。就像老师先讲一道例题,再让学生做类似的。

用户:

把主动句改成被动句:

"小明吃了苹果" → "苹果被小明吃了"

现在请改:"小红买了书"

AI:

书被小红买了。

✅ AI从这一个例子中学习到了模式
→ 成功率比 Zero-shot 高很多

Level 2+Few-shot Learning

提供多个示例(通常2-5个)。就像老师讲好几道例题,学生理解更深。

用户:

把主动句改成被动句:

"小明吃了苹果" → "苹果被小明吃了"

"猫抓了老鼠" → "老鼠被猫抓了"

"我写完了作业" → "作业被我写完了"

现在请改:"小红买了书"

AI:

书被小红买了。

✅ 多个示例让模式更清晰
✅ AI对任务的理解更准确、更稳定

Few-shot为什么有效?

2
Few-shot 为什么有效?

你可能会问:AI不是已经训练好了吗?为什么给几个例子就能让它"学会"新任务?

Few-shot 背后的三个原理
🎯

原理1:明确任务格式

示例告诉AI"你要输出什么格式"。比如上面的例子,AI看到了输入是主动句、输出是被动句的模式,就明白"哦,原来是要这样改"。没有示例,AI可能理解为要翻译、要改写、要解释……谁知道呢?

📚

原理2:激活相关知识

大模型在预训练时已经学过海量的语言知识。示例就像"触发器",把相关知识从模型的"记忆深处"调出来。给它几个翻译示例,它就会激活翻译相关的知识;给它几个代码示例,它就会进入编程模式。

🔗

原理3:上下文学习(In-context Learning)

这是大模型的核心能力之一。示例进入模型的上下文窗口后,会影响后续token的生成。模型不是在"修改参数",而是在"参考上下文"——就像你做题时会翻看前面的例题一样。

⚠️ 关键区别:Few-shot vs 微调

Few-shot 不改变模型参数。示例只是放进上下文窗口,影响这一次对话的输出。对话结束,模型"忘掉"这些示例。而微调是真的修改模型参数,变化是永久的。

→ Few-shot 是"临场学习",微调是"正式培训"

如何设计好的Few-shot示例?

3
如何设计好的 Few-shot 示例?

给示例不是随便给的。好的示例能让AI事半功倍,差的示例可能适得其反。

Few-shot 示例设计的5个原则
1

多样性

示例要覆盖不同的"情况"。比如你教AI做情感分析,不要只给"好评"的例子,也要给"差评"和"中性评价"的例子。否则AI可能会误以为"所有输入都是好评"。

2

代表性

示例要"典型",不要太边缘、太特殊。你给AI看的例子应该是"大部分情况下会遇到的",而不是"百年一遇的特殊case"。

3

格式一致

所有示例的格式要统一。如果第一个示例是"输入:xxx 输出:xxx",后面的也要一样。格式不一致会让AI困惑。

4

数量适中

研究表明,2-5个示例通常效果最好。给太多示例不仅浪费上下文空间,还可能让AI"过拟合"到示例上,对真正的问题反而处理不好。

5

与真实任务相似

示例要尽量接近你真正要解决的问题。如果你想用AI处理"产品评论的情感分析",示例就应该用产品评论,而不是用电影评论或餐厅评论。

Few-shot的实际应用

4
Few-shot 实际应用示例

常见场景的 Few-shot 写法

📝 场景1:文本分类

判断以下评论是正面、负面还是中性:

评论:"这个产品质量还行,就是物流太慢了。"
分类:中性

评论:"太棒了!完全超出预期!"
分类:正面

评论:"垃圾,千万别买!"
分类:负面

评论:"[你的评论]"
分类:

🔄 场景2:格式转换

把以下信息转换成JSON格式:

姓名:张三,年龄:25岁,职业:工程师
{"name": "张三", "age": 25, "job": "工程师"}

姓名:李四,年龄:30岁,职业:设计师
{"name": "李四", "age": 30, "job": "设计师"}

姓名:[新信息]

✍️ 场景3:风格模仿

用简洁的口吻重写以下句子:

"由于今天天气非常不好,所以我决定不出去玩了。"
→ "天气不好,不出去了。"

"我非常非常喜欢你,喜欢到无法用语言来形容。"
→ "我很喜欢你。"

[新句子]

🧩 场景4:推理任务

判断两句话是否表达相同意思:

"他今天没来上班" vs "他今天请假了"
→ 不相同(前者原因未知,后者是请假)

"这电影真好看" vs "这电影非常精彩"
→ 相同(都表达正面评价)

[新句子对]

Few-shot的局限性

5
Few-shot 的局限与注意事项

⚠️ 局限1:上下文窗口限制

每个示例都要塞进上下文窗口。示例太多、太长,会占用宝贵的空间。如果你的任务本身需要长上下文,给示例就要精打细算。

→ 精选示例,宁精勿滥

⚠️ 局限2:示例偏差会被放大

如果你的示例有偏差,AI会学到这个偏差。比如示例全是"好评→正面",AI可能学会"不管输入什么都输出正面"。

→ 确保示例覆盖各种情况

⚠️ 局限3:对模型能力有要求

Few-shot需要模型有强大的"上下文学习能力"。参数量太小的模型(比如几亿参数),从Few-shot中获益有限。

→ 使用足够大的模型

⚠️ 局限4:不如微调稳定

如果你有大量特定任务的数据,微调的效果通常比Few-shot更稳定、更可控。Few-shot适合"快速尝试"和"少量数据"的场景。

→ 数据多时考虑微调

Few-shot vs 微调

6
Few-shot vs 微调:怎么选?

Few-shot 与微调的对比
维度Few-shot微调
是否改参数否(临时生效)是(永久改变)
需要数据量几个示例通常几百~几千条
技术门槛低(写Prompt即可)较高(需要训练流程)
成本低(只消耗Token)高(GPU训练费用)
效果稳定性一般(依赖Prompt质量)高(专门训练)
适合场景快速尝试、少量数据、灵活需求生产环境、大量数据、稳定需求

💡 实用建议

  • 先试Few-shot:成本低、见效快,不行再考虑微调
  • 数据多了再微调:有100+条高质量标注数据时,微调通常更划算
  • 两者可以结合:微调后的模型仍然可以用Few-shot进一步提升
进阶技巧

7
Few-shot 进阶技巧

让Few-shot效果更好的技巧

🎯 技巧1:动态选择示例

不是每次都给同样的示例。根据用户的输入,从示例库里选最相关的几个。比如用户问的是"产品售后问题",就选售后相关的示例,而不是选物流相关的。

→ 用向量相似度来选示例,效果会更好

🔄 动态选示例:工作流程

📚 示例库100+ 条示例🔢 Embedding向量化💬 用户输入新问题🔢 Embedding向量化📊 相似度Top-K 匹配✅ 选出最相关的2-5 个示例

🔀 技巧2:打乱示例顺序

研究表明,示例的顺序会影响结果。有时把顺序换一换,效果会变好或变差。如果发现AI总是给出某种偏向性的答案,试试调换示例顺序。

→ 最近的研究建议:把不同类别的示例"穿插"排列,而不是"聚类"排列

🤔 技巧3:结合Chain of Thought

在Few-shot示例中加入推理步骤。不仅告诉AI"输入→输出"的对应关系,还展示"输入→思考过程→输出"的完整路径。这对复杂推理任务特别有效。

→ 这就是Few-shot CoT,我们上一篇讲过的内容

总结

8
核心总结

🎓 一句话总结

  • Few-shot是什么:给AI几个示例,让它从示例中学习任务模式
  • 为什么有效:明确格式、激活知识、上下文学习——不改参数,只借"语境"
  • 设计原则:多样、代表、一致、适量、相似——五个关键词
  • vs 微调:Few-shot是"临时借力",微调是"长期培训";先试Few-shot,不够再微调
  • 进阶技巧:动态选示例、打乱顺序、结合CoT——让效果再上一层楼

下一篇预告

👉 下一篇:In-context Learning

Few-shot 能工作的核心原因是"In-context Learning"——AI在对话中学习的能力。下一篇我们会深入探讨:为什么AI能在不修改参数的情况下"学习"?这背后的原理是什么?

✏️ 手绘图解 · AI Catch 出品

第 41 篇 / 共 84 篇 · 第五阶段:LLM高级技巧