作者:Weng, Lilian|青稞编辑部翻译
原文:https://lilianweng.github.io/posts/2026-06-24-scaling-laws/*
缩放定律是深度学习中最关键的实证发现之一。其观察形式简洁:随着模型规模 N、数据集大小 D 和计算量 C 的扩大,训练损失 L 按照幂律曲线可预测地下降,在对数-对数图上表现为一条直线。我们可以将缩放定律视为描述计算量、损失、模型规模和数据之间关系的框架;其核心在于如何在 N 和 D 之间最优地分配宝贵的计算资源。
这种可预测性使缩放定律在实践中极具价值。常见的工作流程是先在少量小规模运行上拟合缩放定律,然后外推估计更大模型的 token 和计算需求。
| Symbol | Note |
|---|---|
| N | Model size, measured in parameter count. |
| D | Training dataset size, usually measured in token count. |
| C | Training compute in FLOPs. As a useful approximation, C \approx 6ND (Kaplan et al. 2020), where 2ND accounts for the forward pass and 4ND for backpropagation. |
| E | Irreducible loss |
| L, \hat{L}(.) | Test loss / test loss prediction function; can also refer to training loss, since they are strongly correlated. |
| \epsilon | Generalization error. |
Early days: ML loss predictability
在缩放定律成为主流概念之前,人们就已经在研究泛化误差随规模变化的可预测性。
Amari 等人 (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 是随机学习器无法进一步降低的残差误差,例如当模型在大数据上耗尽容量时。
所有四种学习曲线均遵循幂律:
其中 E 可为 0,\alpha = -2, -1, -1/2。虽然他们的理论设置基于简化的二分类任务,但这为构建经验性机器学习损失预测模型指明了有用的方向。
Hestness 等人 (2017) 最早进行了实证研究,解释了泛化误差、模型规模和数据之间的关系。对于给定的训练数据量,他们通过网格搜索确定最佳拟合模型规模,然后绘制损失与训练数据集大小的关系图。在深度学习的四个不同领域(神经机器翻译、图像分类、语言建模和语音识别)中,观察到了一个反复出现的模式:
- 泛化误差在多个因素(如数据量)上按幂律缩放。
- 模型改进会平移误差曲线,但似乎不影响幂律指数。
- 有趣的是,架构改变幂律拟合的偏移量(E),但不改变指数(\alpha)。幂律的斜率似乎是问题域的属性,而非模型架构的属性。
- 拟合大小为 D 的数据集所需的模型参数量 N 也按幂律缩放。

概念图将学习曲线分为三个阶段。在小数据区域,当学习信号不足时,模型的表现仅略优于随机猜测。中间区域(“幂律区域”),我们观察到损失、数据和模型规模之间的幂律关系。最后的不可约误差区域可归因于数据中的噪声等因素。

Rosenfeld 等人 (2020) 在此基础上进一步推进,尝试将误差建模为模型规模 N 和数据大小 D 的联合函数,覆盖了多种架构(ResNet、WRN、LSTM、Transformer)和优化器(Adam、各类 SGD)。他们实证观察到,固定其中一个维度时,误差在另一个维度上按幂律衰减:
可将两者合并为联合形式:
其中 A > 0, B > 0, \alpha \geq 0, \beta \geq 0 为标量常数,E 不依赖于 N 或 D。

因此,他们可以构建一个形式简单的参数函数预测模型,使用 \boldsymbol{\theta} = \langle A, B, E, \alpha, \beta \rangle 参数,通过在 (D, N) 小于某一阈值的小规模训练配置上拟合,来预测 (D, N) 大于某一阈值时的期望损失。

注:这些早期工作依赖于经典学习理论直觉,如 VC 维,通常预测 \propto 1/D^{1/2},但经验观察到的指数通常更强(即更陡峭,接近 \propto 1/D)。
Scaling Laws in Data-Infinite Region
Kaplan 等人的缩放定律
Kaplan 等人 (2020) 将缩放定律的概念推广到了语言建模领域。他们发现交叉熵测试损失 L 分别在模型大小 N(排除嵌入层)、数据集大小 D 和训练计算量 C 上按幂律缩放,跨越多个数量级。
这些发现与上一节的早期工作一致,但 Kaplan 等人将其形式化为以 Transformer 语言模型为重点的概念,并在更大规模上进行了实证实验,模型规模从 768M 到 1.5B 非嵌入参数,数据集大小从 22M 到 23B tokens。
论文中所有训练运行使用了一个 3000 步线性 warmup 的学习率调度,随后进行余弦衰减至零。
关键发现列表:
- 损失 L 分别随 N、D 和 C 按幂律缩放;要实现最优性能,三者必须协同扩展。
- 训练曲线遵循可预测的幂律,其参数大致与模型大小无关。
- 更大模型样本效率更高,意味着它们用更少的优化步骤和更少的数据点达到给定损失。
- 架构细节(宽度、宽高比等)的影响远小于规模本身。
- 训练损失和测试损失呈正相关(听起来简单,但这是预训练工作的基础。另一方面,在微调阶段测试损失可能会增加)。
- 在固定计算预算下,训练一个非常大的模型并在收敛前停止,比训练一个较小的模型直到收敛更高效。
他们将 N 和 D 的联合依赖性总结为单一方程:
这种形式的一个良好性质是过拟合程度(即模型复杂但数据量小)主要取决于比值 N^{\alpha / \beta} / D,这表明数据需求量与模型大小按幂律增长。

最具影响力、事后看来也最有争议的结论是计算最优分配。Kaplan 等人发现 N_\text{opt} \propto C^{0.73},并得出结论:模型大小应比训练 token 增长更快——每 8 倍参数量配合 1.3 倍训练 token 量。
Kaplan 等人另一个有用的分析是基于 D 和 N 近似所需的训练 FLOPs 数量。每次乘加操作计为约 2 FLOPs。

给定标准配置 d_\text{attn} = d_\text{model} = d_\text{ff}/4,且从 N 和每次 token 前向计算中排除嵌入层:
然后我们将反向传播 FLOPs 计为前向传播的两倍,因为反向传播运行两个矩阵乘法:分别计算相对于输入激活和权重的梯度。这意味着总训练 FLOPs C \approx 6ND。
Chinchilla 缩放定律
Chinchilla 论文 (Hoffmann 等人 2022) 研究了最优模型大小 N(总参数量,包括嵌入层)与最优训练 token 数 D 之间的关系,目标是找到给定 FLOPs 预算 C 下的最优 (N, D) 组合。

核心问题是在约束 \text{FLOPs}(N, D) = C \approx 6ND 下,如何最优配置资源。换言之,当我们拥有有限 FLOPs(给定数量的 GPU 运行固定时长)时,应该训练一个参数更多但数据使用次数更少的大模型,还是参数更少但数据使用次数更多的小模型?
Chinchilla 论文提出了三种设计精巧的缩放定律拟合方法。
实证实验扫描了超过 400 个模型,参数量从 70M 到超过 16B,训练 token 从 5B 到 500B。实验假设每个训练 token 在每个训练过程中最多使用一次(无重复数据)。
方法 1:固定模型规模,变化 token 预算
对于每个参数量 N,使用不同的 token 预算进行多次训练,记录每个 FLOP 预算 C 下达到的最小损失。

方法 2:IsoFLOP 轮廓分析
固定计算预算 C,绘制最终损失随参数量 N 的变化图。每个 iso-FLOP 曲线在对数空间中大致呈抛物线,其最小值标记了该预算下的最优模型大小。

方法 3:参数拟合
Chinchilla 采用了与 Rosenfeld 等人 (2020) 相同的参数形式:
实际上我们可以通过最小化约束条件下的 \hat{L}(N, D) 来获得最优 N_\text{opt}(C), D_\text{opt}(C) 的闭式近似。
首先将表达式简化为只包含 N:
当 \alpha \approx \beta 时,模型大小和训练 token 应以相同速率缩放。
为找到最优参数 \boldsymbol{\theta} = \langle A, B, E, \alpha, \beta\rangle,Chinchilla 论文采用 Huber 损失(对异常值鲁棒;\delta=10^{-3})在对数空间中拟合到实验运行结果:
Chinchilla 通过三种互补方法得出一致答案,这也是其结论极具说服力的部分原因。


Chinchilla 论文关于大多数大模型(当时约 2022 年)训练不足的主张,得到了一个著名演示的支持:在与 Gopher (Rae 等人 2021) 相同的计算预算下,Chinchilla 模型(更小的参数量 70B,更多的 token 1.4T)在所有 9 个标准基准测试中的 7 个上胜出。
调和 Kaplan 与 Chinchilla 的分歧
Chinchilla 缩放定律与 Kaplan 等人的分歧如下:
- 不同于“模型增长快于数据增长”(N_\text{opt} \propto C^{0.73}),Chinchilla 发现每翻倍模型大小,训练数据也应翻倍。
- 不同于“训练大模型并在收敛前停止”,应该训练较小的模型在更多数据上。
两篇论文在基本原则上一脉相承,但对最优规模与 token 的权衡点存在分歧。为什么会有如此大的分歧?
这是因为当我们在对数-对数空间中外推时,拟合中的微小差异可能导致巨大差距(参见玩具模拟)。
差异 1:Kaplan 等人主要在小模型上实验。
Kaplan 等人主要在小模型上实验,而 Chinchilla 论文的实验规模大了 10 倍以上。
差异 2:嵌入参数量对小模型至关重要。
在小参数区域,嵌入参数在总量中占比不可忽视,因此是否计入它们会显著影响缩放形状。
为弥合分歧,Pearce & Song (2024) 发现关键变量是非嵌入参数量 N_{\setminus E},并拟合了总参数量 N_T 与非嵌入参数量 N_{\setminus E} 之间的关系:
这种形式具有良好的性质:严格递增,且 \lim_{N \to \infty} N = N_{\setminus E}。
将其代入 Chinchilla 定律方程:
上式中 C_{\setminus E} 与 N_{\setminus E} 的关系不再是简洁的幂律。我们只能在局部近似为 N^*_{\setminus E} \propto C^{g(C_{\setminus E})}_{\setminus E},其中 g 是随 C_{\setminus E} 增长的指数。

如上图所示,随着 C_{\setminus E} 增大,g 收敛至 Chinchilla 估计值。通过上述方程生成合成训练曲线,在与原始 Kaplan 实验相似的模型规模范围内拟合局部幂律,可以复现 Kaplan 的原始发现 g \sim 0.73 和 Chinchilla 的大规模 g \sim 0.50。
为什么是幂律?
幂律在人工智能之外的许多领域也广泛存在,如 齐普夫定律、无标度网络 和 帕累托分布。
为什么 LLM 缩放定律也具有幂律形式?
受不同领域呈现不同指数 (Hestness 等人 2017) 的启发,一个早期解释 (Sharma & Kaplan 2020、Bahri 等人 2021) 认为神经网络本质上是一种平滑插值机制:在由 M 个 token 组成的数据流形上进行插值时,如果每个 token 携带约 1/M 位信息,那么将流形分辨率提高 \epsilon 需要 \epsilon^{-d} 个 token,其中 d 是数据流形的本征维度。
后来的假设 (Michaud 等人 2023、Brill 2024) 认为知识或技能以离散块(“量化”)的形式被学习。在这种视图中,训练中的缩放定律反映了数据集中技能分布的幂律尾部——即数据集中每个技能出现频率不均衡。
这里仅列举了两个假设,实际上还有更多研究通过数据谱尾、核特征值、自然语言统计或相变等视角来解释幂律缩放。(Bahri 等人 2021 提供了更全面的综述。)
数据受限区域的缩放定律
经典缩放定律假设数据实际上是无限且唯一的——无重复数据、无多 epoch 训练。随着模型规模大幅增长,高质量唯一 token 正在日益耗尽。数据受限缩放定律尝试建模当数据不足时性能如何变化。
值得强调的是,D 所代表的数据集应为已清洗数据。预训练数据流水线往往是高效预训练的关键一环,常见步骤包括规则去重、基于模型的去重、基于困惑度的过滤和基于启发式的质量过滤。此外,对于多模态或海量数据情境,管道还涉及显式去重方案。
Hernandez 等人 (2022) 的研究聚焦在一个受控场景:一个基本唯一的数据集,仅含少量重复数据。从一个大数据集开始,他们通过控制数据重复量来系统地限制数据量。他们在训练过程中观察到了一个有趣的双重下降模式:

训练中段的平坦或上升趋势可能归因于对重复数据的记忆。具有这种形状的学习曲线使缩放定律拟合不够准确。他们还得出结论:重复数据对训练有害,且重复数据的影响在训练后期显现。值得注意的是,当重复比例较小时,性能下降在训练早期几乎不可见,但最终依然显著恶化。
与其说数据重复损害训练,我们更关心在高质量唯一数据并非无限、训练中必然需要重复数据的情况下,如何拟合缩放定律。
Muennighoff 等人 (2023) 研究了在数据受限情况下如何最优分配计算资源的问题。具体来说,他们通过约 400 个实验实证研究了数据重复的影响,覆盖 10M 到 9B 参数、数据量高达 900B token、最多 1500 epochs。每个 epoch 重复使用完全相同的训练集,在 epoch 之间进行 shuffle,并在保留的测试集上进行评估。
关键的建模调整是将总 token 数 D 分解为两部分:(i) 唯一 token 数 U_D 和 (ii) 重复次数 R_D(即 epoch 数减 1)。因此 D = U_D (1 + R_D)。关键在于大多数 token 会在训练过程中被多次使用,这意味着简单的 token 计数不能准确反映数据多样性。
他们随后更新 Chinchilla 参数化拟合(方法 3),用有效(折价后的)数据 D' 和模型大小 N' 替代原始量:
直观理解是,token 的价值随重复指数衰减。在他们的建模中,每次重复使 token 损失 (1 - 1/r_D) 的剩余价值,其中 r_D 是学习率参数(衰减速率常数)。
对称公式处理过剩模型大小,捕捉了“更大模型在重复数据上过拟合更快”的思想,以及“模型可以过大以至于超出基准”的情况。
他们的经验拟合发现,过剩参数的价值衰减比重复数据更快(r_N < r_D),因此应将更多资源分配至更多 epoch 而非更多模型参数。一个弱点是他们在所有模型中使用了固定学习率,这可能影响结果。

最近,Lovelace 等人 (2026) 以不同方法重新审视了同一问题。他们没有将过度参数化建模为有效模型的收益递减,而是直接显式引入过拟合惩罚项。
当他们绘制固定模型大小下不同数据重复水平的拟合残差时,观察直观明了:更多 epoch 造成更大损害,且有趣的是,模型越大对重复越敏感(即更多参数意味着更快的过拟合)。

他们引入了一个显式的过拟合惩罚项,围绕容量比 N / U_D(参数量相对于唯一 token 数)构建:
其中:
- R_D 是重复次数;
- 标量 P 是可学习参数;
- 指数 \kappa(第 2 个可学习参数)使惩罚随容量比 N / U_D 非线性缩放;
- 重复次数上单独的指数 \delta(第 3 个可学习参数)用于解耦重复数非线性与 \kappa。
新增项(红色标记)是一个直接的过拟合惩罚,它随数据重复次数和模型相对于可用唯一数据的过参数化程度同步增长。
他们还开展了关于权重衰减如何影响有限数据约束下训练的案例研究,发现强权重衰减可降低数据重复导致的过拟合惩罚。

Muennighoff 等人和 Lovelace 等人的建模方法均基于经验曲线拟合,因此数据受限缩放定律为何应具有这些精确形式仍然不清楚。更令人担忧的是,这两种建模方法对什么是“重复”给出了不同的含义。
实际中拟合缩放定律的难点
尽管形式简洁,但在实践中,缩放定律拟合对看似微不足道的程序性选择异常敏感,如如何计算参数、如何舍入精度、如何对实验运行求和取平均等。
因为缩放定律仅在我们负担得起的(相对小、相对便宜)模型上拟合,而预测是外推至数量级更大的模型。在这种环境中,微小的参数变化可能导致截然不同的外推结果。
同时,缩放定律拟合假设唯一变化的因素是规模,这意味着模型架构、优化器、学习率调度、batch 递增策略、数据配比、分词器和其他设计选择在所有实验运行中保持一致。但事实上并非如此。
Kaplan 和 Chinchilla 之间的分歧正是展示缩放定律拟合难点的一个例证。
玩具模拟
- L-BFGS-B 优化器中的损失规模过高,原因是对所有样本取 Huber 损失均值而非求和,导致优化过早终止。原始拟合和自助法(bootstrapping)期间损失最小化的提前停止产生了一致性较差的估计和难以令人信服的窄置信区间。
- 报告的 \alpha 和 \beta 仅保留 2 位有效数字,使得推导出的 A, B 看起来比实际偏差更大。
以下是一个由 ChatGPT 创建的玩具模拟器,旨在演示三种特定的失败模式。
我们假设真实函数为:
因此 N_\text{opt} \propto C^{0.5126}, D_\text{opt} \propto C^{0.4874}。此估计来自 Besiroglu 等人 (2024)。
模拟器绘制损失预测 \hat{L} 随数据集大小 D 的变化图,同时提供一组滑块来演示:
- 损失精度:从高到低的舍入精度会改变拟合参数值。
- 损失噪声:仅以 0.001 为单位扰动损失值就会导致不同的拟合结果。
- 拟合区域敏感性:仅拟合小模型、仅拟合中模型或拟合全部模型会得到不同的缩放定律。