小样本与零样本:被模型吸收的技巧与留下的工程


zero-shot 成了今天所有模型交互的默认形态;few-shot 则从”通用涨分技巧”退守成几个特定场景的刚需工具。

一、发展始末:从 GPT-3 到推理模型的完整链条

先把主线摆出来(引用数为 Papers With Code 2026-11 口径):

时间 论文 干了什么 引用
2020-05 GPT-3 命名 zero/one/few-shot,不更新参数靠上下文做任务 6.4 万
2021-02 CLIP 视觉谱系:零样本迁移,ImageNet 追平有监督 ResNet-50 5.8 万
2021-09 FLAN 指令微调,教会模型”看懂题目” 5.5 千
2022-01 CoT few-shot 推理巅峰:8 个示例问倒基线 2.3 万
2022-03 InstructGPT RLHF 对齐,零样本成为默认交互形态 2.5 万
2022-05 Zero-shot CoT 一句咒语,零样本推理翻几倍 8.2 千
2022-09 Induction Heads 机制研究:找到 ICL 的内部回路 1.1 千
2022-12 Why Can GPT Learn In-Context 理论:ICL 等价于隐式微调 265
2023-04 SAM 视觉提示式分割,两条谱系在此合流 1.6 万
2023-05 USP 自生成示例:模型给自己造演示 15
2023-10 Analogical Reasoners “先回忆相似题,再解新题” 181
2024-04 Many-Shot ICL 长上下文时代:数百到千级示例 272
2025-01 DeepSeek-R1 推理模型:纯 RL 让思考内生化 5.3 千

这条线可以切成三段读。整个过程里最有代表性的一张图,是 CoT 论文的 Figure 1——同一道算术题,标准提示让模型直接给答案,思维链提示让模型先写中间步骤:

CoT 论文 Figure 1:标准提示直接给答案,思维链提示先写中间推理步骤

图源:Wei 等,Chain-of-Thought Prompting(NeurIPS 2022)Figure 1——8 个这样的带步骤示例,把 540B 模型推过了微调加验证器的 GPT-3。

2020-2022 上半年:概念奠基。GPT-3 用 1750 亿参数证明了一件事:不给任何训练样本、只在 prompt 里放几个示例,模型就能完成任务——它给这个现象起了一整套名字(zero/one/few-shot),也让”上下文学习”(ICL)成了研究对象。几乎同时,CLIP 在视觉侧走出另一条零样本路:4 亿图文对训出对齐空间,分类器都不用训练,把类别名当文本描述就能分类。FLAN 和 InstructGPT 随后回答了”怎么让零样本变强”:前者把 60 多个任务 verbalize 成指令做微调,137B 的模型零样本在 25 个任务里 20 个超过 175B 的 GPT-3;后者用人类反馈对齐,1.3B 参数的模型输出被人类偏好胜过 175B 的 GPT-3——从这以后,”直接用自然语言下指令”成为产品默认,zero-shot 赢下了第一局。

2022 下半年-2023:深挖”为什么”。技巧层面到了顶峰——CoT 用 8 个带推理过程的示例把 540B 模型在 GSM8K 上推过微调加验证器的 GPT-3;Zero-shot CoT 证明连示例都不要,一句”Let’s think step by step”就能让 MultiArith 从 17.7% 到 78.7%。机制研究同步展开:Anthropic 找到诱导头——实现 [A][B]…[A]→[B] 补全回路的注意力头,与 ICL 能力在同一点涌现;清华与微软的团队证明 attention 存在梯度下降的对偶形式,ICL 在功能上等价于一次隐式微调。也是在这个时期,研究开始问”人写的示例是不是必需的”——USP、SEC、Analogical Reasoners 先后让模型自己生成演示。

2024-2025:吸收与收官。长上下文把 few-shot 的天花板抬到”数百到千级示例”(many-shot),且效果能覆盖预训练偏置、追平微调;但同期的 DeepSeek-R1 用纯强化学习让推理能力内生涌现——模型自己会思考了,”给示例教它推理”完成历史使命。至此,prompting 作为研究前沿正式退潮。

