缩放法则与涌现 — 「做大」怎么从赌博变成工程
这一章讲三件事: 两套缩放法则各说了什么、谁对(GPT-3 当 年到底喂没喂够); 缩放法则能预言什么、不能预言什么(它能算损失——模型预测离正确答案差多远的那把尺,越小越好—— 算不出任务成绩); 以及站在公式对面的「涌现能力」——小模型没有、大模型突然会了的三样本事,和围绕它的争议。 主走查: 把书里的配比公式代进 GPT-3 的真实数字,亲手算出「它当年喂差了多少」。
1. KM 缩放法则:把「越大越好」写成公式
先说清这个词。缩放法则(scaling law)是一组量化公式,回答:模型性能随三个量怎么变—— 参数量(参数(模型里那些数字)的个数,记作 N)、数据量(记作 D)、 算力(投入的计算资源,显卡越多越大,记作 C)。 2020 年 OpenAI 的 Kaplan 等人最先给出,原书用两位共同一作 姓氏首字母称之为 KM 缩放法则1。它长得像这样(按原书式 2.1,只看参数那一条):
L(N) = (Nc / N)^0.076
L = 交叉熵损失(模型预测文本的「惊讶程度」,越低越好,单位是 nat)
N = 模型参数量;Nc = 实验定出的常数
另有 L(D)、L(C) 两条同型的式子,指数分别约 0.095、0.050
图说:三个量各自独立地压低损失;哪条指数大,多投入那个量就更划算。
公式的用法是算倍率。指数就是「翻 10 倍时该乘 10 的几次方」:
参数翻 10 倍,损失乘 10 的 −0.076 次方 ≈ 0.84,即下降约 16%;
而数据那条指数更大(0.095),同样翻 10 倍数据损失降约 21%——这两个「约 16%/约 21%」
是按公式算的演示值,不是书里直接给的数,但算法就是上式。
原书强调这组公式来自很宽的实验区间(数据 2200 万230 亿 token,参数 7.68 亿15 亿),
并且发现换架构对这条曲线影响不大2——这让「做大」第一次有了与具体设计无关的普适规律。
KM 法则还有一个值得记住的分解:总损失=不可约损失(语言本身就有的随机性, 谁来都压不下去)+可约损失(模型还不够好导致的,这一部分才能靠加大规模压)3。 这句话是后文「接近极限后还要不要继续做大」争论的根。
2. Chinchilla:参数与数据要配平
2022 年 DeepMind 的 Hoffmann 等人用更宽的实验(参数 7000 万160 亿,数据 50 亿5000 亿
token)重新拟合,得到 Chinchilla 缩放法则4。它与 KM 的差别不在公式形状,在资源分配:
给定一笔算力预算 C(≈6ND,即训练量约等于参数数乘数据量再乘 6),
参数和数据各分多少?原书把两套法则统一写成 C 的指数分配(式 2.5)5:
| 法则 | 参数指数 a | 数据指数 b | 偏好 |
|---|---|---|---|
| KM | ≈0.73 | ≈0.27 | 算力主要拿去堆参数 |
| Chinchilla | ≈0.46 | ≈0.54 | 两者大致均摊,数据略多 |
指数的读法:算力翻 10 倍,参数该乘 10 的 a 次方,数据乘 10 的 b 次方。 按 KM,10 倍算力≈参数 ×5.4、数据 ×1.9;按 Chinchilla,≈参数 ×2.9、数据 ×3.5。 同样的钱,KM 让模型「更大」,Chinchilla 让模型「读得更多」。
主走查:GPT-3 当年喂差了多少
书里给了三组真实数字,我们把账算出来(每一步都可验算):
已知(书中原数):
GPT-3:175B 参数,只喂了 300B token → 数据/参数比 ≈ 1.7 : 1
Chinchilla 模型:70B 参数,喂了 1.4T token → 数据/参数比 ≈ 20 : 1
LLaMA-3:8B 参数,喂了 15T token → 数据/参数比 ≈ 1875 : 1
第 ① 步:比比值。GPT-3 的 1.7:1 对 Chinchilla 建议的 20:1,
差了约 12 倍——原书的判语是「远低于该模型的学习容量」[6]。
第 ② 步:按 Chinchilla 配比,175B 参数该喂约 3.5T token(175×20),
实际只喂了 300B——约十二分之一。(这个 3.5T 是我们按 20:1 推的演示值,
书里只给了比值判据,没有直接给这个数。)
第 ③ 步:看后续。LLaMA-3 把 8B 参数喂到 15T token,比值 1875:1,
原书据此说:数据/参数比后来被大幅上修,
「数据超过缩放法则的早期估计」已是行业共识[6]。
走查的结论:GPT-3 不是参数太大,是书读得太少。 「数据喂够」这个今天看显然的道理, 是 2022 年才被 Chinchilla 论文正式写清的。
3. 缩放法则能预言什么、不能预言什么
原书用「可预测训练」一节讲法则的三个实际用途,和两个管不了的盲区6。
能干的:
- 省钱试错:先用小代理模型试数据配比,选中了再放大——GPT-4 报告说这能可靠预测最终性能7;
- 监控训练:损失曲线偏离法则预期=出事了,能早期发现异常6;
- 预期管理:法则的指数形式意味着收益递减,而且原书引 OpenAI 的发现—— 即使逼近不可约损失、通用指标不再动,内部表示质量仍在随规模变好8, 所以「损失降不动了」不等于「模型不会再变强」。
管不了的:
- 法则度量的是下一词预测的损失,不是任务成绩。损失降,任务通常变好, 但不保证——甚至存在 inverse scaling(逆向缩放):参数越大某些任务反而越差9;
- 原书引 GPT-4 报告的坦白:编码能力这类可以由法则预测,多数任务不行; 而上下文学习这种关键能力「只在特定规模突然出现,法则预测不了」9。 这句话正好接出下一节的主角。