Scaling Laws:谨慎解读

原文:Scaling Laws, Carefully,作者 Lilian Weng,发表于 2026 年 6 月 24 日。

本文按原文顺序整理,保留章节、表格、公式、图片与参考文献;图内英文不作改动,图注使用中文。译者已按原作者的翻译说明 在发布前邮件告知作者。原文之外的补充思考统一放在文末。

Scaling Laws 是深度学习中最重要的经验发现之一。它的形式很简单:随着模型规模 $N$、数据集规模 $D$ 和计算量 $C$ 增大,训练损失 $L$ 会沿着一条幂律曲线,以可预测的方式下降;在双对数图上,这条曲线表现为一条直线。我们可以把 Scaling Laws 看作一个描述计算量、损失、模型规模与数据之间关系的框架;其核心问题,是如何在 $N$ 与 $D$ 之间最优地分配宝贵的计算资源。

这种可预测性让 Scaling Laws 在实践中极具价值。常见做法是先用少量小规模实验拟合 Scaling Laws,再向外推算更大模型所需的 token 数和计算量。

符号含义
$N$模型规模,以参数量衡量。
$D$训练数据集规模,通常以 token 数衡量。
$C$训练计算量,以 FLOPs 衡量。一个实用的近似是 $C \approx 6ND$(Kaplan et al. 2020),其中前向传播约占 $2ND$,反向传播约占 $4ND$。
$E$不可约损失。
$L, \hat{L}(\cdot)$测试损失/测试损失预测函数;由于训练损失与测试损失高度相关,也可以指训练损失。
$\epsilon$泛化误差。

早期探索:机器学习损失的可预测性

早在 Scaling Laws 成为主流概念之前,人们就已经研究过泛化误差随规模变化的可预测性。

Amari et al.(1992)使用贝叶斯方法和退火近似,推导出四类学习曲线。

  1. 确定性学习算法、无噪声数据、唯一解:$\epsilon \sim c \cdot D^{-1}$,其中 $c$ 为某个常数。
  2. 确定性学习算法、无噪声数据、多个等价解:$\epsilon \sim c \cdot D^{-2}$。每加入一个新数据点,学习都会更快,因为模型只需要学习最优的参数流形,而不是寻找唯一的解点。
  3. 确定性学习算法、有噪声数据:$\epsilon \sim c \cdot D^{-1/2}$;数据噪声会增加学习难度。
  4. 随机学习算法、有噪声数据:$\epsilon \sim c \cdot D^{-1} + E$。这里,不可约损失 $E$ 是随机学习器无法进一步降低的残余误差,例如模型面对大规模数据时耗尽了自身容量。

这四类学习曲线都遵循幂律:

\[\epsilon \sim c \cdot D^\alpha + E\]

其中 $E$ 可以为 0,$\alpha = -2, -1, -1/2$。尽管其理论设置建立在一个简化的二分类任务上,但它为构建经验性的机器学习损失预测模型指出了一个有用方向。

最早的一批经验研究中,Hestness et al.(2017)解释了泛化误差、模型规模与数据之间的关系。给定训练数据规模后,他们通过网格搜索找到拟合效果最好的模型规模,再绘制损失相对于训练数据集规模的曲线。在深度学习的四个不同领域——神经机器翻译、图像分类、语言建模和语音识别——他们反复观察到以下模式:

  • 泛化误差相对于一组因素(例如数据规模)遵循幂律缩放。
  • 模型改进会使误差曲线整体平移,但似乎不会影响幂律指数。
  • 有趣的是,架构会改变幂律拟合的偏移量 $E$,却不会改变指数 $\alpha$。幂律曲线的斜率似乎是问题领域的属性,而不是模型架构的属性。
  • 为拟合规模为 $D$ 的数据集所需的模型参数量 $N$,同样遵循幂律缩放。

Deep-Speech-2 与注意力语音模型的学习曲线,以及不同规模 DS2 模型的学习曲线

图 1:左图为 Deep-Speech-2(DS2)和注意力语音模型的学习曲线;右图为不同规模 DS2 模型的学习曲线。当训练数据变大时,小模型的损失会进入平台期。图片来源:Hestness et al. 2017。

一张概念图把学习曲线分成三个阶段。在小数据区间,由于学习信号不足,模型表现只比随机猜测略好。到了中间的“幂律区间”,损失、数据与模型规模之间呈现幂律关系。最后的不可约误差区间,则可以归因于数据噪声等因素。

幂律学习曲线的三个阶段

图 2:幂律学习曲线各阶段示意图。图片来源:Hestness et al. 2017。

Rosenfeld et al.(2020)进一步尝试把误差同时建模为模型规模 $N$ 与数据规模 $D$ 的联合函数。他们覆盖了多种架构(ResNet、WRN、LSTM、Transformer)和优化器(Adam、SGD 变体)。经验上,当固定其中一个轴时,误差会相对于另一个轴按幂律衰减:

