蜗蜗助手
让 AI 更懂你

如何通过提供示例(Few-shot prompting)来引导AI?

和AI沟通,有时感觉像是在跟一个很聪明但没啥经验的新同事说话。你让他做事,只说一句“把这个报告写了”,结果可能乱七八糟。但是,如果你拿几份写好的报告给他看,说:“照着这个感觉来”,他马上就能领悟。这就是“提供示例”(Few-shot prompting)的核心思路。

这东西听起来好像很技术,但其实就是“照猫画虎”的道理。你不用长篇大论地解释规则,直接给AI看几个例子,它就能明白你想要什么。 这种方法也叫“在上下文中学习”(In-context learning),意思就是AI在当前对话这个“上下文”里,通过你给的几个例子(shots)来学习。

你可能听过另外两个词:Zero-shot(零示例)和 One-shot(单示例)。Zero-shot 就是你什么例子都不给,直接下命令,比如“总结这篇文章”。 这种方法适合那些非常简单、AI在训练时已经见过无数次的任务。 One-shot 就是你只给一个例子,稍微引导一下。 而 Few-shot,就是给好几个例子,通常两到五个就够了。 当任务有点复杂,光靠指令说不清楚的时候,Few-shot 就特别好用。

举个简单的例子,假设你想让AI帮你做电影评论的情感分类,判断是“正面”、“负面”还是“中性”。

如果用 Zero-shot,你可能会这么问:
这部电影太棒了! ->

AI可能会回答“正面”,也可能回答“这是一个积极的评价”。输出的格式不太稳定。

但如果用 Few-shot,你可以这样做:
这部电影很好看。// 正面
剧情有点拖沓。// 负面
演员不错,但结局我不喜欢。// 中性
这部电影太棒了!//

你看,我给了三个例子,每个例子都清晰地展示了“输入 -> 输出”的格式。AI看到这个模式,就会明白:一,我要做的是情感分类;二,输出只要“正面”、“负面”或“中性”这几个词,而且格式是“//”后面跟着答案。 这样,它给出的答案就只会是“正面”,干净利落。

Few-shot prompting之所以有效,是因为它利用了大型语言模型最擅长的一件事:模式识别和模仿。 你给的例子,等于给它划定了一个清晰的框架。AI能从这些例子里学到好几样东西:

  1. 输出的格式:是想要一个词,一句话,一个列表,还是JSON格式?直接给例子比用语言描述要清楚得多。 比如,你想提取文章里的人名和职业,直接展示“姓, 名 [职业]”这样的格式,AI就能准确模仿。
  2. 语气和风格:你希望AI的回答是正式的,还是口语化的?是幽默的,还是严肃的?给几个符合你风格的例子,它就能学到那种调调。
  3. 任务的边界:有时候任务很难用语言精确定义。比如“写一句有创意的广告语”,什么算“有创意”?很主观。但如果你给几个你认为有创意的例子,AI就能更好地把握那个“度”。

那么,怎么才能用好 Few-shot prompting 呢?这事有点像教小孩画画,你的示范很重要。下面是我自己总结的一些实在的步骤和经验。

第一步是想清楚你的任务。你要AI做什么?分类、总结、改写,还是生成代码?任务越清晰,找例子就越容易。

第二步是准备高质量的例子。这是最关键的一步。好的例子能让AI事半功倍,坏的例子只会误导它。 选例子有几个原则:
* 清晰且相关:例子必须和你的最终任务直接相关。 别想让AI总结新闻,却给它看诗歌的例子。
* 格式统一:所有例子的格式要完全一样。 如果你决定用“输入:”和“输出:”这样的标签,那每个例子都要坚持用。 格式的统一性本身就是一种强烈的信号。
* 足够多样:例子要能覆盖你任务中可能出现的不同情况。 如果是做情感分类,你的例子最好同时包含正面、负面和中性的情况。 这样AI才能学会全面地看问题,而不是只会判断某一种情况。
* 数量适中:一般来说,2到5个例子效果最好。 例子太少,AI可能抓不住规律;例子太多,不仅会增加成本(因为提示词更长了),还可能超出模型的“上下文窗口”限制,导致AI“忘记”前面的例子。

第三步是构建你的提示词(Prompt)。结构很简单,就是把你的例子排好队,最后放上你真正想让AI处理的问题。一个常见的结构是:

[任务说明,可选但建议有]
[例子1:输入]
[例子1:输出]

[例子2:输入]
[例子2:输出]

[例子3:输入]
[例子3:输出]

[你的新问题:输入]
[留给AI回答的地方]

比如,你要让AI帮你把一些非正式的句子改写得更专业。你的prompt就可以这样写:

任务:把下面的用户反馈改写成正式的商业邮件回复。

反馈:东西坏了,快搞定!
回复:我们收到了您关于产品问题的反馈,并对给您带来的不便深表歉意。我们的技术团队正在紧急处理中。

反馈:这玩意儿咋用啊?
回复:感谢您的咨询。我们很乐意为您提供产品使用方法的详细说明,请问您具体在哪一步遇到了困难?

反馈:订单还没到,等到花儿都谢了。
回复:

AI看到这个结构,就会接着你的最后一个例子,生成一个专业的回复,告诉你订单状态正在查询中。

这里还有一个进阶技巧,就是把Few-shot和“思维链”(Chain-of-Thought, CoT)结合起来。 有时候,任务不光是简单的“输入->输出”,还涉及到一些推理步骤。这时候,你可以在例子里把思考过程也展示出来。

假设你要AI解决一个简单的逻辑题:“一个篮子里有5个苹果,3个橘子。小明拿走了2个苹果和1个橘子。篮子里还剩多少个水果?”

一个普通的Few-shot例子可能是:
问题:书架上有10本书,借走3本,还剩几本?
答案:7本

但如果用上思维链,例子就可以写成这样:
问题:书架上有10本书,借走3本,还剩几本?
答案:首先计算总共有多少本书,是10本。然后减去借走的数量,是3本。10减3等于7。所以还剩7本。

当你把这种带有推理步骤的例子给AI看之后,再问它苹果和橘子的问题,它也会模仿这种“一步一步想”的方式来回答,这样就大大降低了它算错的概率。

当然,Few-shot prompting也不是万能的。它有几个限制要注意。首先,它受限于模型的上下文长度。如果你的例子又多又长,可能会把空间占满。 其次,AI可能会对你给的例子“过拟合”,就是说它只会死板地模仿,缺乏灵活性,特别是当你的例子不够多样时。 最后,构造好的例子本身就需要花时间和精力。

总的来说,通过提供示例来引导AI,是一种非常直接且有效的方法。它把抽象的指令具象化,让AI能更准确地理解你的意图。这不需要你懂编程,也不需要你去训练模型,你只要会“打样”就行。下次你觉得AI没听懂你的话时,别急着重复指令,试试看,给它做个示范。

赞(0)
未经允许不得转载:蜗蜗助手 » 如何通过提供示例(Few-shot prompting)来引导AI?

评论 抢沙发

评论前必须登录!

 

你的AI灵感库与创作引擎

给想象力一个支点,让蜗蜗助手撬动AI的无限可能。

立即了解联系我们

登录

找回密码

注册