二、两个词,各有两条谱系

读这个领域的论文,第一个坑是”zero-shot”这个词有两条独立的技术谱系。

NLP 谱系:上下文学习。GPT-3 定义的口径,区别只在 prompt 里给不给示例,参数全程不动:

prompt 构成 模型在干什么
零样本 任务描述 + 输入 纯靠指令理解任务
单样本 描述 + 1 个示例 现场照猫画虎
小样本 描述 + K 个示例(通常 2~32) 从示例归纳格式与规律

三种设置的形态,GPT-3 论文的 Figure 2.1 画得最直观——差别只在 prompt 里塞了几个示例,模型本体一个参数都没动:

GPT-3 论文 Figure 2.1:零样本/单样本/小样本三种设置下模型看到的 prompt

图源:Brown 等,Language Models are Few-Shot Learners(NeurIPS 2020)Figure 2.1

视觉谱系:零样本迁移。CLIP 的做法是把类别名拼成文本(”一张{猫}的照片”),用图文相似度当分类器,一次前向出结果,没有”给示例”这一步:

CLIP 论文 Figure 1:4 亿图文对预训练对齐,类别名当文本输入,相似度即分类器

图源:Radford 等,Learning Transferable Visual Models From Natural Language Supervision(ICML 2021)Figure 1。LLM2CLIP 的文本塔升级,提升的正是这条谱系的零样本能力。

两条谱系在 SAM 身上合流了:SAM 自称 zero-shot(提示式分割,不针对特定数据集训练),但它接收的”提示”——几个点、几个框——本质就是上下文示例的视觉形态(SAM 的点/框提示即是)。所以读论文遇到 zero-shot,先分清是”不给示例靠指令”还是”不用微调靠预训练对齐”,数字才不会比错对象。

三、本质:学习发生在激活里,不是权重里

ICL 最反直觉的地方:参数一个都没动,只是上下文变了,”学习”却发生了。机制上至今没有定论,三条主流解释:

诱导头(机制实证)。注意力头实现”上文出现过 [A][B],现在看到 [A] 就输出 [B]”的复制回路;Anthropic 观察到这类头与 ICL 能力在同一点涌现——小模型有强因果证据,大模型有相关性证据。

隐式微调(理论框架)。attention 存在梯度下降的对偶形式:示例先产生”元梯度”,再作用到原模型上得到一个”临时 ICL 模型”——行为上与显式微调多方面相似。这也给工程直觉背书:给示例和微调是同一件事的两个连续谱端,一个改激活、一个改权重。

贝叶斯任务定位。示例帮模型在隐式的任务分布上”定位”到具体任务——示例越典型,定位越准。

另一个工程上重要的观察:这个能力是规模涌现的。GPT-3 论文就发现小模型给示例反而可能更差——连”模仿格式”都不会。这条性质决定了后面所有工程分工。

四、两个方向各自怎么被强化

零样本侧的路线是”教会看题”:FLAN 的指令微调、InstructGPT 的人类反馈对齐,把零样本从”碰运气”做成产品默认。推理类任务再补一句 Zero-shot CoT 的咒语。这条线的终点是推理模型——思考被 RL 内生化了,连咒语都不用念。

小样本侧的路线是”把例题给对”:

  • 示例里带推理过程(CoT):8 个示例推到 SOTA;配 self-consistency 多路投票,PaLM 540B 在 GSM8K 到 74.4%

  • 示例顺序是个超参数:换一下顺序,性能能从接近 SOTA 掉到随机猜水平(原文表述:”the difference between near state-of-the-art and random guess performance”);用熵统计选序能拿 13% 的相对提升。生产上的对应物是 kNN 动态选例——按 query 检索最相似的示例注入 prompt

  • 示例数量上限被长上下文重拉:many-shot 实验到数百千级示例,性能持续上升,还能覆盖预训练偏置(few-shot 做不到),并追平微调——代价是推理成本随示例数线性增长。数据效率上,示例比标注更省:学 sequential parity 任务,8192-shot ICL 的效果,从头训练要多 20 倍的样本才追得上

    many-shot 论文附录 Figure A.13:8192-shot ICL(虚线)的效果,从头训练要多 20 倍样本才追平

    图源:Agarwal 等,Many-Shot In-Context Learning(2024)Figure A.13