\[\hat{L}(D,N) \approx \frac{A}{N^{\alpha}} + E_N,\quad \hat{L}(D,N) \approx \frac{B}{D^{\beta}} + E_D\]

两者可以合并成一个联合形式:

\[\hat{L}(D, N) \approx \frac{A}{N^{\alpha}} + \frac{B}{D^{\beta}} + E\]

其中 $A > 0, B > 0, \alpha \geq 0, \beta \geq 0$ 是标量常数,$E$ 不依赖于 $N$ 或 $D$。

数据规模、模型规模与泛化误差的三维等高线图

图 3:数据规模、模型规模和泛化误差在 log-log-log 坐标中的三维等高线图。蓝点来自经验实验,曲面是蓝点之间的线性插值。图片来源:Rosenfeld et al. 2020。

因此,他们可以构建一个形式简单的参数函数,其参数为 $\mathbf{\theta} = \langle A, B, E, \alpha, \beta \rangle$。只需训练一组低于特定阈值的小规模配置 $(D,N)$,就能预测超过相应阈值的更大配置所对应的期望损失。

在小规模配置上拟合参数化误差模型并向更大规模外推

图 4:在小规模配置上拟合参数化误差模型,并向更大的模型/数据区间外推。(a)实验设置示意图;(b)ImageNet、(c)WikiText-103 和(d)CIFAR100 上的实验结果,其中包含三种架构(WRN、VGG、DenseNet)与两种优化器(SGD、Adam)的误差估计。图片来源:Rosenfeld et al. 2020。

补充说明:这些早期工作依赖经典学习理论中的直觉,例如使用 VC 维——模型能够打散的最大点集的基数——作为容量的代理。但在现代深度学习研究中,VC 维往往过于粗糙,无法解释模型行为;相比理论给出的最坏情形边界,经验幂律反而更简洁,也更实用。

数据无限区间的 Scaling Laws

Kaplan 等人的 Scaling Laws

Kaplan et al.(2020)让 Scaling Laws 这一概念在语言建模社区中广为人知。他们发现,在多个数量级范围内,交叉熵测试损失 $L$ 分别相对于模型规模 $N$(不含 embedding 层)、数据集规模 $D$ 和训练计算量 $C$ 遵循幂律。这些发现与上一节的早期工作一致,但 Kaplan 等人把重点放在 Transformer 语言模型上,并以更大规模的经验实验将其形式化:非 embedding 参数量从 768M 到 1.5B,数据集规模从 22M 到 23B token。论文中的所有训练运行都采用相同的学习率调度:先线性 warmup 3000 步,再用余弦调度衰减到零。

主要发现如下:

  • 损失 $L$ 分别相对于 $N$、$D$ 和 $C$ 遵循幂律;要获得最优性能,三者必须同步扩大。
  • 训练曲线遵循可预测的幂律,其参数大致不受模型规模影响。
  • 大模型的样本效率更高,即达到给定损失所需的优化步数和数据点都少于小模型。
  • 与单纯扩大规模相比,宽度、宽高比等架构细节的重要性较低。
  • 训练损失与测试损失正相关。这听起来很平常,却是预训练工作的基础。另一方面,预训练损失的改善能否迁移到后训练评测,仍需单独研究。
  • 在固定计算预算下,训练一个非常大的模型并在收敛前停止,比让一个较小模型一直训练到收敛更高效。这正是 Chinchilla Scaling Laws(下一节)与之分歧的地方:Kaplan 等人拟合出的指数更大,因此高估了最优模型规模。

他们用一个方程概括 $N$ 与 $D$ 对损失的联合影响:

\[\hat{L}(N,D) = \left[ \left(\frac{a}{N}\right)^{\frac{\alpha}{\beta}} + \frac{b}{D} \right]^{\beta}\]

这个形式带来一个很好的推论:过拟合程度——即模型过于复杂或数据量太小——主要取决于比值 $N^{\alpha / \beta}/D$。这说明,为避免训练受到数据限制,数据量必须按照特定比例随模型规模增长。

测试损失相对于计算量、数据集规模和参数量的幂律关系

图 5:跨越多个数量级后,测试损失相对于计算量、数据集规模和参数量仍呈幂律关系。图片来源:Kaplan et al. 2020。

最有影响力、事后看来也最具争议的结论,是计算最优分配。Kaplan 等人得到 $N_\text{opt} \propto C^{0.73}$,并据此认为模型规模应比数据集规模增长得更快。具体来说,当计算量增加 10 倍时,他们建议模型规模扩大约 5.5 倍,而训练 token 只增加约 1.8 倍。之后的 Chinchilla 论文推翻了这一建议,认为这种做法会让大模型处于严重的训练不足状态。

Kaplan 等人的另一项有用分析,是根据 $D$ 和 $N$ 近似估算训练所需的 FLOPs。每次乘加运算按约 2 FLOPs 计算。

不同 Transformer 架构组件的参数量与计算量估算

