Scaling Laws, Carefully
TL;DR · AI 摘要
Scaling Laws, Carefully Lil'Log Scaling Laws, Carefully Date: June 24, 2026 Estimated Reading Time: 24 min Author: Lilia...
核心要点
- 主题聚焦:Scaling Laws, Carefully
- 来源:Lil'Log,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
严谨看待扩展规律 | Lil'Log
严谨看待扩展规律
日期:2026年6月24日 | 预计阅读时间:24分钟 | 作者:Lilian Weng
目录
- 早期阶段:机器学习损失的可预测性
- 数据无限区域的扩展规律 Kaplan 等人的扩展规律 Chinchilla 扩展规律 方法 1:固定模型大小,改变 token 预算 方法 2:等 FLOP 配置 方法 3:参数拟合 调和 Kaplan 和 Chinchilla 的扩展规律 为什么是幂律?
- 数据有限区域的扩展规律
- 在现实中拟合扩展规律的复杂性 玩具模拟
- 引用
- 参考文献
扩展规律是深度学习中最重要的实证发现之一。观察结果形式简单:随着模型大小 $N$、数据集大小 $D$ 和计算量 $C$ 的增加,训练损失 $L$ 会按照幂律曲线可预测地减少,在对数-对数图上表现为一条直线。我们可以将扩展规律视为描述计算、损失、模型大小和数据之间关系的框架;其核心在于如何在 $N$ 和 $D$ 之间最优地分配宝贵的计算资源。
这种可预测性使扩展规律在实践中具有很高的价值。常见的工作流程是在少量小规模运行上拟合扩展规律,然后外推以估算更大模型所需的 token 和计算需求。
符号
说明
$N$
模型大小,以参数数量衡量。
$D$
训练数据集大小,通常以 token 数量衡量。
$C$
以 FLOPs 衡量的训练计算量。作为一种有用的近似,$C \approx 6ND$(
Kaplan 等人 2020
),其中 $2ND$ 用于前向传播,$4ND$ 用于反向传播。
$E$
不可约损失
$L, \hat{L}(.)$
测试损失 / 测试损失预测函数;也可以指训练损失,因为它们高度相关。
$\epsilon$
泛化误差。
早期阶段:机器学习损失的可预测性 #
在扩展规律成为主流概念之前,就已经有人研究过泛化误差随着规模变化的可预测性。
Amari 等人(1992)使用贝叶斯方法和退火近似推导出四种类型的学习曲线。
- 确定性学习算法,无噪声数据,唯一解:$\epsilon \sim c \cdot D^{-1}$,其中 $c$ 是某个常数。
- 确定性学习算法,无噪声数据,多个等效解:$\epsilon \sim c \cdot D^{-2}$;由于模型仅学习参数的最优流形,而不是寻找单个解点,因此每个新数据点的学习速度更快。
- 确定性学习算法,有噪声数据:$\epsilon \sim c \cdot D^{-1/2}$;数据中的噪声使学习更加困难。
- 随机学习算法,有噪声数据:$\epsilon \sim c \cdot D^{-1} + E$;在这里,不可约损失 $E$ 是随机学习者无法进一步减少的残差误差,例如当模型在大数据上耗尽容量时。所有四种类型的学习曲线都遵循幂律:
$$ \epsilon \sim c \cdot D^\alpha + E $$
其中 $E$ 可以为 0,且 $\alpha = -2, -1, -1/2$。尽管他们的理论设定基于简化的二分类任务,但它为构建经验机器学习损失预测模型指明了一个有用的方向。
Hestness 等人(2017)最早的一项实证研究解释了泛化误差、模型大小和数据之间的关系。对于给定的训练数据量,他们通过网格搜索确定最佳拟合模型大小,然后将损失与训练数据集大小进行对比。在深度学习的四个不同领域(神经机器翻译、图像分类、语言建模和语音识别)中,观察到了一个重复出现的模式:
- 泛化误差在一组因素(如数据量)上遵循幂律关系。
- 模型改进会改变误差曲线,但似乎不会影响幂律指数。
- 有趣的是,架构改变了幂律拟合的偏移量($E$),但不会改变指数($\alpha$)。幂律的斜率似乎是一个问题领域的属性,而不是模型架构的属性。
- 为了拟合大小为 $D$ 的数据集所需的模型参数数量 $N$ 也遵循幂律关系。
(左)Deep-Speech-2(DS2)和注意力语音模型,以及(右)各种大小的 DS2 模型的学习曲线。当训练数据变得很大时,小模型的损失趋于平稳。(图像来源:Hestness 等人,2017)
一个概念性图示将学习曲线分为三个阶段。在小数据区域,当学习信号不足时,模型的表现仅略好于随机猜测。在中间(“幂律区域”),我们观察到损失、数据和模型大小之间的幂律关系。最终的不可约误差区域可以归因于数据中的噪声等因素。
幂律学习曲线阶段的图示。(图像来源:Hestness 等人,2017)
Rosenfeld 等人(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$。
数据大小、模型大小和泛化误差在对数-对数-对数尺度下的三维等高线图。蓝色点来自实证实验,曲面是蓝色点之间的线性插值。(图像来源:Rosenfeld 等人,2020)
因此,他们可以构建一个简单的参数函数形式的预测模型,$\boldsymbol{\theta} = \langle A, B, E, \alpha, \beta \rangle$,仅通过训练一组较小的训练配置 $(D, N)$ < 某些阈值,即可预测 $(D, N)$ > 某些阈值时的预期损失。
在小规模配置上拟合参数化误差模型并外推到更大的模型/数据规模:(a)实验设置的图示;在(b)ImageNet、(c)WikiText-103 和(d)CIFAR100 上的实验结果,使用三种架构(WRN、VGG、DenseNet)和两种优化器(SGD、Adam)进行误差估计。(图像来源:Rosenfeld 等人,2020)
附注:这些早期的工作依赖于经典学习理论的直觉,例如 VC 维(模型能够打碎的最大点集的基数)作为容量的代理,但在现代深度学习研究中,VC 维通常过于粗糙,无法解释模型的行为,而经验上的幂律法则比理论提供的最坏情况下的界限更简洁且实用。
数据无限区域中的扩展规律 #
Kaplan 等人的扩展规律 #
Kaplan 等人(2020)在语言建模社区中普及了扩展规律的概念。他们发现,交叉熵测试损失 $L$ 与模型大小 $N$(不包括嵌入层)、数据集大小 $D$ 和训练计算量 $C$ 在多个数量级上均遵循幂律关系。这些发现与上一节中的早期研究一致,但 Kaplan 等人通过聚焦于 Transformer 语言模型和更大规模的实证实验,对这一概念进行了形式化。模型大小范围从 768M 到 1.5B 非嵌入参数,数据集大小从 22M 到 23B 个 token。论文中的所有训练运行均使用了学习率调度,包括 3000 步的线性预热,随后是余弦衰减至零。
关键发现列表:
- 损失 $L$ 分别与 $N$、$D$ 和 $C$ 呈幂律关系;为了实现最佳性能,这三个因素必须同步扩展。
- 训练曲线遵循可预测的幂律,其参数大致独立于模型大小。
- 更大的模型在样本效率上更高,这意味着它们在更少的优化步骤和更少的数据点下就能达到相同的损失。
- 架构细节(宽度、长宽比等)的重要性不如模型的规模。
- 训练损失和测试损失呈正相关。(听起来似乎显而易见,但这为预训练工作奠定了基础。另一方面,预训练损失的改善是否能转移到微调后的评估中,需要单独研究。)
- 在固定的计算预算下,训练一个非常大的模型并在收敛前停止,比训练一个较小的模型直到完全收敛更高效。这一发现与下一节的 Chinchilla 扩展规律存在分歧: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$ 的比例,这表明为了防止训练过程因数据不足而受限,数据需要以特定比例与模型规模增长。
测试损失作为计算量、数据集大小和参数的幂律关系,跨越多个数量级。(图片来源:Kaplan 等人,2020)
最具影响力且事后看来最具争议的结论是计算最优分配。Kaplan 等人发现 $N_\text{opt} \propto C^{0.73}$,并得出结论认为模型大小应比数据集大小增长得更快。具体来说,对于计算量增加 10 倍,他们建议将模型大小扩展约 5.5 倍,但训练 token 数量仅增加约 1.8 倍。Chinchilla 论文后来推翻了这一建议,认为这会导致大模型严重训练不足。
Kaplan 等人还进行了另一项有用的分析,根据 $D$ 和 $N$ 估算所需的训练 FLOPs 数量。每个乘加操作被计为约 2 FLOPs。
不同 Transformer 架构组件的参数和计算估计,给定层数 $n_\text{layer}$、模型宽度 $d_\text{model}$ (= $d_\text{embed}$; 原表中的符号不一致)、前馈层维度 $d_\text{ff}$ (通常等同于 $4 d_\text{model}$)、注意力维度 $d_\text{attn}$ (通常等同于 $d_\text{model}$)、上下文长度 $n_\text{ctx}$ 和词汇量大小 $n_\text{vocab}$。(图片来源:Kaplan 等人,2020)
在标准配置中,假设 $d_\text{attn} = d_\text{model} = d_\text{ff}/4$,并从 $N$ 和每个 token 的前向计算中排除嵌入层:
$$ \begin{align} N &= n_\text{layer} d_\text{model} 3 d_\text{attn} + n_\text{layer} d_\text{attn} d_\text{model} + n_\text{layer} 2 d_\text{model} d_\text{ff} & \small{\text{; 无嵌入层}} \\ &= 2\;n_\text{layer} d_\text{model}(2d_\text{attn} + d_\text{ff}) & \\ &= 12\;n_\text{layer} d_\text{model}^2 & \\ \\ C_\text{fwd} &= 2 n_\text{layer} (d_\text{model} 3 d_\text{attn} + n_\text{ctx}d_\text{attn} + d_\text{attn}d_\text{embed} + 2 d_\text{model} d_\text{ff}) & \\ &= 2 n_\text{layer} (12 d_\text{model}^2 + n_\text{ctx}d_\text{attn}) & \\ &= 2N + 2 n_\text{layer}n_\text{ctx}d_\text{attn} & \\ &\approx 2N \quad\quad \small{\text{; 假设 }n_\text{ctx} < 12 d_\text{model} \text{ 且 }n_\text{ctx}\text{ 项相对较小。}}\\ \end{align} $$
然后,我们计算反向传播的 FLOPs 为前向传播的两倍,因为反向传播分别执行两次矩阵乘法,分别用于输入激活和权重的梯度。因此,每个 token 的训练 FLOPs 约为 $6N$,在 $D$ 个 token 上训练的总 FLOPs 为 $C \approx 6ND$。
Chinchilla 缩放定律 #
Chinchilla 论文(Hoffmann 等人,2022)通过更精细的实验设计研究了在固定计算预算 $C$ 下,最佳模型大小 $N$(包括嵌入层的总参数)与 token 数量 $D$ 之间的关系,并得出了与 Kaplan 等人略有不同的结论。
你应该知道 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 论文提出了三种精心设计的缩放定律拟合方法。
经验实验覆盖了 400 多个模型,模型大小从 70M 到超过 16B 参数,训练 token 数量从 5B 到 500B。实验假设每个训练 token 都是唯一的(无限数据场景)。所有运行都使用了余弦学习率调度,在训练周期内衰减 10 倍。扫描模型大小可以绘制出计算最优的前沿。
方法 1:固定模型大小,变化 token 预算 #
对于每个参数数量 $N$,使用不同的 token 预算训练多个运行,并记录每个 FLOP 预算 $C$ 下达到的最小损失。
Chinchilla 方法 1:模型大小扫描下,FLOP 预算下的训练损失曲线。(图片来源:Hoffmann 等人,2022)
方法 2:等 FLOP 分析 #
固定计算预算 $C$,并绘制最终损失与参数数量 $N$ 的关系图。每条等 FLOP 曲线在对数空间中大致呈抛物线形状,其最小值标志着该计算预算下的最佳模型大小。然后在不同预算下重复此过程,会在图中形成一条幂律线。
Chinchilla 方法 2:等 FLOP 抛物线;每条曲线的最小值对应该预算下的计算最优模型大小。(图片来源:Hoffmann 等,2022)
方法 3:参数拟合 #
直接拟合 Rosenfeld 等(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{align} \hat{L}(N) &= A N^{-\alpha} + B \Big(\frac{C}{6}\Big)^{-\beta}N^\beta + E \\ \hat{L}'(N) &= -\alpha A N^{-\alpha-1} + \beta B \Big(\frac{C}{6}\Big)^{-\beta} N^{\beta -1} = 0 & \small{\text{; 关于 }N\text{ 的导数应为零。}} \\ \text{因此}\quad & \alpha A N^{-\alpha-1} = \beta B \Big(\frac{C}{6}\Big)^{-\beta} N^{\beta -1} \\ & \alpha A = \beta B \Big(\frac{C}{6}\Big)^{-\beta} N^{\alpha + \beta} \\ & N_\text{opt} = \Big(\frac{\alpha A}{\beta B}\Big)^{\frac{1}{\alpha + \beta}} \Big(\frac{C}{6}\Big)^{\frac{\beta}{\alpha+\beta}} \\ & D_\text{opt} = \frac{C}{6 N_\text{opt}} = \Big(\frac{\beta B}{\alpha A}\Big)^{\frac{1}{\alpha + \beta}} \Big(\frac{C}{6}\Big)^{\frac{\alpha}{\alpha+\beta}} \end{align} $$
当 $\alpha \approx \beta$ 时,模型大小和训练 token 应该以相同的速度增长。
为了找到最优 $\boldsymbol{\theta} = \langle A, B, E, \alpha, \beta\rangle$,Chinchilla 论文采用了 Huber 损失(对异常值鲁棒;$\delta=10^{-3}$)和 L-BFGS 算法(适合参数数量较少时的曲线拟合)。
$$ \begin{align} \min_{A,B,E,\alpha,\beta} \sum_{\text{runs }\{i\}} \text{Huber}_\delta (\log \hat{L}(N_i, D_i) - \log L_i) \\ \text{其中 }\text{Huber}_\delta (x) = \begin{cases}\frac{1}{2} x^2 & \text{当 }\vert x \vert \leq \delta \\ \delta \cdot (\vert x \vert - \frac{1}{2}\delta), & \text{否则。}\end{cases} \end{align} $$
Chinchilla 通过三种互补的方法得出其结论,这些方法的最终结果彼此一致,这也是为什么结果令人信服的原因之一。
这三种方法一致认为,计算最优的边界是 $N_\text{opt} \propto C^{0.5}$,但与 Kaplan 等人的观点不同。请注意,方法 3 的结果与另外两种方法略有偏差,我们将在后面解释原因。(图片来源:Hoffmann 等,2022)
通过三种不同方法得出的 Chinchilla 预测结果,以及 Kaplan 等人(2020)的预测结果。所有三种方法都表明,当时大多数主流大语言模型都训练不足。(图片来源:Hoffmann 等,2022)
Chinchilla 论文中的一个著名演示支持了其关于大多数大型模型(当时,约 2022 年)训练不足的主张:在与 Gopher(Rae 等,2021;280B 参数数量,300B token 预算)相同的计算预算下,他们训练了 Chinchilla(70B 参数数量,1.4T token 预算),该模型的参数数量只有 Gopher 的四分之一,但训练的 token 数量是 Gopher 的四倍,并且在所有方面都优于 Gopher。
调和 Kaplan 与 Chinchilla #
Chinchilla 的扩展定律与 Kaplan 等人的观点存在以下分歧:
- 与其采用“让模型增长速度超过数据增长速度”($N_\text{opt} \propto C^{0.73}$),即每增加一倍模型规模,训练数据量也应增加一倍($N_\text{opt} \propto C^{0.5}$)。
- 与其采用“训练一个大模型并在收敛前停止”,不如训练一个较小的模型,但使用更多数据。
两篇论文在底层原理上仍保持一致,但它们对最优模型规模与训练数据量之间的权衡点存在分歧。为什么它们的分歧如此之大?
差异 1:Kaplan 等人主要在小模型上进行实验。Kaplan 等人的实验主要集中在较小的模型上,而 Chinchilla 论文的实验规模则达到了超过 10 倍的大小。当我们在对数-对数空间中进行外推时,拟合上的微小差异可能导致较大的结果差异(参见玩具模拟)。
差异 2:嵌入参数的数量对小模型有影响。在参数数量较少的范围内,嵌入参数占总参数的比例不可忽视,因此是否将其计入会影响结果。Pearce & Song(2024)对此进行了深入分析。我们使用 $N_{\setminus E}, C_{\setminus E}$ 表示不包含嵌入参数时的模型规模和计算量,使用 $N, C$ 表示包含所有参数的总数。
- Kaplan 等人:$N^*_{\setminus E} \propto C^{0.73}_{\setminus E}$(非嵌入参数)
- Chinchilla:$N^* \propto C^{0.50}$(总参数)
为了弥合这种差异,他们拟合了总参数 $N_T$ 与非嵌入参数 $N_{\setminus E}$ 之间的关系,对于某个常数 $\omega$:
$$ N = N_{\setminus E} + \omega\, N_{\setminus E}^{1/3}. $$
这种形式具有严格递增的特性,并且 $\lim_{N \to \infty} N = N_{\setminus E}$(因为 $\frac{N}{N_{\setminus E}} = 1 + \omega {N_{\setminus E}}^{- \frac{2}{3}}, \lim_{N_{\setminus E} \to \infty} \frac{N}{N_{\setminus E}} = 1$)。
将其代入 Chinchilla 的定律方程中,
$$ \begin{align} L(N_{\setminus E}, C_{\setminus E}) &= A(N_{\setminus E} + \omega\, N_{\setminus E}^{1/3})^{-\alpha} + B \Big(\frac{C_{\setminus E}}{6}\Big)^{-\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}(1 + \frac{\omega}{3}N_{\setminus E}^{-2/3}) + \beta B \Big(\frac{C_{\setminus E}}{6}\Big)^{-\beta} N_{\setminus E}^{\beta -1} = 0 & \small{\text{; 关于 }N_{\setminus E}\text{ 的导数应为零。}} \\ \text{重新排列后得到 }& \alpha A (N^{*}_{\setminus E} + \omega {N^{*}_{\setminus E}}^{1/3})^{-\alpha -1}(1 + \frac{\omega}{3} {N^{*}_{\setminus E}}^{-2/3}) = \beta B \Big(\frac{C_{\setminus E}}{6}\Big)^{-\beta} {N^{*}_{\setminus E}}^{\beta -1} \\ & 6^{-\beta}\frac{\alpha A}{\beta B} ({N^{*}_{\setminus E}} + \omega {N^{*}_{\setminus E}}^{1/3})^{-\alpha -1}(1 + \frac{\omega}{3}{N^{*}_{\setminus E}}^{-2/3}) {N^{*}_{\setminus E}}^{1 - \beta} = C_{\setminus E}^{-\beta} \\ & 6 \Big(\frac{\beta B}{\alpha A}\Big)^{\frac{1}{\beta}} ({N^{*}_{\setminus E}} + \omega {N^{*}_{\setminus E}}^{1/3})^{\frac{1 + \alpha}{\beta}} ({N^{*}_{\setminus E}} + \frac{\omega}{3}{N^{*}_{\setminus E}}^{1/3})^{-\frac{1}{\beta}} {N^{*}_{\setminus E}} = C_{\setminus E} \\ \end{align} $$
上述方程中 $C_{\setminus E}$ 与 $N_{\setminus E}$ 之间的关系不再是清晰的幂律关系。我们只能在局部近似为 $N^*_{\setminus E} \overset{\propto}{\sim} C_{\setminus E}^g$,其中 $g$ 是基于一阶导数($\overset{\propto}{\sim}$)的局部指数,而不是全局幂律指数,从而得到 $g = \frac{\mathrm{d} \log C_{\setminus E}}{\mathrm{d} \log N_{\setminus E}}$。有关如何近似指数 $g$ 的完整细节,请参见 Pearce & Song (2024) 附录 A.1。
局部幂律指数 $g$ 随 $C_{\setminus E}$ 增长的可视化。(图片来源:Pearce & Song 2024)
如上图所示,随着 $C_{\setminus E}$ 变得更大,$g$ 收敛到 Chinchilla 估计值。通过使用上述方程生成合成训练曲线,在模型规模从 768M 到 1.5B 的范围内(如 Kaplan 等人所述),他们估计在该区域 $g$ 接近 Kaplan 系数 0.73。
为什么是幂律? #
幂律关系在人工智能以外的许多领域中被广泛观察到,例如齐普夫定律、无标度网络、城市规模定律以及许多其他复杂系统。反复出现的模式是:大型事件很少见,小型事件很常见,大小与频率之间的关系在对数-对数尺度上通常遵循一条直线。
为什么大语言模型的扩展定律也呈现出幂律的形状?
部分受到不同领域显示不同指数(Hestness 等人,2017)的启发,Sharma & Kaplan(2020)提出了一个早期的解释,假设语言建模可以被看作是对数据低维流形的回归。更多的模型参数可以诱导对数据流形更细致的划分,从而减少泛化误差。最简单地说,如果一个有效大小为 $N$ 的模型将一个 $d$ 维流形划分为 $O(N)$ 个区域,典型线性分辨率的尺度约为 $\sim N^{-1/d}$。这与上面的扩展定律具有类似的幂律形式。该理论在无限数据、欠拟合的条件下最为清晰,但在现实中,估计数据流形的内在维度是非常困难的。
一个后来的假设(Michaud 等人,2023;Brill,2024)假设知识或技能是以离散块(“量化”)学习的,并且这些技能的频率分布遵循幂律。模型首先学习常见的技能,随后学习罕见的技能,从而导致损失的平滑幂律衰减。
我在这里只列举了两个假设,但还有更多研究通过数据的谱尾、核特征值、自然语言统计或训练动态中的相变来解释幂律扩展的形状。
数据受限区域的扩展定律 #
经典的扩展定律假设有效数据是无限且唯一的,没有重复,也没有多轮训练。随着模型规模显著增长,我们正在耗尽足够的高质量唯一标记。事实上,关于人工智能扩展能持续多久的一些争论,集中在我们是否遇到了“数据墙”。
也值得强调的是,$D$ 后面的数据集预计已经过清理。预训练数据管道通常是有效预训练流程中的重要组成部分,常见步骤包括去重(精确和模糊)、质量过滤、去除模板内容、安全过滤、PII/版权掩码、基准去污染,以及根据语言、质量、内容类型等对数据混合成分进行仔细的重新加权。即使两个数据集包含相同的 token 数量 $D$,一个高质量的数据集和一个来自互联网垃圾数据的数据集在计算效率上可能会有显著差异。
Hernandez 等人(2022)的研究聚焦于一个受控版本:一个主要是唯一数据集,只包含一小部分重复数据。从一个大型数据集开始,数据混合保留了 90% 的非重复数据,但将剩余的 10% 替换为原始数据的一小部分重复数据。通过训练一个 100B token 的 Transformer 模型,他们观察到了双重下降现象,即随着重复数据强调程度的增加,测试损失实际上会先变差,然后再变好,这种效应随着重复比例的增加而变得更加明显。
随着重复比例的增加,测试损失的双重下降现象(左侧为 90% 重复,右侧为 50% 重复)。(图片来源:Hernandez 等人,2022)
训练过程中中间的平坦或上升趋势可能是由于对重复数据的记忆。具有这种形状的学习曲线会使缩放定律拟合的准确性降低。他们还得出结论,重复数据会对某些 OOD 评估和下游微调造成损害。然而,他们的数据混合是在一个更接近实验室环境的设置下构建的,而真实世界数据中的重复通常更为复杂(例如,不同数据具有不同水平的重复、语义重复等)。
与其说数据重复对训练有害,我们更感兴趣的是如何拟合缩放定律,因为独特的高质量数据不是无限的,而且在训练过程中我们很可能会重复使用数据。
Muennighoff 等人(2023)研究了在数据受限的模型训练中,如何最优地分配计算资源。具体来说,他们通过大约 400 次实验,研究了数据重复的影响,涉及 10M–9B 参数、最大 900B token 的数据规模,以及最多 1500 个 epoch。每个 epoch 使用完全相同的 dataset,不同 epoch 之间进行洗牌,并在保留的测试集上进行评估。
关键的建模调整是将总 token 数 $D$ 分解为两部分:(i)唯一 token 数 $U_D$,以及(ii)重复次数 $R_D$(即 epoch 数 - 1)。因此我们有 $D = U_D(1 + R_D)$。在唯一数据预算 $D_\text{uniq}$ 下,根据定义 $U_D = \min \{{ D_\text{uniq}, D\}}$,$R_D = (D / U_D) - 1$。他们使用 Chinchilla 缩放定律来找到拟合 $U_D$ 的最佳模型大小 $U_N$,并通过重复次数定义额外模型大小 $R_N = (N / U_N) - 1$。
然后他们更新了 Chinchilla 参数拟合方法(方法 3),使用有效(折扣)数据 $D’$ 和模型大小 $N’$ 来代替原始数据量:
$$ \hat{L}(N, D) = \frac{A}{N'^\alpha} + \frac{B}{D'^\beta} + E \quad\text{ where } D' = U_D + U_D\, r_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_N r_N(1 - \exp(-R_N / r_N))$,这体现了“模型在重复数据上更容易快速过拟合”以及“模型可能对数据集来说太大”的想法。这一部分不太直观,我也没有找到一个令人满意的解释,说明为什么模型规模需要以这种对称形式与重复数据相关联。后续 Lovelace 等人(2026)的工作改变了这一假设。
他们的实证拟合发现,额外参数的价值衰减速度比重复数据更快,$r_N < r_D$,因此我们应该优先分配更多资源用于增加训练轮数,而不是增加模型参数。正如作者也指出的那样,这一建模的一个弱点是它显著低估了失败模型(即训练过程中损失中途增加的模型)的最终测试损失,例如训练了 44 轮的模型。
在重复数据下的数据约束扩展比数据无关拟合更能捕捉实验结果;重复 token 的价值呈指数级衰减,最终趋近于一个上限。随着训练轮数增加,拟合效果变差,因为高重复率会导致测试损失在训练中途增加,这一点在图中未体现。(图片来源:Muennighoff 等人 2023)
最近,Lovelace 等人(2026)以不同的方法重新审视了同样的问题。他们没有将过参数化建模为有效模型规模的边际效益递减,而是明确地建模了模型规模 $\times$ 数据重复之间的交互。实证上,他们训练了大约 300 个模型,覆盖了 15M 到 1B 参数以及 50M 到 6B 个唯一 token 的范围。
当他们在固定模型规模下,绘制不同数据重复水平的拟合残差时,观察结果是直观的:更多的训练轮数会导致更大的损害,有趣的是,更大的模型对重复更敏感。这表明损失惩罚很可能是模型规模和数据规模的函数。
有效规模拟合的残差显示,过拟合的损害随着训练轮数和模型规模的增加而增加。(图片来源:Lovelace 等人 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} + \color{red}{P \cdot R_D^\delta \cdot \left(\frac{N}{U_D}\right)^\kappa} $$
其中:
- $R_D$ 是重复次数;
- 标量 $P$ 是一个可学习参数;
- 指数 $\kappa$(第二个可学习参数)使惩罚项与容量比 $N / U_D$ 非线性相关;
- 重复次数上的单独指数 $\delta$(第三个可学习参数)将重复的非线性特性与 $\kappa$ 分离。
新增的红色项是一个直接的过拟合惩罚项,它随着数据重复次数的增加以及模型相对于可用唯一数据的过参数化程度的增加而增长。
他们还对权重衰减如何影响有限数据约束下的训练进行了案例研究,并发现强权重衰减可以减少由数据重复引起的过拟合惩罚。
强权重衰减可以减少数据重复带来的过拟合惩罚。(图片来源:Lovelace 等人,2026)
Muennighoff 等人和 Lovelace 等人的两种建模方法都是基于经验曲线拟合构建的,因此仍然不清楚为什么数据约束的缩放定律必须具有这些特定的形式,以及为什么需要每个自由参数。对这一方向的更多理论工作感到好奇。
在现实中拟合缩放定律的复杂性 #
尽管缩放定律的形式看起来很简洁,但在实践中,缩放定律的拟合对一些看似微不足道的程序选择却异常敏感,比如如何计算参数数量、如何四舍五入精度、如何求和或平均损失等。
由于缩放定律的拟合仅基于我们能够负担得起训练的(相对较小、相对便宜)模型,而预测则是对一个大得多的模型进行外推。在这种情况下,一些看似舍入误差的选择可能导致预测结果出现巨大差异。
同时,缩放定律拟合假设唯一变化的因素是规模,这意味着模型架构、优化器、学习率调度、批次增长、数据混合、分词器以及其他设计选择应保持不变。另一个隐含的假设是,所有这些设置都应经过仔细调优,因为欠训练模型等案例可能导致不同的结论。
Kaplan 等人和 Chinchilla 的结果之间的不一致是展示缩放定律拟合复杂性的一个例子。
另一个例子是对 Chinchilla 方法 3 稍微偏离其他两种方法的原因进行的后续分析。Besiroglu 等人(2024)从 Hoffmann 等人(2022)的图 4 中提取了原始的 $(N, D, L)$ 数据点,并重新运行了方法 3 的参数拟合。他们发现了一些具体的问题:
- 在 L-BFGS-B 最小化器中,由于对每个样本的 Huber 损失值进行平均而不是求和,导致损失尺度较高,从而导致优化提前终止。在原始拟合和引导过程中,损失最小化过程的提前停止导致了不一致的估计和不合理的窄置信区间。
- 报告的 $\alpha$ 和 $\beta$ 被四舍五入到两位精度,这使得推导出的 $A, B$ 看起来比实际情况更偏离。
玩具模拟 #
这是一个由 ChatGPT 创建的玩具模拟小部件,旨在演示三种特定的失败模式。
我们假设真实函数为:
$$ \hat{L}(N, D) = 482.01 \cdot N^{-0.3478} + 2085.43 D^{-0.3658} + 1.8172 $$
因此 $N_\text{opt} \propto C^{0.5126}, D_\text{opt} \propto C^{0.4874}$。这是 Besiroglu 等人(2024)的估计。
该模拟绘制了损失预测 $\hat{L}$ 与数据集大小 $D$ 的关系,同时提供一组滑块来展示以下情况:
- 损失精度:将损失从高到低的小数点进行四舍五入,可能会改变拟合参数的值。
- 损失噪声:仅通过毫损(0.001)单位的乘数扰动损失值,会导致不同的拟合结果。
- 拟合区域敏感性:仅拟合小模型、仅拟合中等模型或拟合所有模型,会得到不同的缩放定律。
引用 #
请引用本工作如下:
Weng, Lilian. "Scaling Laws, Carefully". Lil'Log (2026 年 6 月). 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/"
}References #
[1] S. Amari, N. Fujita, and S. Shinomoto. “Four Types of Learning Curves. Neural Computation.” 4(4):605–618, 1992.
[2] Hestness 等人. “Deep Learning Scaling is Predictable, Empirically.” arXiv 预印本 arXiv:1712.00409, 2017.
[3] Rosenfeld 等人. “A Constructive Prediction of the Generalization Error Across Scales.” ICLR 2020.
[4] Kaplan 等人. “Scaling Laws for Neural Language Models.” arXiv 预印本 arXiv:2001.08361, 2020.
[5] Hoffmann 等人. “Training Compute-Optimal Large Language Models.” NeurIPS 2022.
[6] Pearce 和 Song. “Reconciling Kaplan and Chinchilla Scaling Laws.” TMLR 2024.
[7] Bahri 等人. “Explaining Neural Scaling Laws.” arXiv 预印本 arXiv:2102.06701, 2021.
[8] Sharma 和 Kaplan. “A Neural Scaling Law from the Dimension of the Data Manifold.” arXiv 预印本 arXiv:2004.10802, 2020.
[9] Hernandez 等人. “Scaling Laws and Interpretability of Learning from Repeated Data.” arXiv 预印本 arXiv:2205.10487, 2022.
[10] Muennighoff 等人. “Scaling Data-Constrained Language Models.” NeurIPS 2023.
[11] Lovelace 等人. “Prescriptive Scaling Laws for Data Constrained Training.” arXiv 预印本 arXiv:2605.01640, 2026.
[12] Besiroglu 等人. “Chinchilla Scaling: A Replication Attempt.” arXiv 预印本 arXiv:2404.10102, 2024.
[13] Michaud 等人. “The Quantization Model of Neural Scaling” NeurIPS 2023.
[14] Brill. “Neural Scaling Laws Rooted in the Data Distribution.” arXiv 预印本 arXiv:2412.07942, 2024.
[15] Rae 等人. “Scaling Language Models: Methods, Analysis & Insights from Training Gopher.” arXiv 预印本 arXiv:2112.11446, 2021.