简介:本文系统对比零样本、单样本与少样本学习三种提示工程范式的核心差异,从示例数量、上下文成本、输出稳定性、适用场景与迁移注意事项等维度展开分析,帮助读者理解“该用哪种提示策略”以及“如何在不同任务中权衡示例投入与效果收益”,形成可落地的选型判断。
在大语言模型(LLM)的应用实践中,向模型“提问”早已不是简单地输入一句话。提示词(Prompt)是给模型的指令,它可以是一个问题、一段文字描述,也可以是带有若干约束条件的结构化描述。模型基于提示所提供的信息生成内容,从而得到符合预期的结果。
当提示词从“随手一问”转变为需要稳定、可控、可复现的工程实践时,提示工程(Prompt Engineering)便应运而生。它的目标是在不更新模型权重的前提下,通过设计与改进提示来提升模型表现,构建有效且可控的 LLM 系统。这种在不改动模型参数的情况下与模型沟通的方式,也常被称为上下文提示(In-Context Prompting)。
在同一技术框架下,根据提示中“是否提供示例”以及“提供多少示例”,可以划分出三种典型范式:零样本学习(Zero-shot Learning)、单样本学习(One-shot Learning)与少样本学习(Few-shot Learning)。三者共享同一个底层逻辑——用上下文引导模型输出,但在示例投入、能力边界与工程成本上存在显著差异。本文的对比对象即为这三种提示范式,重点回答“区别是什么、如何选择、迁移要注意什么”。
需要说明的是,这里的“学习”并非指模型参数发生更新,而是指模型在推理阶段通过上下文中的示例进行“临时适配”。理解这一点,是理解三者差异的前提。
零样本学习指在提示中不提供任何示例,仅通过任务描述、指令或约束条件,要求模型直接完成目标任务。其核心假设是:模型在预训练阶段已见过足够多样的任务形式,具备一定的推理与泛化能力,能够对“从未在提示中出现过的类别或任务形式”作出合理响应。
一个典型示意如下:
请判断下面这句话的情感倾向,只输出“正面”或“负面”:“这次升级后的体验比预期顺畅很多。”
这里没有任何标注样例,模型完全依赖指令理解任务边界。
单样本学习指在提示中提供一个示例,让模型通过这一个样例理解任务的输入输出格式与判断标准,再对新的输入进行预测。示例起到“格式锚点”和“任务示范”的双重作用。
示例:输入:“这次升级后的体验比预期顺畅很多。” → 输出:正面请判断:输入:“等待时间比说明的久了不少。” → 输出:
少样本学习指在提示中提供少量示例(通常为几个到十几个),通过多个样例让模型归纳任务的模式、边界与输出规范,再对新任务进行预测。示例数量增加,通常有助于模型更准确地把握任务意图,但也会带来上下文长度与成本的上升。
示例1:输入:“…… ” → 输出:正面示例2:输入:“…… ” → 输出:负面示例3:输入:“…… ” → 输出:中性请判断:输入:“……” → 输出:
三者可以理解为同一连续谱上的三个点:示例数量从 0 到 1 再到少量,引导强度逐步增强,上下文开销也同步上升。
在展开差异之前,先明确它们的共同点,有助于避免把“提示范式差异”误读为“模型能力差异”。
均不更新模型权重:三者都属于上下文提示范畴,模型的参数保持不变,所有“适配”都发生在推理阶段的上下文窗口中。这意味着它们都不依赖微调流程,部署门槛相对较低。
均依赖指令质量:无论是否提供示例,任务描述、输出格式约束、边界条件说明都会显著影响结果。示例不能替代清晰的指令,二者是互补关系。
均受上下文窗口约束:示例越多,占用的上下文越长,可用于承载实际任务输入的预算越少,长文本任务中这一约束尤为明显。
均存在输出不稳定性:同一提示在不同调用之间可能产生格式或措辞上的波动,三者都需要配合输出约束、校验与重试机制来提升工程可用性。
目标一致:都是希望在可控成本下,让模型准确、可靠地执行特定任务。
零样本完全依赖模型对指令的语义理解与先验知识,适合任务定义清晰、输出格式简单的场景;当任务涉及特定的分类体系、行业术语或非标准输出格式时,仅靠文字描述容易出现理解偏差。
单样本通过一个具体样例,把“抽象指令”转化为“可参照的输入输出映射”,显著降低格式跑偏的概率,但对任务边界的刻画仍然有限。
少样本通过多个样例覆盖更多情形(包括易混淆的边界样例),让模型归纳出更完整的判断标准,在复杂分类、风格模仿、结构化抽取等任务中通常表现更稳。但示例若选择不当或存在偏置,也会把错误模式一并“教”给模型。
示例数量直接决定上下文占用。零样本最省,单样本次之,少样本随示例数量线性增长。在批量调用场景下,示例部分会在每次请求中重复计入,长期成本不容忽视。这也是实践中常见的权衡:用更多示例换取更高稳定性,还是用更精简的提示配合后处理来降低成本。
零样本的输出波动通常最大,尤其在开放式生成任务中;单样本提供了格式锚点,输出结构更易稳定;少样本在格式与判断标准两个层面同时施加约束,一致性通常最好。但需注意,示例的书写风格、标签分布会直接影响输出倾向,示例中的系统性偏置会被模型继承。
零样本提示最短,编写与迭代最快,适合快速验证;单样本需要挑选并维护一个高质量样例;少样本需要构建示例集、控制示例长度、处理示例顺序与分布问题,维护成本最高。当任务定义发生变化时,少样本还需要同步更新示例集,存在“提示即配置”的维护负担。
零样本在专业领域或强格式要求下容易失准;单样本可能因单一样例的代表性不足而产生以偏概全;少样本则面临示例偏置、上下文超限、示例与真实输入分布不匹配等风险。三者都不能替代必要的结果校验与兜底策略。
| 对比维度 | 零样本学习 | 单样本学习 | 少样本学习 |
|---|---|---|---|
| 示例数量 | 0 | 1 | 少量(数个至十几个) |
| 引导强度 | 弱,依赖指令理解 | 中,提供格式锚点 | 强,覆盖更多情形 |
| 上下文开销 | 最低 | 较低 | 较高,随示例增长 |
| 输出一致性 | 通常最低 | 中等 | 通常最高 |
| 编写与维护成本 | 最低 | 较低 | 最高 |
| 典型适用任务 | 通用生成、简单判断 | 格式敏感任务 | 细粒度分类、复杂抽取 |
| 主要风险 | 理解偏差、格式跑偏 | 样例代表性不足 | 示例偏置、上下文超限 |
快速验证阶段:优先使用零样本,用最短提示验证任务可行性与模型基础能力,再决定是否引入示例。
输出格式严格的生产接口:在零样本基础上加入一个规范样例(单样本),通常能以较低成本显著降低格式错误率,再配合结构化校验与重试。
分类体系复杂或领域性强:采用少样本,并刻意覆盖易混淆的边界样例,同时控制示例总数以避免上下文膨胀。
长文本处理任务:示例会挤占输入预算,应优先精简示例或退回零样本加清晰指令,必要时通过分段处理降低单次上下文压力。
批量高频调用:需把示例的重复 token 成本纳入评估,在稳定性收益与调用成本之间做量化权衡。
从一种范式迁移到另一种时,需关注以下风险:
零样本、单样本与少样本学习并非互相替代的关系,而是同一提示工程框架下引导强度不同的三个档位。它们的核心差异来自“示例数量”这一变量:示例越多,任务理解越具体、输出越稳定,但上下文成本与维护复杂度也同步上升。决策的关键不在于哪种范式“更好”,而在于任务对一致性的要求、上下文预算的约束、以及团队对示例集维护的投入能力。理解这一权衡关系,才能在提示工程实践中做出与业务场景相匹配的选择。