图 6:不同 Transformer 架构组件的参数量与计算量估算。记层数为 $n_\text{layer}$,模型宽度为 $d_\text{model}$(等于 $d_\text{embed}$;原表中的记号并不一致),前馈层维度为 $d_\text{ff}$(通常等于 $4d_\text{model}$),注意力维度为 $d_\text{attn}$(通常等于 $d_\text{model}$),上下文长度为 $n_\text{ctx}$,词表大小为 $n_\text{vocab}$。图片来源:Kaplan et al. 2020。

在标准配置 $d_\text{attn}=d_\text{model}=d_\text{ff}/4$ 下,如果在参数量 $N$ 和每 token 前向计算量中排除 embedding 层,则有:

\[\begin{aligned} N &= n_\text{layer} d_\text{model} 3d_\text{attn} + n_\text{layer} d_\text{attn}d_\text{model} + n_\text{layer}2d_\text{model}d_\text{ff} && \text{(不含 embedding 层)} \\ &= 2n_\text{layer}d_\text{model}(2d_\text{attn}+d_\text{ff}) \\ &= 12n_\text{layer}d_\text{model}^2, \\ \\ C_\text{fwd} &= 2n_\text{layer}(d_\text{model}3d_\text{attn} + n_\text{ctx}d_\text{attn} + d_\text{attn}d_\text{embed} + 2d_\text{model}d_\text{ff}) \\ &= 2n_\text{layer}(12d_\text{model}^2+n_\text{ctx}d_\text{attn}) \\ &= 2N + 2n_\text{layer}n_\text{ctx}d_\text{attn} \\ &\approx 2N && \text{(假设 }n_\text{ctx}<12d_\text{model}\text{,且 }n_\text{ctx}\text{ 项相对较小)}. \end{aligned}\]

然后,把反向传播 FLOPs 计为前向传播的两倍,因为反向传播要分别针对输入激活与权重梯度执行两次矩阵乘法。因此,每个 token 的训练 FLOPs 总计约为 $6N$,在 $D$ 个 token 上完成训练所需的总 FLOPs 约为 $C \approx 6ND$。

Chinchilla Scaling Laws

Chinchilla 论文(Hoffmann et al. 2022)采用更谨慎的实验设计,研究了固定计算预算 $C$ 下最优模型规模 $N$(包含 embedding 在内的总参数量)与 token 数 $D$ 的关系,并得到了一个与 Kaplan 等人略有不同的答案。

龙猫的样子

图 7:你应该知道 chinchilla(龙猫)长什么样 😊。图片来源:ChatGPT 生成。

核心问题是:在约束 $\text{FLOPs}(N,D)=C\approx 6ND$ 下,怎样分配资源才是最优策略?换句话说,当 FLOPs 有限——给定数量的 GPU 只能运行给定时长——我们应当如何在更多数据 token 与更多模型参数之间做选择?

\[N_\text{opt}(C),D_\text{opt}(C) =\operatorname*{arg\,min}_{\text{s.t. }\text{FLOPs}(N,D)=C}\hat{L}(N,D)\]

Chinchilla 论文给出了三种设计得很整齐的 Scaling Laws 拟合方法。

经验实验覆盖 400 多个模型,规模从 70M 参数到 16B 以上,训练 token 从 5B 到 500B。实验假定每个训练 token 都是唯一的,也就是处于数据无限区间。所有运行都使用余弦学习率调度,在整个训练过程中把学习率衰减 10 倍。对不同模型规模进行扫描,就能描出计算最优前沿。

方法一:固定模型规模,改变 token 预算

对于每个参数量 $N$,分别用不同 token 预算训练若干次,并记录每个 FLOPs 预算 $C$ 下达到的最小损失。

Chinchilla 方法一:不同模型规模在各个 FLOPs 预算下的训练损失曲线

图 8:Chinchilla 方法一。扫描不同模型规模时,各个 FLOPs 预算下的训练损失曲线。图片来源:Hoffmann et al. 2022。

方法二:IsoFLOP 曲线

固定计算预算 $C$,绘制最终损失相对于参数量 $N$ 的曲线。每条等 FLOPs 曲线在对数空间中都近似为一条抛物线,其最低点标记了该计算预算下的最优模型规模。在多个预算上重复这一过程,就会在图中描出一条幂律直线。

Chinchilla 方法二:IsoFLOP 抛物线

图 9:Chinchilla 方法二。每条 IsoFLOP 抛物线的最低点,就是该预算下的计算最优模型规模。图片来源:Hoffmann et al. 2022。

方法三:参数化拟合

直接拟合与 Rosenfeld et al.(2020)相同的参数函数:

\[\hat{L}(N,D)=\frac{A}{N^\alpha}+\frac{B}{D^\beta}+E\]

在约束 $\text{FLOPs}(N,D)=C\approx 6ND$ 下最小化 $\hat{L}(N,D)$,实际上可以得到最优 $N_\text{opt}(C)$ 与 $D_\text{opt}(C)$ 的闭式近似。

