少样本提示:用示例教会大模型新任务

少样本提示(Few-Shot Prompting)是提示工程里最常用、也最容易被低估的一项技术。它的核心思路极其简单:把几个「输入-输出」示例直接写进提示词,让模型照着样子完成任务,全程不需要任何参数更新。这种方法依赖的能力叫做上下文学习(In-Context Learning,简称 ICL)。本文从机制、设计技巧、边界与失效模式四个角度,讲清楚少样本提示到底是什么、怎么用、以及它的天花板在哪里。

什么是上下文学习与少样本提示

上下文学习是指:模型在推理阶段,仅凭提示中给出的若干示例,就能在新输入上给出符合示例模式的输出,而模型权重保持不变。这与我们在训练阶段让模型从数据中学习权重的方式完全不同。

根据提示中示例的数量,通常被分成三种设置:

  • Zero-shot(零样本):不提供任何示例,只给任务描述,例如「把下面的评论判断为正面或负面」。
  • One-shot(单样本):只提供一个示例。
  • Few-shot(少样本):提供少量(通常 3 到 10 个,也有研究用到更多)示例。

需要强调的是,示例数量并没有硬性下限。从工程实践看,「少样本」一般指能稳定改变模型行为的少量示例;当示例多到逼近上下文窗口上限时,它更接近一种轻量的检索增强。

