为什么你的 AI 输出总是时好时坏?
如果你的 AI 结果像掷骰子,今天出色、明天毫无用处,其实你并没有做错什么。你只是在「描述」你想要的东西,而不是「示范」给模型看。
解决不稳定最可靠的方法,并不是写一段更长的指令,而是一种叫做「少样本提示法」(Few-Shot Prompting)的技术:在你交付真正任务之前,先给模型两三个完整的示范例子。
这篇文章会告诉你如何建立一个少样本提示、应该用多少个例子,以及这个技术在什么情况下会悄悄失效。
什么是少样本提示法?
少样本提示法是一种在提示中放入少量「输入与输出」示范例子的技术,让模型直接模仿你的模式,而不是自己猜测。零样本代表没有例子,单样本是一个,少样本通常指两至五个。
这个概念源自 2020 年 OpenAI 的 Tom Brown 等人发表的研究论文《Language Models are Few-Shot Learners》,论文指出大型模型能够从提示中的例子即时学会一项任务,完全不需要重新训练。
说得直白一点,你不是在教模型新知识,而是在向它展示你期望的答案「长什么样子」。
为什么几个例子能让输出稳定这么多?
例子能消除歧义。像「专业地总结这段内容」这样的文字指令可以有上百种解读,所以模型每次都挑一种不同的。两个具体例子会把这上百种解读收敛成一个清晰目标,输出自然就不再飘移。
当你只用文字描述任务时,模型必须自行推测你要的格式、语气和详细程度。每一次推测,都是一次偏离你原意的机会。
当你用例子示范任务时,格式、语气和详细程度已经清楚呈现在例子里。模型能自由发挥的空间大幅减少,每次执行之间的差异也随之骤降。
这正是为什么在需要重复的工作上,例如分类工单、整理资料格式,或用固定风格写作时,少样本提示法是首选的解决方法。
如何写出一个好的少样本提示?
先写一句指令,接着用完全相同的「输入与输出」格式示范两三个例子,最后留一个空白输入让模型完成。务必让每个例子的结构完全一致,因为模型模仿结构的忠实程度,跟它模仿内容一样高。
最常见的错误,是每个例子的格式都不一样。如果例子一用项目符号、例子二用段落,你等于告诉模型两种都可以,不稳定就会回来。
以下是一个完整、可直接复制使用的少样本提示,用来把杂乱的客户意见整理成干净、带标签的摘要。
试试这个提示:
你负责分类客户意见。针对每一个输入,回传情绪(正面/中性/负面)、主题(一个词)以及一句话摘要。请完全依照格式。
输入:「这个 App 每次上传相片就当机,超烦。」
输出:情绪:负面 | 主题:稳定性 | 摘要:用户反映上传相片时多次当机。
输入:「客服五分钟就回复,真的很满意。」
输出:情绪:正面 | 主题:客服 | 摘要:用户称赞客服在五分钟内快速回应。
输入:「还可以吧,功能该有的都有。」
输出:情绪:中性 | 主题:综合 | 摘要:用户满意但对产品没有特别热情。
输入:「[在此贴上你的客户意见]」
输出:
留意每个例子都用完全相同、以直线分隔的排版。就是这一个决定,让第一百个输出看起来跟第一个一模一样。
应该用多少个例子,又该如何挑选?
两到五个例子足以应付大多数任务。先从两三个开始,只有在输出仍然飘移时才增加。超过大约五六个之后,效益通常递减,却消耗更多上下文窗口,所以例子多不代表一定更好。
挑选能覆盖真实边缘情况的例子,而不是只挑简单的。如果你只示范整齐、明显的输入,模型一遇到杂乱的输入就会出错。
以情绪分类任务为例,放入一个明显正面、一个明显负面,再加一个模棱两可的例子。那个模棱两可的案例,教会模型你希望它如何处理难以判断的情况,而这里正是大部分不稳定的来源。
顺序没有覆盖范围那么重要,但一个实用习惯是把最棘手的例子放在最后,因为越靠近结尾的例子,对下一个答案的影响通常略大。
少样本提示法在什么情况下会失效?
当你的例子彼此不一致、带有偏差,或数量太少而无法覆盖真实输入的多样性时,少样本提示法就会失效。如果一个清晰指令已足以完成任务,你却贴上冗长例子,那也只是白白浪费 token。这个技术会放大你示范的任何模式,包括你的错误。
如果你三个例子刚好全是负面,模型就会学到偏向负面的倾向,并过度套用。请让例子在你实际预期的结果之间保持平衡。
对于非常长或高度依赖推理的任务,例子可能会挤占上下文窗口,让真正的内容没有空间。这种情况下,一句较短的指令加一个强力例子,往往胜过五个薄弱例子。
也要诚实面对模型版本的差异。较新的模型比旧版更擅长遵循纯文字指令,所以去年需要五个例子的任务,今天可能只需要一个。要测试,不要假设。
立即试试:一个即插即用的少样本模板
你可以在接下来十分钟内,把下面这个模式套用到几乎任何重复性任务上。替换掉指令,再换上你自己的三个例子即可。
可重用模板:
[一句指令,描述任务以及你要的确切输出格式。]
输入:[例子一的输入]
输出:[例子一,依你目标格式的输出]
输入:[例子二的输入]
输出:[例子二,格式完全相同]
输入:[例子三,你最棘手的边缘情况]
输出:[你希望这个边缘情况如何处理]
输入:[你真正的输入]
输出:
对同一个输入连跑三次。如果三次输出现在一致,代表你的例子发挥了作用。如果仍有差异,代表你的例子彼此还不够一致,先把它们调整到位,再考虑增加数量。
总结
AI 输出不稳定,很少是模型的问题,几乎永远是「描述不清」的问题。而少样本提示法,正是用示范代替说明、把你想要的东西讲清楚的最快方法。
掌握这一个技术,你就从「祈祷模型读懂你的心思」,进步到「每一次执行都能稳定拿到同样品质」。
懂AI,更懂你 UD相伴,AI不冷。
把好技术变成可靠的工作流程
懂得少样本提示只是第一步。下一步是把它整合进一套每次都能稳定产出同样品质的工作流程。UD 团队手把手带你完成每一步,从提示设计、测试到实际部署,让 AI 真正为你所用。