本页数字均复述自论文原文并注明小节。注:本次精读通过 HTML 版全文获取了 §1–§3.9 的完整内容;§4 之后(数据污染专章细节、Limitations 全文、能耗等附录)抓取被截断未能直接核验,相关处已显式标注。
| 摘要短语 | 对应论文章节 | 本页解读章节 |
|---|---|---|
| "预训练+微调"范式仍需每个任务数千至数万标注样本;人类只需几个例子或一句指令 | §1 引言 | 第1章 |
| 训练 GPT-3:175B 参数自回归 LM,比此前任何非稀疏模型大 10× | §2.1 架构表 | 第2章 |
| 所有任务零梯度更新,任务与示例纯靠文本交互给出 | §2 四种设定定义、§2.4 评测协议 | 第3章 |
| 翻译/问答/完形及即时推理任务(拆词、算术、新词造句)表现强劲 | §3.1–3.9 结果 | 第4–5章 |
| 同时指出少数任务上 few-shot 仍挣扎、部分数据集有网络语料的方法学问题 | §3.7–3.8、§4 污染研究 | 第6章 |
| GPT-3 生成的新闻人类难以分辨;讨论社会影响 | §3.9.4、§6 Broader Impacts | 第6章(部分未核验) |
必读主线:§1 引言(三种设定的定义)→ §2.1 架构与 8 尺度 → §2.2 数据混合 → §3.2 闭卷问答 → §3.9 合成任务。可跳读支线:§3.6 阅读理解、§3.8 NLI(结论都是"弱",看小结即可)。跳过 §2.2 的代价最大:不懂数据混合权重,就无法批判性看待后面所有分数——你不知道每个基准在训练里被"预习"了几遍。
来源:论文 §1 引言、§2 开头、脚注 1。
学习目标:学完本章你应能精确复述 zero/one/few-shot 的定义并指出它们与传统 few-shot learning 的区别;解释作者为何引入 "meta-learning / in-context learning" 术语替代 "zero-shot transfer"。
四种设定按"所需任务特定数据量"排成光谱(图2.1):Fine-Tuning——数千到数十万标注样本做梯度更新;Few-Shot (FS)——推理时给 K 个示范(K 通常 10–100,受限于上下文窗口 n_ctx=2048 装得下的数量),零梯度更新;One-Shot (1S)——仅 1 个示范+自然语言描述;Zero-Shot (0S)——只有自然语言指令。关键澄清(脚注1):zero-shot 并非"从零个样本学习"——它常包含推理时示范之外的信息(指令本身),作者用"meta-learning 内环=in-context learning"来避免术语歧义,并声明这些术语刻意不回答"模型是在现场学新任务还是识别训练时见过的模式"。
动机三连(§1):①实用——很多任务收不到大规模标注集;②泛化——微调让模型过拟合窄分布,"名义达到人类水平的 benchmark 分数可能夸大了真实任务能力";③对齐人类——人靠一句指令就能切换任务。GPT-2 的 in-context 成绩被引作反例基线:Natural Questions 仅 4%、CoQA 55 F1(落后 SOTA 35 分以上)——"meta-learning 显然需要大幅改进才能实用"。这就是 GPT-3 立项时的起点。
一句话蒸馏:一句话记住本节——GPT-3 的真正发明不是模型,而是评测框架:把"给几个例子"变成了一种标准化的、可跨任务比较的能力度量。
闭卷自检:few-shot 与传统 meta-learning 的异同?为什么说 zero-shot 这个词其实名不副实?
来源:论文 §2.1 表2.1、§2.3。
| 模型 | n_params | n_layers | d_model | n_heads | d_head | batch(tokens) | lr |
|---|---|---|---|---|---|---|---|
| Small | 125M | 12 | 768 | 12 | 64 | 0.5M | 6.0×10⁻⁴ |
| Medium | 350M | 24 | 1024 | 16 | 64 | 0.5M | 3.0×10⁻⁴ |
| Large | 760M | 24 | 1536 | 16 | 96 | 0.5M | 2.5×10⁻⁴ |
| XL | 1.3B | 24 | 2048 | 24 | 128 | 1M | 2.0×10⁻⁴ |
| 2.7B | 2.7B | 32 | 2560 | 32 | 80 | 1M | 1.6×10⁻⁴ |
| 6.7B | 6.7B | 32 | 4096 | 32 | 128 | 2M | 1.2×10⁻⁴ |
| 13B | 13.0B | 40 | 5140 | 40 | 128 | 2M | 1.0×10⁻⁴ |
| 175B(GPT-3) | 175.0B | 96 | 12288 | 96 | 128 | 3.2M | 0.6×10⁻⁴ |
架构沿用 GPT-2(含其改进的初始化、pre-normalization、可逆 tokenization),唯一改动是交替使用稠密注意力与局部带状稀疏注意力(类似 Sparse Transformer)。全部 8 个模型各训练 3000 亿 token;上下文窗口统一 n_ctx=2048;FFN 维恒为 4×d_model。各档超参的选择依据是 GPU 布局的计算效率与负载均衡,而非理论最优——论文引用 Scaling Laws 说明验证损失对这些选择不敏感。
【解读者补充推导】每 token 前向约 2N FLOPs(矩阵乘法主导),反向约为前向 2 倍,合计 ~6N?——注意论文图2.2 采用的是 2ND 近似口径(不含反向系数差异与注意力项),这是 Scaling Laws 论文的约定。代入 GPT-3:C ≈ 2 × 175×10⁹ × 300×10⁹ ≈ 1.05×10²³ FLOPs ≈ 1216 petaflop/s-days。【未核验】论文附录 D 给出的精确总计算量数值本次未能核验,以上为按论文口径的复算。
用 12·L·H² 近似:175B 档 = 12×96×12288² ≈ 1.73×10¹¹ ✓ 与声称的 175B 吻合(嵌入层:2048×12288≈25M 可忽略)。13B 档:12×40×5140² ≈ 1.27×10¹⁰ ✓。8 个规格横跨三个数量级(125M→175B,1400 倍),这就是"scaling 曲线"的数据基础。
工程账单:为装下 175B,训练采用矩阵乘内部+层间两种模型并行混合,跑在微软提供的高带宽 V100 集群上(§2.3)。缓解显存压力的同时新增通信复杂度——这为后续 ZeRO/MegaScale 等系统工程论文埋下了整个研究方向。
一句话蒸馏:一句话记住本节——GPT-3 不是"一个模型",是 8 个精心配对的缩放点,专为验证幂律与 in-context scaling 而生。
来源:论文 §2.2 表2.2 及正文。
| 数据集 | tokens | 训练混合占比 | 300B tokens 训练中的 epoch 数 |
|---|---|---|---|
| Common Crawl(过滤后) | 4100 亿 | 60% | 0.44 |
| WebText2 | 190 亿 | 22% | 2.9 |
| Books1 | 120 亿 | 8% | 1.9 |
| Books2 | 550 亿 | 8% | 0.43 |
| Wikipedia(英文) | 30 亿 | 3% | 3.4 |
处理流水线三步:①下载 2016–2019 年共 41 个 CommonCrawl 月度分片,压缩明文 45TB,按与高质量参考语料的相似度过滤后剩 570GB ≈ 4000 亿 BPE token;②文档级模糊去重(跨数据集);③掺入策展语料提升多样性。核心设计:采样占比 ≠ 数据体量占比——小而精的 Wikipedia 占比 3%(体量的 0.6% 都不到),被读了 3.4 遍。
① 体量核对:4100+19+120+550+30 ≈ 4829 亿 token 总库容;训练只用 3000 亿 ⇒ 平均每 token 见 0.62 遍,与表中 epoch 列的加权均值相符 ✓。② 过滤率核对:45TB→570GB,保留率约 1.27%——CommonCrawl 的噪声程度可见一斑,这解释了为什么"轻过滤 CC 质量低于策展数据"(原文表述)。③ 一个值得指出的张力:Wikipedia 只占训练分布 3%,却是多数 NLP 基准的来源域——下游成绩与训练分布的错位正是后文 NQ/RACE 弱势的结构性原因【解读者推断】。
一句话蒸馏:一句话记住本节——数据工程的精髓不是收集更多,而是决定"谁被多读几遍"。
来源:论文 §3.2 表3.3。
| 设定 | NaturalQS | WebQS | TriviaQA |
|---|---|---|---|
| RAG(微调+开放域检索,15.3B) | 44.5 | 45.5 | 68.0 |
| T5-11B+SSM(微调,闭卷) | 36.6 | 44.7 | 60.5 |
| GPT-3 Zero-Shot | 14.6 | 14.4 | 64.3 |
| GPT-3 One-Shot | 23.0 | 25.3 | 68.0 |
| GPT-3 Few-Shot | 29.9 | 41.5 | 71.2 |
三条读法:① TriviaQA 上 zero-shot 已超 T5-11B 微调版 14.2 个百分点,one-shot 追平带检索的 RAG,few-shot 71.2% 成为闭卷设定的新 SOTA——这是全文最响亮的单项证据;② WebQS/NQ 上 zero-shot 惨不忍睹(14% 级)但 few-shot 大幅回升(41.5%/29.9%)——作者解读为答案风格分布外移,few-shot 提供了"格式校准";③ 三个数据集上性能随模型尺寸平滑上升(图3.3),支持"参数容量≈知识存储"假说。
一句话蒸馏:一句话记住本节——few-shot 的第一重价值不是学新任务,而是教老模型"这道题要什么格式的答案"。
来源:论文 §3.9,表3.9/3.10 及正文。
| 任务 | 2D+ | 2D− | 3D+ | 3D− | 4D+/− | 5D+/− | 2D× | 复合1DC |
|---|---|---|---|---|---|---|---|---|
| Few-shot | 100.0 | 98.9 | 80.4 | 94.2 | 25.5/26.8 | 9.3/9.9 | 29.2 | 21.3 |
| Zero-shot | 76.9 | 58.0 | 34.2 | 48.3 | 4.0/7.5 | 0.7/0.8 | 19.8 | 9.8 |
两个关键观察:① 13B 模型两位数加减只能对一半,175B 几乎全对——能力在最后一级规模上跳变;② 错误分析显示模型常忘进位(而非背错答案),且测试题在训练数据中的匹配率仅 0.8%(加法)/0.1%(减法)——基本排除查表记忆。这是论文中少有的"机制侧写",弥足珍贵。
随机插入字母还原(RI)67.2%、循环字母(CL)37.9%、易字谜(A2)39.7%、难字谜(A1)15.1%、倒序拼写(RW)≈0.4%——全军覆没于倒序。论文的解释很精彩:BPE 词元平均约 0.7 词/token,模型看到的是"词块"而非字母;做这些任务要先在内部把 BPE 结构拆开,而 RW 需要完全对称的重排,最难分解。zero-shot 下五个任务几乎全为零——证明这些确实是"现场学会"的。
LAMBADA 要求预测段落末尾的最后一个词,但标准 LM 不知道"只要一个词"——它会继续往下写。旧方案用停用词过滤器打补丁;GPT-3 用 few-shot 填空格式(Alice … her friend ___. → Bob)让模型从例子里自行推断输出约定,few-shot 达 86.4%(SOTA 68.0%,+18%),困惑度 1.92。这是"in-context 格式学习"的教科书案例:同一个模型、同一份权重,仅仅改变示范格式就解锁了一个基准。
一句话蒸馏:一句话记住本节——合成任务是照妖镜:它照出了"格式适应强、符号操作弱、规模门槛高"的三重底色。
闭卷自检:GPT-3 为什么做不了倒序拼写?算术错误的主要形态是什么?LAMBADA few-shot 格式解决了什么问题?
来源:论文 §3.7 SuperGLUE、§3.8 NLI、§2.2 污染声明;§4 细节未核验。
SuperGLUE few-shot(K=32,测试集)总分 71.0:超过微调 BERT-Large 的 8 项中的 4 项,COPA 92.0 接近 T5-11B 保持的 SOTA(93.9),ReCoRD F1 91.1 近 SOTA;但 WiC 仅 49.4%=随机水平。规律:凡是"比较两个句子片段"的任务(WiC 词义比对、CB、RTE),GPT-3 都系统性偏弱。ANLI 对抗推理上,小于 175B 的模型全部停留在随机水平(~33%),175B 也只走完了从随机到 SOTA 差距的一半(图3.9)。阅读理解 RACE-h 46.8 vs SOTA 90.0——差距近半。结论:NLI 类两段比较任务是当时 in-context learning 的清晰边界。
数据污染的自我披露(§2.2,原文坦白):为防泄漏曾尝试删除与所有基准 dev/test 集的重叠,但"过滤代码中的一个 bug 导致部分重叠被忽略,因训练成本无法重训"。补救措施是 §4 的系统量化分析:多数数据集影响极小;PIQA、Winograd 等被标星号存疑;个别严重者干脆不报告。LAMBADA 有"显著少数"内容在训练集中但分析认为影响可忽略(§3.1.2)。【未核验】§4 中具体的重叠比例数字本次抓取截断,未能引用。
主张 vs 事实:【论文声称】few-shot 有时能与微调 SOTA 竞争;【实验支持】TriviaQA/LAMBADA/COPA/ReCoRD 等单项;【同样来自实验的反面】WiC/NLI/RACE/QuAC 的系统性失败——论文难得地把正反面都摆在了明面上,这在 2020 年的大模型论文中是罕见的诚实。
一句话蒸馏:一句话记住本节——GPT-3 的强弱分界线不在"难不难",而在"任务形态是否匹配自回归续写的先验"。
| 证据 | 等级 | 备注 |
|---|---|---|
| TriviaQA/LAMBADA/SuperGLUE 测试服务器提交 | 较强 | 仅限能提交的少数任务;其余多为 dev 集 |
| 8 尺度 scaling 曲线(图1.2/1.3/3.8) | 较强 | 多尺度系统对照,本文方法论上最独特的资产 |
| 算术/合成任务 | 中 | 自制基准+自评,但有训练集匹配率交叉检查 |
| 带星号结果(PIQA 82.8、Winograd 系列) | 中偏弱 | 存在已确认的训练重叠,影响评估依赖作者自查 |
| "few-shot=新兴学习方式"的机制解释 | 主张 | 论文脚注1明确悬置了"学习vs识别"之争 |
论文图2.2 给出了一个惊人的效率事实:GPT-3 2.7B 与 355M 的 RoBERTa-Large 预训练算力同为约 50 petaflop/s-days——按 Scaling Laws 故意"大模型少喂 token"。这意味着 GPT-3 家族的单位算力换到的下游能力极不均匀:175B 的每一 FLOP 换到的 LAMBADA 分数远低于 2.7B。另一面:few-shot 推理每次都要在 2048 窗口内重读全部示范,无 KV-cache 复用的时代延迟成本高昂【解读者补充】。§6.3 承诺了能耗分析,但具体 MWh/CO₂ 数字位于本次抓取被截断的部分,未能核验,不作引用。
从"单一自回归目标 + 300B tokens + 8 个尺度 + 2048 窗口"四个事实出发,推演出本文的评测设计为什么长成现在的样子(三种设定、多选似然评分、归一化变体、污染星号)。