Learn AI · 模型硬功底(由内而外)
第 9 课 / 经典论文 P08  ·  阶段二:预训练范式(Brown et al., 2020)

GPT-3:
在 prompt 里给几个例子,
模型就当场学会了——你 prompt 工程的理论根

上一课 GPT-2 证明了「不微调、靠一句提示」也能干活,但还不够好。这一课 GPT-3 把模型再放大约 100 倍(175B),加一个动作——在 prompt 里给几个示范——表现就逼近专门微调的模型。 它回答你一个天天在做却没拆过的问题:为什么我在 prompt 里塞几个例子,模型就突然「懂了」、照着干,而我根本没训练它?
GPT-2 说:不微调也能干活(zero-shot)。GPT-3 把它推到决定性的一步:
不微调、不更新任何权重,只在 prompt 里给几个例子(few-shot),模型就当场「学会」并照做。
这叫 in-context learning(上下文学习)——而且它是大模型才有的涌现能力:小模型给例子没用,够大了才突然管用。你写的每一条带示例的 prompt,吃的都是这口红利。

一、立靶:能不能不微调,也达到「接近微调」的水平?

GPT-2 的 zero-shot 惊艳,但和专门微调的模型比,分数还差一截。当时的主流路线仍是「预训练 + 每个任务微调一套」。GPT-3 提出一个更彻底的赌注:

立靶:与其给模型「梯度更新」,不如给它「几个例子看看」?

GPT-3 不为任何下游任务更新权重。它把任务示范直接写进 prompt: 给几对「英文 → 法文」,再给一个新英文,模型就接着输出法文。 没有梯度、没有训练、没有任务头——模型只是在一次普通的前向推理里,「看了看例子」就照做了。这就是 in-context learning

二、抽框架:in-context learning 的三档(给几个例子)

同一个任务,按 prompt 里塞几个示范分成三档——这条轴你天天在调,只是没起过名字:

档位prompt 里有什么例子(英译法)
zero-shot只有指令,0 个示范翻译成法语:cheese →
one-shot指令 + 1 个示范翻译成法语:sea → mer / cheese →
few-shot指令 + 几个(典型 3–5)示范sea → mer / dog → chien / book → livre / cheese →
关键:这三档全程不更新一个权重

和 fine-tuning 的根本区别——fine-tuning 是改权重、永久生效;in-context learning 是把例子放进上下文、只在这一次推理里临时生效,下一个对话就忘了。 你在 prompt 里多塞两个示例 → few-shot;删掉示例只留指令 → zero-shot。你一直在这条轴上滑动,只是现在知道它叫什么了。

三、核心洞察:预训练让模型「学会了学习」(meta-learning)

GPT-2 的暗线是「任务藏在文本里」。GPT-3 把它升级成一句更狠的话—— 模型在预训练里不只学知识,还学到一种「认出任务模式、当场套用」的通用能力(meta-learning,学会学习)。

你给的那几个例子,不是在训练它,而是一份临时的「任务说明书」:模型从例子里认出「哦,这是英译法 / 这是情感分类」,然后调用它预训练时早就学会的那项本事。 所以叫「学会学习」——预训练学的是「怎么快速认领一个新任务」,prompt 里的例子只是把任务指给它看

四、动手玩:加例子,看 prompt 怎么搭、表现怎么涨

同一个任务(判断情感)。点不同档位,看 prompt 实际长什么样,以及为什么「多给一个例子」能让模型更准——全程没有任何训练

选档位: 

看出门道了吗:例子越多、格式越清晰,模型越容易「认出任务、对齐输出格式」。这也解释了你的体感——prompt 里示例的措辞、顺序、格式一变,效果就抖,因为模型全靠这几个例子来「认领任务」。

五、对照表(一):GPT-2 → GPT-3 的「再放大一档」

维度GPT-2(P07)GPT-3(本篇 P08)
参数1.5B175B(约 117 倍)
架构decoder-only + pre-LN同骨架,+ 交替的稀疏注意力层(省长上下文算力)
怎么做任务zero-shot(只给指令)zero / one / few-shot(可给示例)
核心论点语言建模就是多任务学习够大的模型是 few-shot learner(会 in-context learning)
对你的意义「换大模型啥都会一点」「prompt 里塞例子就管用」

六、对照表(二):in-context learning 是「大模型才有的涌现」

GPT-3 最重要的曲线:few-shot 相对 zero-shot 的增益,随模型规模急剧放大。小模型你给再多例子也没用,模型够大了,「给例子」才突然变成强力杠杆。

