把 GPT-3 "塞 32 个例子 AI 就能学会" 这件事讲清楚的中文综述:为什么 1170 次引用都说它必读
- 关联论文:2301.00234
一句话故事
arXiv 2301.00234 (Dong et al. 2022-12 v1,2024-10 v6)是清华 + 北大 + 苏州大学 + 微软亚研 14 位作者合著、历经六年八版的 in-context learning (ICL)综述 — 它把 "在 prompt 里塞几个例子,模型就能不更新权重地学会新任务" 这件事,从 GPT-3 论文里那个 32-示例的小实验,扩展成覆盖 训练策略 + 提示设计 + 能力分析 + 应用场景 + 开放挑战 的完整坐标系。今天所有 CoT、Auto-CoT、RAG、Agent 论文的"训练/提示/分析"三段式分类法,几乎都是这篇综述定的。
如果你用过 ChatGPT、Claude、Cursor、Windsurf,你大概率被提示过要"给模型几个示例":
例 1: 输入: 北京天气 → 输出: 晴,25°C
例 2: 输入: 上海天气 → 输出: 多云,28°C
现在输入: 深圳天气 →
模型秒答"多云,30°C"。模型没重新训练过,只是看了你给的几个例子就学会了新格式。
这就是 in-context learning (ICL),in-context learning 这个词最早出现在 GPT-3 论文里(Brown 2020),然后 2022 年底 Dong 等人写了这篇综述,把它从"一个实验现象"升级为"LLM 推理阶段的事实标准范式"。
到 2025 年,ICL 已经不只是"塞几个例子"—— ChatGPT 的"自定义 GPT"、Anthropic 的 MCP、Agent 的 Few-shot tool calling、Cursor 的"代码上下文"提示、Coze/Dify 的"工作流模板",底层全是 ICL 范式。而这一切的"分门别类法"起源于这篇综述 —— 它定义了 ICL 的三种阶段(检索 → 排序 → 集成)和三种视角(训练侧 / 提示侧 / 分析侧),这套坐标系现在还在用。
为什么 1170 次引用,六年八版,2025 年还要读
这事对以下几类人直接相关:
- 🧑🎓 LLM 推理 / Prompt 工程入门者:ICL 是 prompt engineering 的"理论课",不读这篇就读不懂为什么 few-shot 比 zero-shot 好、为什么示例顺序重要
- 🛠️ 做 RAG / Agent 系统的工程师:ICL 是 CoT、Few-shot、Tool-use 的共同地基 —— 综述给的"三阶段 pipeline checklist"可直接用在生产
- 📐 做模型评测 / 基准设计的研究员:综述 §3 (训练侧) 给出了"如何用 ICL 本身当评测方法"的视角,LongBench / SCROLLS 就是顺着这条线的工作
- 🎓 NLP 研究生:这是 ICL 的坐标系,几乎所有 2023 年后的 ICL 论文都引用它,读完这篇你能听懂 90% 的 ICL 后续论文
- 🤖 做 LLM Agent / Function Calling 的开发者:ICL 是 Agent 工具调用设计的基础,即使 MCP(2024-11)替代了部分 ICL 功能,工具 schema 设计的"few-shot 友好"原则仍然源自这套框架
这篇综述到底讲了什么:三阶段 + 三轴
1. ICL 的"形式化定义":把"塞例子"写成数学公式
定义:
给定:
任务指令 I (自然语言描述, 如"翻译成法语")
示例集合 D = {(x_i, y_i)} (k 个,通常 1-100)
测试输入 x_q
LLM 输出: ŷ_q = LLM(I, D, x_q)
关键约束: LLM 权重 W 在推理阶段不更新。
这段数学看起来简单,但它给整个领域定下了规矩:
- ICL ≠ fine-tuning:fine-tuning 更新权重 W,ICL 不更新
- ICL ≠ prompt tuning:prompt tuning 学一个软向量(连续 prompt),ICL 用自然语言示例
- ICL ≠ in-weight learning:这是 Min 2022 提出的对立假说 —— 模型的 ICL 能力是预训练期间"刻进"权重的能力,不靠 prompt 里那几个例子
2. 三阶段抽象:读这套综述 80% 价值在第一张图
[训练侧] [提示设计侧] [能力分析侧]
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│ MetaICL │ │ 示例选择 │ │ 涌现阈值 │
│ EPR │ ──> │ 示例排序 │ ───> │ 注意力机制 │
│ Continued ICL │ │ 示例格式 │ │ 隐式回归 │
│ Pretraining │ │ CoT/Auto-CoT │ │ 梯度下降近似 │
└────────────────┘ │ ReAct │ └────────────────┘
└────────────────┘
│ │ │
└────────────────────┴────────────────────┘
│
[应用:数据增强/RAG/Agent]
这张图是这篇综述被引最多的"产物":
- 训练侧:MetaICL(Min 2022, "让模型学会从示例学")、EPR(An 2023, "把示例组织成显式多步推理")、Continued Pretraining with ICL(Shi 2023, 在 1.5T tokens 上做 continuation)
- 提示设计侧:KATE(Liu 2022, k-NN 找相似示例)、示例排序(Lu 2022,顺序影响 25-50%)、CoT(Wei 2022)、Auto-CoT(Zhang 2022, 自动生成推理链)、ReAct(Yao 2022, 推理 + 行动交错)
- 能力分析侧:涌现阈值(6B → 13B → 70B 阶跃式跃迁)、注意力视角(Olsson 2022, "induction head"电路)、隐式回归(Akyürek 2023, Transformer ICL = 隐式最小二乘)
2023-2025 年几乎所有 ICL 论文都按这三轴归类 —— 你看一篇新 ICL 论文,先看它属于哪一轴,再看它改进了哪个子问题。
3. 关键数字:GPT-3 + LLaMA + CoT 实验
综述不报告新数字,但汇编了一手论文的核心数据:
- GPT-3 175B 的 ICL 提升:0-shot → 32-shot,SuperGLUE / LAMBADA / TriviaQA 等任务上 +5~25%
- LLaMA 1/2/3 的 ICL scaling:随模型规模,ICL 收益比 0-shot 优势扩大
- CoT 与 ICL 的协同:GSM8K 数学题,8-shot CoT 比 8-shot standard +18~30%
⚠️ 数字核验:这些数字都是 2020-2022 年 GPT-3 / LLaMA-1 时代的,不能直接套用到 2025 年 LLaMA-4 405B / GPT-4o / Claude 3.5 上。
对工程落地的三条启发
-
三阶段 pipeline 是 ICL 工程化标准:做 ICL 项目时,先决定检索(随机 / kNN / BM25 / 任务聚类),再决定排序(原始 / Lu 熵排序 / 自重排 / Diversity ranking),最后决定集成(single / vote / self-consistency) —— 综述给的就是直接 checklist。
-
Context window 预算管理:2025 年主流模型 context window 差异巨大: - GPT-4o-mini/GPT-3.5-turbo: 16k tokens → 单任务 ICL 安全上限约 30-50 示例 - Claude 3.5 Sonnet: 200k tokens → 100-shot 仍可工作,但 LongBench 2024 报告显示 >32k 后精度开始下滑 8-12% - LLaMA-3-8B: 8k tokens → 4-8 示例是安全区 - 经验法则:context 利用率(示例 tokens / 总 window) >60% 时,LLM 对指令的注意力开始被稀释,需要减少示例数 / 把任务模板 hard-code 到 system prompt
-
示例顺序敏感是真实生产风险:Lu 2022 的 25-50% 顺序影响在生产中是真实的。已验证有效的缓解: - 同类相聚(同类示例放一起,不随机打散) - 全局 → 局部(先放高置信度通用示例,再放边界 case) - Diversity Ranking(用 Sentence-BERT 最大化排列 diversity) - Self-Generated Ordering(让 LLM 自己生成 3 种排列,选 LLM 一致性最高的那个) - ⚠️ Auto-CoT 自动生成的推理链如果顺序排错,会把整个 ICL 带偏 —— Auto-CoT 本身需要人工抽检约 10% 的生成链。
⚠️ 三个 2025 年需要补的盲区
-
MCP / Function Calling 已替代部分 ICL:Anthropic 2024-11 发布的 MCP 已成为 Agent 工具调用的事实标准,ICL 的"示例检索"能力被 MCP 的"工具 schema 注册"部分取代——综述 v6(2024-10)没覆盖 MCP,这是 2025 年回看的主要空白。
-
"涌现阈值"叙事被部分反驳:综述把 ICL 能力的阶跃式跃迁作为核心叙事,但 Schaeffer 2023《Are Emergent Abilities a Mirage?》部分反驳 —— 今天业界更接受"连续过渡"。引用 ICL 数字时建议注明模型规模和 context 长度。
-
Long context 稀释 ICL:综述没量化这个事,但 LongBench 2024 实测 GPT-4 Turbo 在 32k 位置的 ICL 精度比 4k 位置下降 8-12%。长 context 下 ICL 性能是非线性的,引用 ICL 增益数字时必须注明 context 长度。
🎯 你能立即做的事
- 入门者:读综述 §2.1(ICL 形式化定义)+ §2.2(三阶段抽象图),把那张图背下来 —— 你看任何 ICL 论文都能 30 秒定位它是哪个轴的改进
- Prompt 工程师:用综述 §2.4 的"示例选择 / 排序 / 格式"三件套重新设计你现有的 prompt,通常能把精度提 5-10%
- RAG 工程师:用综述 §5(应用) + §E2(context 预算)设计你的检索 prompt,优先用 KATE-style k-NN 而不是随机采样
- Agent 开发者:把综述的"三阶段 pipeline checklist"翻译成你 Agent 的"system prompt + few-shot 示例 + post-processing" 三件套
- 研究者:读完综述后,补 Xi 2025《A Survey of LLM Agents》—— 综述里没覆盖的 MCP / Function Calling 部分,Xi 2025 补全
📌 一句话总结:Dong et al. 这篇综述定义了 ICL 的"训练/提示/分析"三轴分类法和"检索/排序/集成"三阶段 pipeline,六年八版持续维护,被引 1170 次,是 2023-2025 年几乎所有 ICL / CoT / RAG / Agent 论文的引用锚 — 即使 2025 年 MCP 已经替代部分 ICL 功能,这套"三轴三阶段"框架仍是 Agent / RAG 工程设计的共同语言。
🔔 评论区聊聊:你团队做 LLM 推理时,示例是怎么选的?随机?k-NN?任务聚类?换成综述里的"三阶段 checklist"后,实际精度提升了多少?如果你的 agent 没用 MCP,还能在"system prompt + few-shot" 这条路上挤多少性能出来?