五、热度为什么退了:四条吸收线

论文不再多,是因为这个方向被四条线瓜分吸收了:

推理技巧被推理模型吸收。CoT 的本质是”让模型在输出里展开中间步骤”,o1/R1 谱系直接把这件事变成训练目标(R1 纯 RL 涌现长思考)——用户不再写”step by step”,模型默认就展开。评测口径跟着转向:GPQA、MMLU-Pro 这些新基准用 0-shot CoT 口径,不再依赖人工示例。

知识来源被 RAG 接管。示例本来就不承载事实——示例教的是”怎么答”,不是”答案是什么”。要知识,检索比示例便宜且可靠(RAG 原论文即此立意)。

格式被结构化输出接管。要严格的 JSON,schema 约束解码比示例更硬——示例可能被忽略,约束解码不会。OpenAI 的 structured outputs、vLLM 的 guided decoding 都已生产化。

低垂论文摘完了。各种 prompting 变体的边际收益变薄,这个组合拳打完,审稿人和作者都移向了 RL、agent 和多模态。

这是典型的”研究热点沉淀为默认件”的曲线,dropout 和 batch-norm 走过一模一样的路:2015-2018 年是论文富矿,现在只是每个模型里的一行默认配置。

六、留下的四块阵地

退潮之后,few-shot 在工程上退守到四个场景——都不是情怀,是实测下来示例仍是首选方案的地方:

1. 小模型降本。ICL 增益随模型变小而变大:给足示例的小模型能追平比它大一个量级模型的零样本表现。生产上”小模型 + 精选示例”替代”大模型裸问”是标准的省钱打法,延迟还低。

2. 校准,而不是教学。这是 few-shot 最本质的现代定位:模型早就有能力,示例把输出分布校准到任务上。实证例子:GPT-4 做作文评分,不给校准样本连简单基线都不如,给几条标注样本就追平专用自动评分系统;临床 NER、低资源领域同理——模型懂领域知识,缺的是”这个任务长什么样”。

3. schema 管不到的”什么叫好”。结构化输出能约束字段,约束不了判分尺度、语气、领域惯例、边界 case——这些用示例表达最直接。DSPy 这类框架干脆把”选哪些示例”当成可优化的变量交给程序搜。

4. Agent 轨迹示例。给一两条完整的”观察—思考—工具调用—结果”轨迹当示例,是稳住 agent 行为模式的常用手段——工具调用的格式与节奏,示例比描述传得准。

另外两条边界上的动态值得知道:自生成示例这条线(USP 到 Analogical Reasoners,再到 many-shot 里的 Reinforced ICL)让模型先给自己造几个伪示例再答正式问题——zero-shot 的形态、few-shot 的效果,两个词的边界正在被抹掉;评测口径上 MMLU 至今还是 5-shot,且 2025 年的实测里即便 GPT-4.5 一级的模型,0-shot 换 5-shot 仍普遍 +4 个点上下——few-shot 对前沿模型也没有归零。

七、什么时候给示例:一张决策表

场景 建议
严格结构化输出,schema 能表达 约束解码 / structured outputs,别用示例
格式、判分尺度、语气这类 schema 外的要求 few-shot,2~5 个精选示例
量大、单次 token 成本敏感 微调(SFT 一次摊销,方法见 LoRA),或配 prefix caching
小模型、端侧部署 few-shot 优先于堆指令
需要事实与知识 RAG,示例只管格式
推理模型(内生思考) 不需要 CoT 示例,直接问
新任务可行性验证 先 zero-shot,再 few-shot 探顶,再决定要不要微调