模型规模给几个例子(few-shot)有用吗说明
小模型几乎没用,给了也不会「认任务」ICL 不是设计出来的
规模到了才涌现
175B 大模型暴涨,few-shot 远超 zero-shot

🔮 这把「涌现」从 GPT-2 的苗头坐实了:in-context learning 本身就是一项随规模冒出来的能力。下一阶段 Scaling Laws(P10)/ Chinchilla(P11) 会告诉你:规模、数据、算力到底该怎么配,才最划算地买到这种能力。

七、映射到你的项目

你工作里的东西其实就是这篇论文的什么
你在 prompt 里塞 2–3 个「输入→输出」示例,模型就照着干就是 few-shot in-context learning——你 prompt 工程最核心的那招,理论根在这篇
「示例换个顺序 / 改个格式,效果就抖」因为模型全靠这几个例子认领任务、对齐格式,example 是它唯一的「任务说明书」
你纠结「这个任务该 few-shot 还是去微调」就是 ICL(不改权重、临时)vs fine-tuning(改权重、永久)的取舍——量大稳定走微调,灵活少量走 few-shot
「为什么小模型怎么调 prompt 都不灵,大模型一点就通」因为 ICL 是大模型才涌现的能力,prompt 技巧吃的是规模红利
你做 LLM 评分器(LLM-as-judge)时给评分示例同一招:用 few-shot 示范「什么算好/坏」,让模型对齐你的评分标准——本质是 in-context 地「认领评分任务」

八、检索练习(关掉上文,凭记忆答)

1. few-shot in-context learning 时,模型权重发生了什么?
2. 为什么小模型「给例子也不灵」,大模型「一给就管用」?
3. GPT-3 怎么解释「给几个例子就会做」这件事?

九、常见问题 FAQ

把这一课接到你真实工作上的几个关键问。点开看答。

既然 in-context learning 这么方便,什么时候还该选 fine-tuning?

取舍轴是「改不改权重」带来的几组权衡:

few-shot(ICL)fine-tuning
改权重不改,临时生效改,永久生效
上手成本几乎为零,改 prompt 即可要数据 + 训练 + 部署
每次推理成本更贵(例子占 token、每次都带)更省(任务已焊进权重)
适合任务多变、量小、要快试任务固定、量大、要稳要省

经验法则:先用 few-shot 把任务跑通、验证价值;稳定且高频了,再考虑微调降本提质。

为什么示例的顺序、格式一改,效果就抖?怎么办?

因为模型全靠这几个例子来「认领任务 + 对齐输出格式」——它没在训练,只是在模仿你给的模式。于是例子的顺序、措辞、标签分布、格式一致性都会影响它「认成什么任务」。GPT-3 论文里也实测到 few-shot 对这些敏感。

实操上:① 保持所有示例格式严格一致(同样的分隔符、字段名);② 标签分布别失衡(别全是正例);③ 把最有代表性的例子放前后两端;④ 多测几组顺序取稳的。这正是「prompt 工程」要打磨的手艺。

in-context learning 到底是不是「真的在学习」?模型里发生了什么?

权重层面:没有任何学习——一次前向推理,参数纹丝不动。说它「学习」是从行为上看:给了例子后它的表现像「学会了新任务」。GPT-3 的解释是 meta-learning:预训练已经把「认任务、套模式」的本事压进权重,推理时例子只是激活对应的能力。

一个有用的心智模型:例子是「检索 + 对齐」的线索,不是「训练信号」。模型在用它的注意力,从你给的几个例子里读出任务规则,再套到新输入上。所以它叫 in-context learning——学习发生在「上下文」里,不在权重里。🔮

本课主源

读原典:Brown et al. — Language Models are Few-Shot Learners(GPT-3, 2020)

建立直觉首选:Jay Alammar — The Illustrated GPT-2(自回归生成与 decoder-only 直觉,GPT-3 同源放大)。

阶段二(预训练范式)到此收官:GPT-1 立范式 → GPT-2 放大见涌现 → GPT-3 坐实 in-context learning。下一阶段 P09 T5 / P10 Scaling Laws:先统一「万物皆 text-to-text」,再量化「规模到底怎么配最划算」。

我是你的老师,随时提问。 比如:「few-shot 的例子放 prompt 越多越好吗?」「ICL 和 RAG 给的『上下文』是一回事吗?」 「为什么说 ICL 是 meta-learning 而不是普通的模式匹配?」——别带着模糊往下走。

参考:
Brown et al., Language Models are Few-Shot Learners, 2020;Alammar, The Illustrated GPT-2.