下面是一个文本分类任务的少样本提示模板(用 ```text 表示):

请把影评分类为「正面」或「负面」。

影评:这家店的服务态度太差了,不会再来了。
情感:负面

影评:画面震撼,剧情也很打动人。
情感:正面

影评:价格合理,但口味一般。
情感:负面

影评:演员的表演非常到位,值得二刷。
情感:

模型会基于前三个示例的写法,续写出「正面」。注意示例本身已经隐含了格式约定:先给影评,再给「情感:」标签。

为什么模型看例子就能学会

一个自然的问题随之而来:模型权重没动,凭什么看几个例子就学会了?论文 Brown et al. 2020(arXiv 2005.14165)给出了几个相互补充的解释视角。

第一,元学习视角(meta-learning)。该论文认为,预训练阶段模型接触了海量文本,其中隐含了大量「任务结构」。当参数量足够大(GPT-3 达到 1750 亿),模型在预训练中实际上学会了「如何从上下文里快速适应新任务」这一元能力。换句话说,少样本提示把梯度更新「压缩」成了上下文里的软性引导,模型在提示中隐性地完成一次近似的推断。

第二,隐式贝叶斯推断视角。后续研究(如 Xie et al. 2021 等)从理论角度提出,当模型的先验覆盖了一族隐含概念时,看到若干示例后,模型会在隐空间中提高「与这些示例相符的那类概念」的后验概率,从而表现得像是完成了一次贝叶斯推断。示例越多、越一致,后验就越集中,输出也就越稳定。

第三,格式与分布的校准。示例不仅传递了「任务是什么」,还传递了「答案该长什么样」「各类标签大概占比多少」。这对对齐模型输出格式、降低随机性有立竿见影的作用。

示例设计:数量、质量与分布

少样本提示的效果并非「示例越多越好」或「随便给几个就行」,设计上有明确讲究。

数量选择

示例数量受两个因素约束:任务难度与上下文长度。简单任务(如固定格式分类)3 到 5 个示例往往足够;复杂任务(如特定领域抽取、风格化改写)可能需要 8 到 15 个才能稳定。但示例越多,占用 token 越多,单条请求成本上升,且可能挤压留给真正任务的上下文空间。建议先用 3 个示例跑通,再逐步增加并对照效果。

多样性与代表性

示例应当覆盖任务中出现的典型子情况,而不是重复同一模式。例如做意图识别,示例应分别覆盖「查询」「投诉」「建议」等不同意图,而非全给查询类。代表性不足会让模型误以为任务分布很窄,在处理未见情况时容易出错。

输入-输出格式一致

所有示例必须保持相同的结构:相同的字段名、相同的分隔方式、相同的标签写法。如果前两个示例用「情感:正面」,第三个却写「结果=正面」,模型可能被带偏。下面是一个格式一致的反面对比:

# 推荐写法:结构统一
句子:今天天气真好。
类别:积极

句子:这产品根本用不了。
类别:消极

# 不推荐写法:字段与分隔混乱
文本 -> 电影很无聊
标签是 消极
句子:服务一流
类别: 积极

标签分布校准

少样本提示会继承示例的标签分布。如果 10 个示例里 9 个标「正面」,模型会倾向于把新输入也判为正面,即便内容中性。因此示例的标签比例应尽量贴合真实业务的先验分布;当真实分布未知时,保持各类别均衡是最稳妥的默认策略。

排序与呈现:顺序很敏感

少样本提示对示例顺序相当敏感,这是实践中反复被验证的现象。

近因效应

语言模型在生成时更容易受到靠近输出的示例影响,这一现象常被称为近因效应(recency effect)。因此,把与当前任务最相关、最「标准」的示例放在示例列表的末尾,往往能提升稳定性。反之,把容易引发歧义的示例放在末尾,可能拉低整体表现。

分隔符与清晰度

示例之间要用清晰、稳定的分隔符(如空行、分隔线、固定前缀)。模糊的分隔会让模型分不清「哪里是一个示例的结束、哪里是任务输入的开始」,从而导致把示例内容当作输入来回答。

把英文指令翻译成中文。

英文:Turn off the lights.
中文:把灯关掉。

英文:Save the file to desktop.
中文:把文件保存到桌面。

英文:Open the browser and search for weather.
中文:

这里每个示例都用「英文:/中文:」对,且以空行分隔,模型能清楚识别模式。

与微调的边界

少样本提示和微调(fine-tuning)都能让模型适配新任务,但适用边界不同。

少样本提示的优势在于零训练成本、即时上线、易于迭代。改几个示例就能换任务,适合任务多变、数据稀缺或需要快速验证想法的场景。但它有明显天花板:

  • 受上下文长度限制,示例总量有限,无法承载大规模标注知识。
  • 对分布偏移(distribution shift)敏感,示例分布与真实分布不一致时效果波动大。
  • 同一条提示对示例顺序、措辞敏感,可复现性弱于训练好的模型。
  • 对超出模型已有能力的任务(如需要专业领域硬知识),示例救不回来。

微调的优势在于稳定、可复现、能吸收大量领域数据,适合任务固定、数据充足、对一致性与准确率要求高的生产场景。代价是需要标注数据、训练算力与上线管线,迭代周期更长。

一个务实的判断原则是:先用少样本提示快速验证任务可行性,当示例塞不下、效果不稳、或需要长期稳定服务时,再考虑微调或检索增强。

常见失效模式

少样本提示并非万灵药,以下情况容易失效:

  • 示例有噪声:示例本身标注错误或格式错误,模型会照错学错。
  • 任务超出模型能力:需要私有知识、复杂多步推理或严格数学运算时,单纯加示例提升有限。
  • 格式不一致:字段、分隔、标签写法不统一,模型无法归纳出稳定模式。
  • 标签分布严重失衡:示例偏向某一类,导致新输入被系统性误判。
  • 示例与真实输入分布脱节:用教科书式干净示例去应对口语化、噪声大的真实输入,泛化会变差。

与思维链结合:Few-Shot + CoT

当任务需要多步推理(数学、逻辑、复杂抽取),可以叠加思维链提示(Chain-of-Thought,CoT)。做法是:在少样本示例中,不仅给出输入与最终答案,还写出中间推理步骤,让模型照着「先思考、再作答」的方式输出。

问题:仓库有 12 箱苹果,卖出一半,又进货 5 箱,现在有几箱?
推理:先有 12 箱,卖出一半剩 12 / 2 = 6 箱,又进货 5 箱,共 6 + 5 = 11 箱。
答案:11 箱

问题:一本书 240 页,每天读 30 页,读 6 天后还剩多少页?
推理:6 天共读 30 * 6 = 180 页,剩余 240 - 180 = 60 页。
答案:60 页

问题:班级有 45 人,分成每组 5 人的小组,可以分几组?
推理:

Few-shot + CoT 在推理类任务上通常显著优于纯少样本,因为它把「如何思考」也示范给了模型。代价是示例更长、更占 token,且对示例推理步骤的正确性更敏感——错误的推理示范会直接带偏答案。

小结

少样本提示是把少量「输入-输出」示例放进上下文、让模型通过上下文学习完成新任务的方法,无需任何参数更新。它的有效性可以从元学习与隐式贝叶斯推断角度理解。实践中,示例的数量、多样性、格式一致性和标签分布都会显著影响效果;排序上要注意近因效应,把最相关示例放在末尾,并用清晰分隔符区隔。它与微调各有边界:少样本胜在快速、零训练,弱在受上下文长度与分布偏移限制;微调胜在稳定,弱在成本高。最后,示例有噪声、格式混乱或任务超出模型能力时,少样本会失效,而与思维链结合则能进一步提升推理类任务表现。

参考与延伸阅读

  • Brown, Tom B. 等(2020)。Language Models are Few-Shot Learners。arXiv:2005.14165。提出 GPT-3 与 in-context learning,是少样本提示的奠基论文。已核验。
  • Xie, Sang 等(2021)。An Explanation of In-context Learning as Implicit Bayesian Inference。提出上下文学习的隐式贝叶斯推断解释。待核实。
  • Wei, Jason 等(2022)。Chain-of-Thought Prompting Elicits Reasoning in Large Language Models。提出思维链提示,可与少样本结合提升推理表现。待核实。
  • Min, Sewon 等(2022)。Rethinking the Role of Demonstrations: What Makes In-Context Learning Work? 研究示例标签正确性、顺序与分布对 ICL 的影响。待核实。
  • Liu, Jiachang 等(2021)。What Makes Good In-Context Examples for GPT-3? 探讨示例选择与排序对效果的影响。待核实。
本文累计阅读