选例三条原则:格式与目标输出完全一致(示例是格式契约);覆盖边界 case(正常例之外放一个例外例);标签分布平衡(示例里正例占八成,输出就会偏正——这是最常见的隐性偏置)。

八、示例工程的五个坑

示例顺序与选择敏感。同一组示例换个顺序能从接近 SOTA 波动到随机猜,且好顺序不跨模型迁移——上生产前把换序做成一个测试维度。

多数标签偏置与近因偏置。模型倾向跟随示例的答案分布和最近的示例,分类任务选例要平衡标签。

注意力稀释。示例太长会稀释 query 的注意力(lost in the middle),示例要精不要全。

对推理模型可能帮倒忙。已有系统研究”few-shot 什么时候反而有害”——给内生思考的模型塞 CoT 示例,可能把它的思路框死在你的示例路径上。

口径玄机。对比基准分数先对齐 shot 数:MMLU 是 5-shot、GSM8K 历史口径 8-shot CoT、新基准多用 0-shot CoT——口径不一致的比较都是自欺(口径出处:MMLU、GSM8K)。

九、局限

本文的实证数字引自 2020-2025 的论文与 2025-2026 的工程实践资料,这个领域迭代快:推理模型继续进化,many-shot 的经济性随缓存价格变化,自生成示例的边界也在移动。文中”四块阵地”的判断以当下工程共识为准,读时建议对照自己手上的模型实测。

参考

  • 2005.14165 — Language Models are Few-Shot Learners — NeurIPS 2020(GPT-3,ICL 的命名之作)
  • 2103.00020 — Learning Transferable Visual Models From Natural Language Supervision — ICML 2021(CLIP,视觉零样本谱系)
  • 2109.01652 — Finetuned Language Models Are Zero-Shot Learners — ICLR 2022(FLAN,指令微调)
  • 2203.02155 — Training language models to follow instructions with human feedback — NeurIPS 2022(InstructGPT,RLHF)
  • 2201.11903 — Chain-of-Thought Prompting Elicits Reasoning in Large Language Models — NeurIPS 2022
  • 2205.11916 — Large Language Models are Zero-Shot Reasoners — NeurIPS 2022(Zero-shot CoT)
  • 2104.08786 — Fantastically Ordered Prompts and Where to Find Them — ACL 2022(顺序敏感)
  • 2209.11895 — In-context Learning and Induction Heads — Anthropic 2022(机制:诱导头)
  • 2212.10559 — Why Can GPT Learn In-Context? Language Models Implicitly Perform Gradient Descent as Meta-Optimizers — 2022(ICL = 隐式微调)
  • 2304.02643 — Segment Anything — ICCV 2023(SAM,提示式分割)
  • 2305.14926 — Universal Self-Adaptive Prompting — 2023(USP,自生成示例)
  • 2309.14681 — Are Human-generated Demonstrations Necessary for In-context Learning? — ACL 2024(SEC)
  • 2310.01714 — Large Language Models as Analogical Reasoners — 2023(类比提示)
  • 2404.11018 — Many-Shot In-Context Learning — 2024(长上下文 few-shot)
  • 2501.12948 — DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning — 2025(推理模型)

文章作者: Halensea
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Halensea !
 本篇
小样本与零样本:被模型吸收的技巧与留下的工程 小样本与零样本:被模型吸收的技巧与留下的工程
zero-shot 赢成了所有模型交互的默认形态,few-shot 退守成小模型降本、输出校准、agent 示例四个工程阵地。
2026-11-06
下一篇 
微调框架 ms-swift 与 LLaMA-Factory 微调框架 ms-swift 与 LLaMA-Factory
两个微调框架的功能清单几乎重合——因为底层都是 transformers Trainer。真正的分野在清单之外:魔搭生态位、400+ 多模态覆盖、Megatron 并行与 GRPO 的集成度。本文从命令、数据、显存到部署评测逐环节对齐,最后给一张选型决策表。
2026-11-05
  目录