arXiv:2001.08361 · 2020-01-23

Kaplan Scaling Laws 图解

loss 随参数、数据、计算呈幂律——OpenAI 2020 年这篇论文第一次把「模型能变多强」变成一条可预测的曲线。它定义了 scaling laws 这门学科,也埋下了两年后被 Chinchilla 推翻的「大模型优先」论点。

Kaplan, McCandlish, Henighan, Brown, Chess, Child, Gray, Radford, Wu, Amodei Johns Hopkins · OpenAI

这篇图解只画 Kaplan 原始论文里最值得看见的几张图:三条基本幂律的「元素周期表」、算力十亿倍该怎么花、过拟合的 N^0.74/D 边界、「收敛是低效的」的资源账,以及一个常被遗忘的推论——自然语言的熵猜想。Kaplan vs Chinchilla 的宏观对比见 CS336 Lec1 图解

一、三条幂律:性能的「元素周期表」

Kaplan 的核心发现:当 loss 只被一个因子瓶颈住时(另两个足够大),它对该因子呈幂律。在对数坐标下就是一条直线——直线的斜率就是指数 α。

瓶颈:参数 N 参数 N(对数)→ loss α_N ≈ 0.076 大模型 小模型 瓶颈:数据 D token 数 D(对数)→ loss α_D ≈ 0.095 多数据 少数据 瓶颈:算力 C_min 计算 C_min(对数)→ loss α_Cmin ≈ 0.050 多算力 少算力
Figure 1. 三条基本幂律。纵轴都是 loss(越小越好),横轴是对数尺度。在 log-log 上是直线 = 幂律。趋势跨越 6–8 个数量级,上端看不到偏离。注意 α 越大下降越快——数据(0.095)比算力(0.050)「更值钱」。
怎么读这些指数

α 是「翻倍收益」的度量:参数翻倍,loss 缩小为 2^(−α_N) ≈ 0.95 倍(只改善 5%)。数据翻倍改善 6.4%,算力翻倍(最优分配下)改善 3.5%。幂律意味着边际收益递减,但永不为零——这就是「继续 scale 下去总会变好」的理论依据。

尺度常数(N_c ≈ 8.8×10¹³、D_c ≈ 5.4×10¹³、C_c ≈ 3.1×10⁸ PF-days)没有基本物理含义,依赖词表大小和分词方式。有意义的只有指数 α。

二、强依赖规模,弱依赖形状

把总参数量 N 固定,单独改宽 / 深 / 头数 / FFN 维度——loss 只变百分之几。宽深比能变 40 倍,性能几乎不动。这说明决定性能的是「总容量」,不是拓扑。

同一 N,三种形状,loss 几乎一样 48 层 d=1600 12 层 d≈3200 6 层 d=4288 三者 loss 差距 < 3% 为什么用「非嵌入」参数 N? 嵌入矩阵 n_vocab × d_model 50257 × d Transformer 主体 N ≈12·n_layer·d² 含嵌入 → 趋势模糊; 只数主体 N → 幂律清晰
Figure 2. 左:固定非嵌入参数 N,宽深比 40× 变化只换来百分之几的 loss 差异——所以 scale 就是数参数,不用纠结形状。右:嵌入矩阵占的参数很大但和性能关系弱,必须从 N 里扣除,scaling law 才干净。

三、过拟合的边界:N^0.74 / D

把 N 和 D 同时变化时,过拟合程度只取决于一个组合:N^0.74 / D。要把它压在随机种子噪声内,数据只需亚线性增长——

D ≳ 5000 · N0.74 ⇒ 模型 ×8,数据只需 ×5

参数 N(对数)→ 数据 D(对数)→ 安全区 (数据充足) 过拟合区 (数据不够喂饱模型) GPT-3 (175B) 在这条线上 D = 5000·N^0.74
Figure 3. 过拟合边界。线下方(多数据)安全,线上方(少数据)过拟合。GPT-3 恰好骑在线上——它的数据量对它的规模来说刚刚够,但 Chinchilla 会证明这只是「不崩」,远不是「最优」。
联合公式 L(N, D) 的三条设计原则

Kaplan 用三条原则推出 L(N,D) = [(N_c/N)^(0.8) + D_c/D]^0.103 这个形状:(1) 换词表只整体 rescale loss;(2) 固定 D、N→∞ 退化到 L(N),反之亦然;(3) 在 D=∞ 处必须可展开成 1/D 的整数幂——因为过拟合按 1/D 缩放(源于数据集方差的 1/D 标度)。第三条解释了为什么 N 和 D 不对称

四、算力十亿倍,该怎么花

这是 Kaplan 最有名、也最具争议的结论。当算力预算 C 增长时,最优的 N、batch B、步数 S、数据 D 各按不同的幂增长:

