loss 随参数、数据、计算呈幂律——OpenAI 2020 年这篇论文第一次把「模型能变多强」变成一条可预测的曲线。它定义了 scaling laws 这门学科,也埋下了两年后被 Chinchilla 推翻的「大模型优先」论点。
这篇图解只画 Kaplan 原始论文里最值得看见的几张图:三条基本幂律的「元素周期表」、算力十亿倍该怎么花、过拟合的 N^0.74/D 边界、「收敛是低效的」的资源账,以及一个常被遗忘的推论——自然语言的熵猜想。Kaplan vs Chinchilla 的宏观对比见 CS336 Lec1 图解。
Kaplan 的核心发现:当 loss 只被一个因子瓶颈住时(另两个足够大),它对该因子呈幂律。在对数坐标下就是一条直线——直线的斜率就是指数 α。
α 是「翻倍收益」的度量:参数翻倍,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^0.74 / D把 N 和 D 同时变化时,过拟合程度只取决于一个组合:N^0.74 / D。要把它压在随机种子噪声内,数据只需亚线性增长——
D ≳ 5000 · N0.74 ⇒ 模型 ×8,数据只需 ×5
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⁹ 倍时 | 解读 |
|---|---|---|---|
| 模型 N | C^0.73 | ×10⁶·⁶ | 算力几乎全砸向更大的模型 |
| batch B | C^0.24 | ×10²·² | 用更大 batch 加并行 |
| 数据 D | C^0.27 | ×10²·⁴ | 数据需求增长很慢 |
| 步数 S | C^0.03 | ×1.9 ≈ 几乎不变 | 串行训练时间几乎不增 |
既然算力该砸模型、步数几乎不增,那就不该训练到收敛。Kaplan 推导出计算最优训练应停在收敛 loss 上方约 10%(精确值 = α_N/α_S ≈ 0.077/0.76)。和「训练到 2% 内」的常规做法比,达到同一 loss:
训练有个关键 batch size B_crit:batch ≤ 它时加大 batch 几乎不损失算力效率;超过它收益递减。它能用梯度噪声尺度预测,且只依赖当前 loss,不直接依赖模型大小——loss 每降 13%,B_crit 翻倍。
Bcrit(L) = B* / L1/αB , B* ≈ 2×10⁸ tokens,αB ≈ 0.21
需要 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。两条线最终会相交——意味着就算从不重复数据,计算最优训练也终将撞上过拟合墙。
如果模型大过 N* 就需要「质上不同」的数据才能继续,那也许到达 C*、N* 时,Transformer 已经榨干了自然语言数据里的全部可靠信息——L* ≈ 1.7 nats/token 可能就是自然语言每 token 熵的粗略估计。(数值不确定性达一个数量级,但思想很美:scaling law 的尽头可能就是语言的不可压缩下限。)
Kaplan 把这些关系比作「理想气体定律」——用少数宏观量(N、D、C)预言性能,不关心微观细节(层数、头数)。他期待未来能找到其下的「统计力学」,并提醒「more is different」:平滑的 loss 改善可能掩盖质变的能力跃迁。
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)。之后所有关于「该训多大模型、配多少数据」的讨论,都在这套语言里进行。