假设我们有一笔固定的训练预算,可以训练一个更大的模型,也可以让一个较小的模型多读一些数据。两种选择都说得通,但该怎样比较?Scaling Laws 为这个问题提供了一种可计算的近似:先用小规模实验拟合损失与模型、数据的关系,再据此分配预算。我们从最简单的幂律开始,看看这件事如何实现,以及结论能用到哪里。
1. 幂律与双对数坐标
先固定其他条件,只让数据量 $D$ 变化。我们尝试用下面的形式近似测试损失:
$$L(D)=L_{\infty}+\frac{A}{D^{\alpha}},$$
其中 $L_{\infty}$ 是无法通过继续增加数据消除的损失下限,$A$ 和 $\alpha$ 由实验拟合。扣除下限后取对数,
$$\log\bigl(L(D)-L_{\infty}\bigr)=\log A-\alpha\log D$$
这样就得到一条斜率为 $-\alpha$ 的直线。这里取对数的是扣除下限后的损失,不能把原始损失的任何一段直线都直接当作同一个幂律。我们还可以代入 $2D$ 看看:超过下限的那部分损失变为原来的 $2^{-\alpha}$ 倍。数据翻倍带来固定比例的下降,剩余损失越来越小时,绝对收益也就越来越小。

图 1:数据规模与损失在双对数坐标中的近似线性关系。 图引自 Stanford CS336 课程材料。
2. 模型、数据与计算量
单独增加数据仍没有回答最初的预算问题。我们再把参数量 $N$ 放进来,采用一个常见的经验模型:
$$L(N,D)=E+\frac{A}{N^{\alpha}}+\frac{B}{D^{\beta}}$$
$E$ 表示不可约损失,第二项反映模型容量不足,第三项反映数据不足。若训练一个稠密 Transformer 的计算量近似为
$$C\approx 6ND,$$
那么固定预算 $C$ 后,增大参数量必然会减少可训练的 token 数,反之亦然。所谓 compute-optimal,就是在这条约束下寻找使损失最小的 $N$ 和 $D$。
将 $D=C/(6N)$ 代入损失模型,得到
$$L(N)=E+AN^{-\alpha}+B\left(\frac{6N}{C}\right)^{\beta}$$
现在只剩 $N$ 一个变量。我们对它求导并令导数为零,得到
$$\alpha A N^{-\alpha-1} =\beta B\left(\frac6C\right)^\beta N^{\beta-1}$$
整理后,$N^{\alpha+\beta}$ 与 $C^\beta$ 成正比,再代回计算量约束,就有
$$N_{opt}\propto C^{\frac{\beta}{\alpha+\beta}}, \qquad D_{opt}\propto C^{\frac{\alpha}{\alpha+\beta}}$$
若 $\alpha=\beta$,我们会得到 $N_{opt}$ 和 $D_{opt}$ 都随 $\sqrt C$ 增长。不过,两个指数是否接近,要由实验回答。上面的代数只能告诉我们:在这个损失模型成立时,最优分配怎样依赖拟合参数;它没有独立证明真实模型一定遵循该规律。
3. IsoFLOPs 与 Chinchilla
我们也可以反过来,不先假定联合损失的具体形式,直接做固定预算实验。Chinchilla 的 IsoFLOPs 方法就是这样:在同一计算预算下改变模型大小与 token 数,比较最终损失;找到每条曲线的低点,再拟合这些低点随预算的变化。这样,前一节的最优分配便对应到了图中可观察的位置。

图 2:同一计算预算下,模型过小或数据过少都会增加损失。 图引自 Stanford CS336 课程材料。
Kaplan 等人的早期结论更偏向扩大参数量,Chinchilla 则指出许多大模型训练得不够充分,在相同训练计算下使用更小的模型和更多 token 可能更好。两项结论并非一句参数与数据应按什么固定比例增长就能概括,因为拟合结果会受模型结构、数据质量、训练设置和预算范围影响。
4. token 数不等于有效数据量
还有一个被 $D$ 这个符号隐藏起来的问题:我们数了多少 token,却没有说明它们是什么。把同一篇文章重复十遍,与读十篇内容不同的文章,虽然 token 数相近,提供的信息未必相近。重复网页、模板文本和不同领域的数据,都可能改变拟合结果。
数据配比同样会改变结果。如果混合语料中过度提高某一领域比例,领域评测可能上升,通用能力却可能下降。因而真正的训练设计还要控制去重、质量过滤、领域比例与课程顺序。幂律给出总体趋势,不能替代数据工程。
5. 训练最优与部署最优
假设前面的最优分配已经找到了,我们是否就该选择那个模型?如果它还要提供长期服务,就需要把推理也算进去。用一个很粗略的模型,设训练成本为 $C_{train}(N,D)$,预期推理 $Q$ 个 token,并将单位 token 成本近似看作与参数量成正比,则总成本为
$$C_{total}=C_{train}(N,D)+\lambda QN$$
$\lambda$ 汇总硬件效率、服务方式和单位计算价格。推理次数很大时,选择较小模型并用更多数据训练,即使训练阶段不是最低成本,也可能降低长期总成本。

图 3:训练预算相同并不代表部署成本相同。 图引自 Stanford CS336 课程材料。
这也是蒸馏和小模型继续训练有实际价值的原因。最终选择还要考虑显存、延迟、吞吐、上下文长度和并发量,损失最低并不是唯一目标。
6. 怎样拟合一条可用的 Scaling Law
可靠的拟合需要覆盖多个模型规模和训练 token 数,并尽量保持架构、Tokenizer、优化器与数据分布一致。实验点过少,或只落在很窄的范围内,得到的指数很容易失真。出现训练不稳定、学习率不合适和数据质量变化时,测到的也未必是缩放规律本身。
外推尤其需要谨慎。幂律在已观察区间内成立,不保证跨越几个数量级后仍保持相同指数。模型结构、数据和训练方法发生变化时,应重新做小规模实验,而不是直接沿用旧曲线。
7. 使用时的限制
我更愿意把 Scaling Laws 当作组织实验和分配预算的工具。我们先提出一个能被数据检验的关系,再用它缩小下一轮实验范围;当数据分布、架构或部署目标改变时,也随之调整模型。这样使用,它不必准确预言一切,仍然能帮我们少做一些代价昂贵却信息有限的尝试。
参考资料:Stanford CS336 Lecture 9;Kaplan et al., Scaling Laws for Neural Language Models;Hoffmann et al., Training Compute-Optimal Large Language Models。