随 C_min 的幂C 翻 10⁹ 倍时解读
模型 NC^0.73×10⁶·⁶算力几乎全砸向更大的模型
batch BC^0.24×10²·²用更大 batch 加并行
数据 DC^0.27×10²·⁴数据需求增长很慢
步数 SC^0.03×1.9 ≈ 几乎不变串行训练时间几乎不增
算力 ×10⁹(十亿倍)该怎么分 模型 N ×10⁶·⁶ C^0.73 数据 D ×10²·⁴ C^0.27 batch B ×10²·² C^0.24 步数 S C^0.03 ×1.9 绝大头
Figure 4. 十亿倍算力增长,绝大部分(10⁶·⁶ 倍)应该变成更大的模型;数据和 batch 各拿 10² 倍出头的份额;串行步数几乎纹丝不动(×1.9)。这就是 Kaplan 的口号:「大模型可能比大数据更重要」——也是两年后 Chinchilla 要纠正的论点。

五、「收敛是低效的」:停在 10% 上方

既然算力该砸模型、步数几乎不增,那就不该训练到收敛。Kaplan 推导出计算最优训练应停在收敛 loss 上方约 10%(精确值 = α_N/α_S ≈ 0.077/0.76)。和「训练到 2% 内」的常规做法比,达到同一 loss:

学习曲线:在哪停? 训练步数 → loss 收敛 L(N,∞) +10%(在这停) +2%(常规) 计算最优 (早停) 训练到收敛 同一 loss,计算最优 vs 收敛 模型大小 ×2.7 更大 训练步数 ×0.13(省 7.7×) 总计算量 ×0.35(省 65%) 代价:模型更大、 更多并行才能跑完
Figure 5. 左:别等曲线趴平——在还差收敛 10% 时就停。右:为达到同一个 loss,计算最优训练用 2.7 倍大的模型、但只需 1/7.7 的步数、总共省 65% 算力。代价是要更大的模型、更多并行硬件。

六、关键 batch size:只认 loss,不认模型

训练有个关键 batch size B_crit:batch ≤ 它时加大 batch 几乎不损失算力效率;超过它收益递减。它能用梯度噪声尺度预测,且只依赖当前 loss,不直接依赖模型大小——loss 每降 13%,B_crit 翻倍。

Bcrit(L) = B* / L1/αB , B* ≈ 2×10⁸ tokens,αB ≈ 0.21

在 B_crit 训练 = 最优的时间/算力折中

需要 2·S_min 步、处理 2·E_min 样本。想要最少步数(最快)就用 B » B_crit;想要最少算力(最省)就用 B « B_crit。最大模型在收敛时 B_crit ≈ 1–2M tokens。Kaplan 的早期实验用了固定 batch(没按 B_crit 校准),这是它结论被 Chinchilla 修正的方法论根源之一。

七、被遗忘的推论:自然语言的「熵猜想」

论文第 6.3 节藏着一个少有人提起的漂亮推论。计算最优训练所需数据 D ∝ C^0.27 增长极慢,而要避免过拟合要求数据 D ∝ C^0.54。两条线最终会相交——意味着就算从不重复数据,计算最优训练也终将撞上过拟合墙

计算 C_min(对数)→ loss(对数)→ L(C_min) ∝ C^−0.050 (计算曲线,下降快) L(D(C_min)) ∝ C^−0.03 (数据受限,下降慢) 交点 C* C* ∼ 10⁴ PF-days
Figure 6. 熵猜想。两条 loss-下降曲线迟早相交:线是计算最优能达到的 loss(C 的 −0.050 次方),绿虚线是数据量能支撑的 loss 下限(C 的 −0.03 次方)。交点 C* ∼ 10⁴ PF-days、N* ∼ 10¹² 参数、D* ∼ 10¹² tokens、L* ∼ 1.7 nats/token。
Kaplan 的猜想:L* 是自然语言的熵

如果模型大过 N* 就需要「质上不同」的数据才能继续,那也许到达 C*、N* 时,Transformer 已经榨干了自然语言数据里的全部可靠信息——L* ≈ 1.7 nats/token 可能就是自然语言每 token 熵的粗略估计。(数值不确定性达一个数量级,但思想很美:scaling law 的尽头可能就是语言的不可压缩下限。)

八、遗产与被推翻

Kaplan 把这些关系比作「理想气体定律」——用少数宏观量(N、D、C)预言性能,不关心微观细节(层数、头数)。他期待未来能找到其下的「统计力学」,并提醒「more is different」:平滑的 loss 改善可能掩盖质变的能力跃迁。

Chinchilla(2022)推翻了「大模型优先」

Kaplan 说数据 D ∝ N^0.74(亚线性、大模型优先),Chinchilla 说 D ∝ N(线性、均衡)。差一个 N^0.26 因子——大规模上等于数倍的数据缺口,这就是 GPT-3 / PaLM 欠训练的量化根源。Chinchilla 纠正的两个方法论关键是:(1) 为每个预算单独调学习率;(2) 按 B_crit 校准计算。详见 CS336 Lec1 图解

尽管结论被修正,Kaplan 论文奠定了「scaling law 作为可预测科学」的范式:loss 是 N、D、C 的平滑幂律,可外推、可预算、可预先注册(preregister)。之后所有关于「该训多大模型、配多少数据」的讨论,都在这套语言里进行。