首先把表达式化为只含 $N$ 的形式:

\[\begin{aligned} \hat{L}(N) &=AN^{-\alpha}+B\left(\frac{C}{6}\right)^{-\beta}N^\beta+E, \\ \hat{L}'(N) &=-\alpha AN^{-\alpha-1} +\beta B\left(\frac{C}{6}\right)^{-\beta}N^{\beta-1}=0 && \text{(对 }N\text{ 的导数应为零)}, \\ \text{因此}\quad \alpha AN^{-\alpha-1} &=\beta B\left(\frac{C}{6}\right)^{-\beta}N^{\beta-1}, \\ \alpha A &=\beta B\left(\frac{C}{6}\right)^{-\beta}N^{\alpha+\beta}, \\ N_\text{opt} &=\left(\frac{\alpha A}{\beta B}\right)^{\frac{1}{\alpha+\beta}} \left(\frac{C}{6}\right)^{\frac{\beta}{\alpha+\beta}}, \\ D_\text{opt} &=\frac{C}{6N_\text{opt}} =\left(\frac{\beta B}{\alpha A}\right)^{\frac{1}{\alpha+\beta}} \left(\frac{C}{6}\right)^{\frac{\alpha}{\alpha+\beta}}. \end{aligned}\]

当 $\alpha \approx \beta$ 时,模型规模和训练 token 数应当以相同速率增长。

为了求出最优参数 $\mathbf{\theta}=\langle A,B,E,\alpha,\beta\rangle$,Chinchilla 论文采用 Huber 损失(对离群点稳健,$\delta=10^{-3}$)和 L-BFGS 算法(适合对少量参数做曲线拟合):

\[\begin{aligned} \min_{A,B,E,\alpha,\beta} &\sum_{\text{runs }\{i\}} \text{Huber}_\delta\!\left(\log\hat{L}(N_i,D_i)-\log L_i\right), \\ \text{其中}\quad \text{Huber}_\delta(x) &= \begin{cases} \frac{1}{2}x^2, & |x|\leq\delta,\\ \delta\left(|x|-\frac{1}{2}\delta\right), & \text{其他情况。} \end{cases} \end{aligned}\]

Chinchilla 通过三种互补方法得到了彼此一致的最终结果,这也是其结论颇具说服力的原因之一。

三种方法得到的计算最优前沿

图 10:三种方法都支持 $N_\text{opt}\propto C^{0.5}$ 的计算最优前沿,却与 Kaplan 等人的结果不同。注意,方法三的结果与另外两种方法略有偏差,后文会解释原因。图片来源:Hoffmann et al. 2022。

Chinchilla 三种方法与 Kaplan 方法的预测对比

图 11:Chinchilla 三种方法的预测与 Kaplan et al.(2020)预测的对比。三种方法都表明,当时的若干主流 LLM 存在训练不足。图片来源:Hoffmann et al. 2022。

Chinchilla 论文关于“当时约 2022 年的大多数大模型都训练不足”的主张,由一个著名实验提供了支持:在与 Gopher(Rae et al. 2021,280B 参数、300B token)相同的计算预算下,研究者训练了 Chinchilla(70B 参数、1.4T token)。这个模型小了 4 倍左右,却使用了约 4 倍的 token 训练,并且在各项评测上全面胜过 Gopher。

调和 Kaplan 与 Chinchilla

Chinchilla Scaling Laws 与 Kaplan 等人的分歧如下:

  • 不应“让模型比数据增长得更快”($N_\text{opt}\propto C^{0.73}$);模型规模每翻一倍,训练 token 也应翻一倍($N_\text{opt}\propto C^{0.5}$)。
  • 不应“训练一个大模型并在收敛前停止”,而应使用更多数据训练一个较小的模型。

两篇论文仍然认同同一个基本原则,只是对模型规模与 token 数之间的最优权衡点看法不同。为什么二者会产生如此大的分歧?

差异一:Kaplan 等人的实验大多使用小模型。 Kaplan 等人的实验主要落在较小模型区间,而 Chinchilla 论文的实验规模大了 10 倍以上。在双对数空间中做外推时,拟合上的一点微小差异就可能导致预测结果相差巨大(参见后文的玩具模拟)。

差异二:对于小模型,embedding 参数量不容忽视。 在参数量较小的区间,embedding 参数占总参数的比例不可忽略,因此是否计入 embedding 会造成明显影响。Pearce & Song(2024)沿着这一方向做了详尽分析。用 $N_{\setminus E},C_{\setminus E}$ 表示排除 embedding 后的模型规模与计算量,用 $N,C$ 表示包含全部参数时的对应量,则有:

  • Kaplan 等人:$N^*_{\setminus E}\propto C_{\setminus E}^{0.73}$(不含 embedding);
  • Chinchilla:$N^*\propto C^{0.50}$(总参数量)。

为了连接二者,他们用下面的形式拟合总参数量 $N$ 与非 embedding 参数量 $N_{\setminus E}$ 之间的关系,其中 $\omega$ 为常数:

\[N=N_{\setminus E}+\omega N_{\setminus E}^{1/3}.\]

这个形式具有一些很好的性质:它严格单调递增,并且当规模趋于无穷时,embedding 的相对占比趋于零。更准确地说,

\[\frac{N}{N_{\setminus E}} =1+\omega N_{\setminus E}^{-2/3},\qquad \lim_{N_{\setminus E}\to\infty}\frac{N}{N_{\setminus E}}=1.\]

把这一关系代入 Chinchilla 的方程:

\[\begin{aligned} L(N_{\setminus E},C_{\setminus E}) &=A(N_{\setminus E}+\omega N_{\setminus E}^{1/3})^{-\alpha} +B\left(\frac{C_{\setminus E}}{6}\right)^{-\beta}N_{\setminus E}^{\beta}+E,\\ L'(N_{\setminus E},C_{\setminus E}) &=-\alpha A(N_{\setminus E}+\omega N_{\setminus E}^{1/3})^{-\alpha-1} \left(1+\frac{\omega}{3}N_{\setminus E}^{-2/3}\right)\\ &\quad+\beta B\left(\frac{C_{\setminus E}}{6}\right)^{-\beta} N_{\setminus E}^{\beta-1}=0 && \text{(对 }N_{\setminus E}\text{ 的导数应为零)},\\ \text{整理得}\quad \alpha A(N^*_{\setminus E}+\omega {N^*_{\setminus E}}^{1/3})^{-\alpha-1} &\left(1+\frac{\omega}{3}{N^*_{\setminus E}}^{-2/3}\right) =\beta B\left(\frac{C_{\setminus E}}{6}\right)^{-\beta} {N^*_{\setminus E}}^{\beta-1},\\ 6^{-\beta}\frac{\alpha A}{\beta B} (N^*_{\setminus E}+\omega {N^*_{\setminus E}}^{1/3})^{-\alpha-1} &\left(1+\frac{\omega}{3}{N^*_{\setminus E}}^{-2/3}\right) {N^*_{\setminus E}}^{1-\beta} =C_{\setminus E}^{-\beta},\\ 6\left(\frac{\beta B}{\alpha A}\right)^{1/\beta} (N^*_{\setminus E}+\omega {N^*_{\setminus E}}^{1/3})^{(1+\alpha)/\beta} &\left(N^*_{\setminus E}+\frac{\omega}{3}{N^*_{\setminus E}}^{1/3}\right)^{-1/\beta} N^*_{\setminus E} =C_{\setminus E}. \end{aligned}\]

在上式中,$C_{\setminus E}$ 与 $N_{\setminus E}$ 之间不再是一个干净的幂律。我们只能在局部把它近似写成 $N^*_{\setminus E}\overset{\propto}{\sim}C_{\setminus E}^g$,其中 $g$ 是基于一阶导数得到的局部指数,而不是全局幂律指数。原文将其写为 $g=\mathrm{d}\log C_{\setminus E}/\mathrm{d}\log N_{\setminus E}$。关于指数 $g$ 的完整近似过程,可参见 Pearce & Song(2024)附录 A.1。

局部幂律指数随计算量变化的可视化

图 12:局部幂律指数 $g$ 如何随 $C_{\setminus E}$ 增大而变化。图片来源:Pearce & Song 2024。

如图所示,随着 $C_{\setminus E}$ 增大,$g$ 会收敛到 Chinchilla 的估计值。使用上面的方程生成合成训练曲线后,在 768M 到 1.5B 模型规模范围内——也就是 Kaplan 等人的实验区间——估计得到的 $g$ 接近 Kaplan 的系数 0.73。

为什么是幂律?

幂律在 AI 之外的许多领域也广泛存在,例如 Zipf 定律、无标度网络、城市标度律,以及许多其他复杂系统。反复出现的模式是:大事件少见,小事件常见;规模与频率之间的关系在双对数坐标上往往表现为一条直线。

为什么 LLM 的 Scaling Laws 也具有幂律形状?

部分受到不同领域呈现不同指数这一现象的启发(Hestness et al. 2017),Sharma & Kaplan(2020)提出了一种早期解释:语言建模可以看成在数据的低维流形上做回归。更多模型参数能够对数据流形做出更细的划分,从而降低泛化误差。最简单地说,如果有效规模为 $N$ 的模型把一个 $d$ 维流形划分成 $O(N)$ 个区域,那么典型的线性分辨率将按 $\sim N^{-1/d}$ 缩放,其形式与前面的 Scaling Laws 相似。这套理论最适用于数据无限且模型欠拟合的区间,但在现实中,估计数据流形的内在维度相当困难。

之后的另一种假说(Michaud et al. 2023;Brill 2024)认为,知识或技能是以离散块的形式被学习的,也就是被“量子化”;这些技能的频率分布本身遵循幂律。模型先学会常见技能,再逐渐学会稀有技能,于是损失形成平滑的幂律下降。

这里只列出了两种假说。还有更多研究尝试用数据的谱尾、核特征值、自然语言统计性质或训练动力学中的相变,解释幂律缩放的形状。

数据受限区间的 Scaling Laws

经典 Scaling Laws 假设唯一数据实际上是无限的,不存在重复,也不进行多 epoch 训练。随着模型规模显著扩大,高质量的唯一 token 已开始不足。事实上,一些关于 AI 还能继续扩展多久的争论,正围绕着我们是否正在撞上“数据墙”展开。

还需强调的是,$D$ 所代表的数据集默认已经清洗完毕。预训练数据流水线往往是有效预训练体系中的重要部分,常见步骤包括精确与模糊去重、质量过滤、样板文本移除、安全过滤、PII/版权遮蔽、benchmark 去污染,以及根据语言、质量、内容类型等因素对数据混合的不同组成进行细致重加权。即使两个数据集包含相同数量的 token $D$,高质量数据集与充斥网络垃圾的低质数据集也会产生截然不同的计算效率。

Hernandez et al.(2022)研究了一个受控版本:数据集大部分由唯一数据组成,只有一小部分数据被重复。从一个大数据集出发,数据混合中保留 90% 的非重复内容,再把剩余 10% 替换为原始数据中极小一部分内容的多次重复。他们用 100B token 训练 Transformer 后,观察到了双下降现象:随着重复数据所占权重增加,测试损失会先变差、再变好;重复比例越高,这一现象越明显。

重复比例增加时测试损失中的双下降现象

图 13:随着重复部分的重要性增加,测试损失出现双下降。左图的重复比例为 90%,右图为 50%。图片来源:Hernandez et al. 2022。

训练中段的平坦或上升趋势,可能源自模型对重复数据的记忆。具有这种形状的学习曲线会降低 Scaling Laws 拟合的准确性。研究还得出结论:重复数据会损害一部分分布外评测和下游微调表现。不过,他们构造的数据混合更接近实验室设置;真实世界中的重复通常更复杂,例如不同数据具有不同重复程度,也可能存在语义重复。

与其笼统地说重复数据会损害训练,我们更关心的问题是:当高质量唯一数据并非无限、训练中很可能不得不重复数据时,应该怎样拟合 Scaling Laws?

Muennighoff et al.(2023)研究了在模型训练受数据限制时,如何以最优方式分配计算资源。他们通过约 400 个实验,系统研究数据重复的影响;模型规模从 10M 到 9B 参数,数据量最高 900B token,训练最多达到 1500 个 epoch。每个 epoch 都重复完全相同的数据集,只在 epoch 之间重新打乱,并在留出的测试集上评测。

关键的建模调整,是把总 token 数 $D$ 分解为两部分:唯一 token 数 $U_D$ 与重复次数 $R_D$(即 epoch 数减 1)。因此,

\[D=U_D(1+R_D),\qquad U_D=\min\{D_\text{uniq},D\},\qquad R_D=\frac{D}{U_D}-1.\]

这里 $D_\text{uniq}$ 是唯一数据预算。他们先用 Chinchilla Scaling Laws 求出适合 $U_D$ 的最优模型规模 $U_N$,再用 $R_N=N/U_N-1$ 定义由重复带来的额外模型规模。

随后,他们修改 Chinchilla 的参数化拟合(方法三),用有效的、经过折扣的数据量 $D’$ 和模型规模 $N’$ 代替原始值:

\[\hat{L}(N,D)=\frac{A}{N'^\alpha}+\frac{B}{D'^\beta}+E, \qquad D'=U_D+U_Dr_D\left(1-\exp\!\left(-\frac{R_D}{r_D}\right)\right).\]

直觉是:一个 token 随重复次数增加,其价值会指数衰减。在这一模型中,每次重复都会让 token 损失其剩余价值的 $(1-1/r_D)$,其中 $r_D$ 是可学习的“半衰期”参数。当 $R_D=0$ 或 $R_D\ll r_D$ 时,会恢复到 $D’\approx D$。

对于额外模型规模,他们采用对称形式 $N’=U_N+U_Nr_N(1-\exp(-R_N/r_N))$,以刻画“大模型在重复数据上过拟合得更快”和“模型可能相对于数据集过大”这两种观点。这个部分不那么直观,作者也没能找到令人满意的解释,说明为什么模型规模必须采用与重复数据对称的形式。后来的 Lovelace et al.(2026)改变了这一假设。

经验拟合表明,额外参数的价值衰减速度快于重复数据,即 $r_N<r_D$,因此应把更多资源分配给更多 epoch,而不是更多模型参数。正如论文作者所指出的,这种建模方式有一个弱点:它会显著低估训练失败模型的最终测试损失——即训练中途损失开始上升的模型,例如训练 44 个 epoch 的模型。

重复数据条件下的数据受限 Scaling Laws

图 14:数据受限拟合比忽略数据限制的拟合更好地覆盖实验结果;重复 token 的价值会以指数形式衰减并趋近上限。epoch 越多,拟合越差,因为高重复会导致测试损失在训练中途上升,而图中没有表现这一点。图片来源:Muennighoff et al. 2023。

最近,Lovelace et al.(2026)使用另一种方法重新研究了同一问题。他们不再把过参数化建模为有效模型规模的边际收益递减,而是显式建模模型规模与数据重复之间的交互。经验实验训练了约 300 个模型,参数量从 15M 到 1B,唯一 token 数从 50M 到 6B。

当研究者固定模型规模,并在不同数据重复水平下绘制拟合残差时,观察结果很直观:epoch 越多,损害越大;更有意思的是,大模型对重复更加敏感。这说明损失惩罚很可能同时是模型规模和数据规模的函数。

有效规模拟合的残差随 epoch 和模型规模变化

图 15:有效规模拟合的残差表明,过拟合损害会随 epoch 数与模型规模同时增长。图片来源:Lovelace et al. 2026。

他们围绕容量比 $N/U_D$——参数量相对于唯一 token 数的比值——引入了一个显式过拟合惩罚项:

\[\hat{L}(N,U_D,R_D) =E+\frac{A}{N^\alpha} +\frac{B}{\big(U_D(1+R_D)\big)^\beta} +\boxed{P \cdot R_D^\delta \cdot \left(\frac{N}{U_D}\right)^\kappa}.\]

其中:

  • $R_D$ 是重复次数;
  • 标量 $P$ 是一个可学习参数;
  • 指数 $\kappa$ 是第二个可学习参数,让惩罚能够随容量比 $N/U_D$ 非线性缩放;
  • 重复次数上的独立指数 $\delta$ 是第三个可学习参数,用于把重复的非线性效应与 $\kappa$ 解耦。

新增的方框项是一个直接的过拟合惩罚(原文以红色标出):数据重复次数越多、模型相对于可用唯一数据的过参数化程度越高,它就越大。

他们还分析了权重衰减在数据受限训练中的影响,发现较强的权重衰减能减轻由数据重复造成的过拟合惩罚。

强权重衰减降低数据重复造成的过拟合惩罚

图 16:强权重衰减会降低数据重复造成的过拟合惩罚。图片来源:Lovelace et al. 2026。

Muennighoff 等人与 Lovelace 等人的两种建模方法都来自经验曲线拟合。因此,我们仍不清楚数据受限 Scaling Laws 为什么恰好应该采用这些形式,也不清楚每个自由参数为何必不可少。期待沿着这一方向出现更多理论研究。

现实中拟合 Scaling Laws 的棘手之处

尽管 Scaling Laws 的形式很整洁,但在实践中,拟合结果可能对一些看似微不足道的流程选择异常敏感,例如参数量如何计数、数值精度如何舍入、损失是求和还是取平均等。

原因在于,我们只能在负担得起的模型上拟合 Scaling Laws,而这些模型相对较小、成本相对较低;随后却要把预测外推到大几个数量级的模型。在这种设置下,看似只是舍入误差的选择,也可能让预测结果产生巨大差异。

与此同时,Scaling Laws 拟合假设唯一变化的因素只有规模。这意味着模型架构、优化器、学习率调度、batch ramp、数据混合、tokenizer 和其他设计选择都应保持不变。另一个隐含假设是,这些设置都已经被仔细调优;训练不足等情形会把研究带向不同结论。

Kaplan 等人与 Chinchilla 之间的分歧,就是 Scaling Laws 拟合之棘手的一个例子。

第二个例子来自一项后续分析,它研究为什么 Chinchilla 的方法三与另外两种方法略有偏差。Besiroglu et al.(2024)从 Hoffmann et al.(2022)的图 4 中提取原始 $(N,D,L)$ 数据点,并重新执行方法三的参数化拟合。他们发现了几个具体问题:

  • L-BFGS-B 最小化器中的损失尺度过高。其原因是对样本的 Huber 损失值取了平均,而不是求和,进而导致优化过程提前终止。原始拟合和 bootstrap 期间,损失最小化都过早停止,产生了相互矛盾的估计,以及窄得不合理的置信区间。
  • 论文报告的 $\alpha$ 和 $\beta$ 被舍入到两位小数,导致推导出的 $A,B$ 看起来比实际偏差更大。

玩具模拟

原文提供了一个由 ChatGPT 创建的玩具模拟组件,用于展示三种具体的失败模式。

假设真实函数为:

\[\hat{L}(N,D)=482.01 \cdot N^{-0.3478}+2085.43D^{-0.3658}+1.8172\]

于是 $N_\text{opt}\propto C^{0.5126}$,$D_\text{opt}\propto C^{0.4874}$。这是 Besiroglu et al.(2024)给出的估计。

模拟组件绘制预测损失 $\hat{L}$ 相对于数据集规模 $D$ 的曲线,并提供一组滑块来展示以下情形:

  • 损失精度:把损失从较多小数位舍入到较少小数位,会改变拟合得到的参数值。
  • 损失噪声:仅用千分之一损失单位(0.001)量级的乘子扰动损失值,也会改变拟合结果。
  • 拟合区间敏感性:只拟合小模型、只拟合中等模型,或拟合全部模型,会得到不同的表观 Scaling Laws。

原文在此处嵌入了可操作的交互组件;可在原文的 Toy simulation 小节中调整滑块查看曲线变化。

引用方式

原文建议使用以下格式引用:

Weng, Lilian. “Scaling Laws, Carefully”. Lil’Log (Jun 2026). https://lilianweng.github.io/posts/2026-06-24-scaling-laws/

或者使用 BibTeX:

@article{weng2026scaling,
  title = {Scaling Laws, Carefully},
  author = {Weng, Lilian},
  journal = {lilianweng.github.io},
  year = {2026},
  month = {June},
  url = "https://lilianweng.github.io/posts/2026-06-24-scaling-laws/"
}

参考文献

  1. S. Amari, N. Fujita, and S. Shinomoto. “Four Types of Learning Curves. Neural Computation.” 4(4):605–618, 1992.
  2. Hestness et al. “Deep Learning Scaling is Predictable, Empirically.” arXiv preprint arXiv:1712.00409, 2017.
  3. Rosenfeld et al. “A Constructive Prediction of the Generalization Error Across Scales.” ICLR 2020.
  4. Kaplan et al. “Scaling Laws for Neural Language Models.” arXiv preprint arXiv:2001.08361, 2020.
  5. Hoffmann et al. “Training Compute-Optimal Large Language Models.” NeurIPS 2022.
  6. Pearce and Song. “Reconciling Kaplan and Chinchilla Scaling Laws.” TMLR 2024.
  7. Bahri et al. “Explaining Neural Scaling Laws.” arXiv preprint arXiv:2102.06701, 2021.
  8. Sharma and Kaplan. “A Neural Scaling Law from the Dimension of the Data Manifold.” arXiv preprint arXiv:2004.10802, 2020.
  9. Hernandez et al. “Scaling Laws and Interpretability of Learning from Repeated Data.” arXiv preprint arXiv:2205.10487, 2022.
  10. Muennighoff et al. “Scaling Data-Constrained Language Models.” NeurIPS 2023.
  11. Lovelace et al. “Prescriptive Scaling Laws for Data Constrained Training.” arXiv preprint arXiv:2605.01640, 2026.
  12. Besiroglu et al. “Chinchilla Scaling: A Replication Attempt.” arXiv preprint arXiv:2404.10102, 2024.
  13. Michaud et al. “The Quantization Model of Neural Scaling.” NeurIPS 2023.
  14. Brill. “Neural Scaling Laws Rooted in the Data Distribution.” arXiv preprint arXiv:2412.07942, 2024.
  15. Rae et al. “Scaling Language Models: Methods, Analysis & Insights from Training Gopher.” arXiv preprint arXiv:2112.11446, 2021.

补充思考

以下为我的补充思考,不属于原文内容。

这篇文章最重要的提醒,不是记住 $0.73$ 或 $0.5$ 这两个指数,而是理解 Scaling Laws 是一套受实验口径约束的外推模型。参数量是否包含 embedding、损失如何聚合、优化器是否真正收敛、数据是否重复,都会改变拟合结果。指数并不是可以脱离实验协议单独搬运的“自然常数”。

对实际预训练项目而言,Scaling Laws 更适合作为决策仪表盘,而不是自动驾驶系统。一个可靠流程至少应当同时保存原始 $(N,D,C,L)$ 观测、参数计数口径、数据去重与混合版本、学习率调度、拟合代码、优化器终止状态和置信区间。只保存最终拟合出来的一条曲线,会让日后很难判断偏差究竟来自模型规律,还是来自数据处理和拟合过程。

数据受限部分还说明,“训练 token 数”正在变成一个过于粗糙的尺度变量。唯一 token、语义重复、数据质量、来源多样性与 curriculum 都会影响每个 token 的边际价值。未来更有解释力的 Scaling Laws,可能需要把 $D$ 从一个计数值扩展为某种“有效学习信号”度量;但这种度量若仍完全依赖经验拟合,就会引入更多难以辨识的自由参数。

最后,Scaling Laws 对外推区间尤其敏感。工程上可以设置三条保护线:不要跨越远超观测区间的数量级;对不同拟合区间和损失精度做敏感性分析;在真正投入大规模训练前,用一个位于现有区间与目标区间之间的验证规模检查预测。如果中间点已经偏离,就应先更新模型,而不是继续相信一条漂亮的直线。

Recommended citation: Weng, Lilian. Scaling Laws, Carefully. Lil’Log, June 2026.