← 返回论文列表
📄 论文解读 · Scaling Laws × Power Law

Scaling Laws for Neural Language Models

揭示语言模型性能与规模之间的幂律关系——模型大小、数据量、计算量如何决定 loss,以及如何最优地分配计算预算

作者
Kaplan, McCandlish, Henighan, Brown, Chess, Child, Gray, Radford, Wu, Amodei
机构
OpenAI
发表
2020 · arXiv:2001.08361
核心命题
Loss ∝ 规模的幂律,大模型 + 少数据 + 早停 = 计算最优
💡一句话总结
Scaling Laws 发现语言模型的 cross-entropy loss 随模型参数量 $N$、数据量 $D$、计算量 $C$ 呈幂律下降,跨越七个数量级仍然成立。模型形状(宽度/深度)对 loss 几乎无影响。给定固定算力,最优策略是训练大模型、用相对少的数据、在远未收敛时停止——这一发现重塑了整个大模型领域的资源分配策略。
🔍研究背景与动机

在 Scaling Laws 发表之前,大模型训练更像一门"黑艺术":

  • 缺乏可预测性:投入更多算力/数据能带来多少提升?没有量化答案,只能靠试错
  • 架构选择困难:该加宽还是加深?注意力头数设多少?需要大量搜索
  • 资源分配盲目:给定 GPU 预算,该训练大模型还是多跑几个 epoch?没有理论指导

OpenAI 在 GPT-2 之后启动了一项系统性实验计划:用从 ~1K 到 ~1.5B 参数的数十个模型,在不同数据量下训练,精确测量 loss 与各规模因素的关系。这项研究的动机很明确——如果能找到性能与规模之间的可预测规律,就能:

1
用小模型预测大模型

在外推到更昂贵的规模之前,用低成本实验预估收益,避免浪费

2
最优分配计算预算

在模型大小、数据量、训练时间之间找到数学上的最优解

3
简化架构搜索

如果形状无关,那么搜索空间从高维降到一维

实验设置

维度设置
模型架构Decoder-only Transformer(GPT-2 系列)
参数范围~1K 到 ~1.5B 非嵌入参数
数据WebText 数据集子集,20M 到 23B tokens
训练上下文长度 1024 tokens,Adam 优化器
指标Cross-entropy loss(bits/token),在 WebText 测试集上评估
关键设计选择:论文使用非嵌入层参数量 $N$ 而非总参数量来衡量模型大小。这是因为 token embedding 和 position embedding 本质上是查找表,不参与前向计算中的"深度"运算。这个选择使得幂律关系的拟合更精确。
📈核心幂律关系

论文研究了语言模型 test loss 与三个规模因素的经验关系。当只改变一个变量而其他变量充分大时,loss 服从如下幂律:

模型参数量
$L \propto N^{-0.076}$
参数量每增 ~10x,loss 降一个常数
数据集大小
$L \propto D^{-0.095}$
数据量每增 ~10x,loss 降一个常数
训练计算量
$L \propto C^{-0.050}$
计算量每增 ~10x,loss 降一个常数

幂律公式

$$L(N) = \left(\frac{N_c}{N}\right)^{\alpha_N}, \quad L(D) = \left(\frac{D_c}{D}\right)^{\alpha_D}$$
符号说明
  • $N$ — 模型非嵌入层参数量(attention + FFN,不含 embedding)
  • $D$ — 训练 token 数量
  • $\alpha_N \approx 0.076$, $\alpha_D \approx 0.095$ — 幂律指数
  • $N_c \approx 8.8 \times 10^{13}$, $D_c \approx 5.4 \times 10^{13}$ — 常数项
为什么是非嵌入层参数? Embedding 参数只占总参数一小部分,且功能是查表而非计算,所以论文用非嵌入层参数来衡量模型的"计算能力"。

论文原图:幂律关系可视化

Figure 1: Power-law scaling
Figure 1:Loss vs $N$、$D$、$C$ 的幂律缩放,跨越 ~7 个数量级。
Figure 5: Loss vs parameter count
Figure 5:Loss vs $N$,不同颜色代表不同数据量,缩放趋势一致。

为什么是幂律?

幂律 $y = ax^{-b}$ 意味着每增加一个固定倍数的投入,loss 下降的绝对量在递减(边际递减),但永远不会饱和——不像指数衰减那样有渐进下界。这种"无限可扩展"的特性,正是推动大模型军备竞赛的理论基础。

幂律 vs 指数衰减:如果 loss 随规模指数衰减($L \propto e^{-x}$),那投到一定程度就几乎没有收益。但幂律保证每个数量级的投入都有对应的可预测收益——这是"继续 scale 就有回报"的数学基础。

训练过程中的幂律

幂律不仅体现在最终 loss 上,训练过程本身也遵循幂律。下图展示了不同大小模型在训练过程中 loss 的下降曲线:

Figure 2: Training runs
Figure 2:不同规模模型的训练曲线。模型越大下降越快,但所有曲线形状相似——loss 与计算量之间有统一的缩放关系。
💡 举例:如何用幂律预测性能

假设你用 100M 参数模型在 10B tokens 上训练,得到 loss = 3.2。现在想知道 1B 参数模型需要多少数据达到 loss = 2.8?

根据 $L(N) \propto N^{-0.076}$:参数量增加 10x,loss 乘以 $10^{-0.076} \approx 0.84$。所以 1B 模型在数据充足时,loss 约为 $3.2 \times 0.84 \approx 2.69$,已经低于目标。这意味着 1B 模型不需要 10B tokens 就能达到目标——数据量可以更少,符合"大模型 + 少数据"的最优分配。

🧱模型形状无关性

总参数量 $N$ 固定时,宽度($d_\text{model}$)、深度($n_\text{layer}$)、注意力头数等超参数对 loss 的影响非常有限。不同形状但相同参数量的模型,loss 差异 < 2%。

关键结论:决定模型性能的是参数总量,而非参数的排列方式。架构搜索从高维降到了几乎一维。
Figure 6: Loss vs params by depth/width
Figure 6:相同参数量下,不同深度/宽度组合的 loss 几乎完全重合,证实形状无关性。

无关性的边界条件

  • 宽度:$d_\text{model} \geq 128$,太窄则表达能力不足
  • 深度:$n_\text{layer} \geq 2$,太浅则无法学到深层特征
  • 注意力头:$d_\text{head} \geq 8$,头数不宜过少
  • 在这些合理范围内,形状的影响可以忽略

传统认知

更深 = 更强表示能力;更宽 = 更大记忆容量。需精心调整 depth/width 比例。

Scaling Laws 结论

只需关注总参数量。形状的微调收益远不如直接增大规模,极大简化了架构搜索。

⚖️过拟合与数据规模

当同时改变模型大小 $N$ 和数据大小 $D$ 时,loss 由以下联合公式描述:

$$L(N, D) = \left[\left(\frac{N_c}{N}\right)^{\alpha_N / \beta} + \left(\frac{D_c}{D}\right)^{\alpha_D / \beta}\right]^{\beta}$$
符号说明
  • $\beta \approx 0.083$ — 插值参数,控制两条幂律的融合方式
  • 当 $D \to \infty$ 时退化为 $L(N)$;当 $N \to \infty$ 时退化为 $L(D)$
  • 该公式可平滑插值两个极端情况
核心规律:模型参数每增 10x,数据量约需增 10x 才能保持相同过拟合水平。数据量 ~20x 参数量时,过拟合 < 1%。
💡 举例:过拟合的直观理解

假设你有 100M 参数模型 + 2B tokens 数据,过拟合约 1%。现在想训练 1B 参数模型:

参数增 10x → 数据也需增约 10x → 需要 ~20B tokens 才能保持同样低的过拟合。如果只有 5B tokens,1B 模型可能因为过拟合表现还不如 100M 模型。

这解释了为什么 GPT-3(175B 参数)使用了 300B tokens 训练——数据/参数比约 1700x,远超 20x 最低线,确保过拟合几乎为零。

Figure 7: Loss vs dataset size
Figure 7:Loss 随数据量的幂律,数据越多 loss 越低。
Figure 9: Overfitting vs N/D ratio
Figure 9:过拟合 vs $N^8/D^7$,数据点落在同一条曲线上。
计算最优分配

给定固定计算预算 $C$,应该如何在模型大小 $N$ 和训练步数(数据量 $D$)之间分配?这是论文最具实践价值的发现。

最优策略:训练非常大的模型,用相对适中的数据量,在远未收敛时就停止训练。

最优缩放公式

$$N_\text{opt}(C) \propto C^{0.73}, \quad D_\text{opt}(C) \propto C^{0.27}$$
含义
  • 算力增加时,73% 投入模型规模,27% 投入数据
  • 最优模型大小随算力超线性增长($C^{0.73} > C^{0.5}$)
  • 最优训练步数随算力亚线性增长($C^{0.27} < C^{0.5}$)

下图直观展示了这个分配关系——给定计算预算时,模型大小、batch 数、训练步数各自应该分配多少:

Figure 3: Compute allocation
Figure 3:给定计算预算下,模型大小、batch 数、训练步数的最优分配关系。大部分算力应投入模型规模。
反直觉:传统经验认为应该训练到收敛,但 scaling laws 表明最优策略是在 early stopping 点就停止。训练到收敛的模型浪费了大量计算——那些额外计算本可以用来训练更大的模型。

不同算力级别的最优分配

计算量 (FLOPs)最优参数量最优训练 Tokens训练状态
$10^{15}$~40M~0.4B远未收敛
$10^{17}$~1B~2B远未收敛
$10^{19}$~25B~10B远未收敛
$10^{21}$~600B~50B远未收敛

每个算力级别的最优模型都没有训练到收敛。收敛所需的数据量远大于最优数据量。下图从两个角度进一步验证:左边展示计算效率前沿,右边展示最优模型大小和步数随算力的变化:

Figure 13: Compute-efficient frontier
Figure 13:计算效率前沿。每条曲线代表一个模型大小,更大模型的曲线始终在左下方。
Figure 14: Optimal model size vs compute
Figure 14:$N_\text{opt} \propto C^{0.73}$(快速上升),$S_\text{min} \propto C^{0.03}$(几乎水平)。

大模型的样本效率

更大的模型具有更高的样本效率——每步 loss 下降幅度更大,达到相同 loss 所需训练步数更少。大模型的每步学习效率补偿了步数的减少,这就是"大模型 + 少数据"反而最优的原因。

💡 举例:为什么"大模型 + 少数据"反而最优?

假设你有 $10^{19}$ FLOPs 预算,两种方案:

方案 A:训练 5B 参数模型到收敛,需要 100B tokens。Loss 达到 2.5。

方案 B:训练 25B 参数模型,只跑 10B tokens 就停。Loss 达到 2.3。

方案 B 用了更少的数据但得到更好的 loss,因为 25B 模型每步学到的信息量远大于 5B 模型——大模型从每个 token 中提取了更多信息。多出的算力没有被浪费在"逼近收敛"上,而是花在了"让每步更高效"上。

Figure 10: Training curves showing early stopping
Figure 10:不同大小模型的训练曲线。更大模型在更少步数内就超过小模型的最终 loss,最优停止点远在收敛之前。
🧮其他缩放规律

学习率与模型规模

最优峰值学习率随模型大小缓慢下降:$\eta^* \approx 0.03 \cdot N^{-0.074}$。更大模型需要更小学习率,但指数 -0.074 很小,实际变化幅度不大——参数增 1000x 学习率只降约一半。

实践意义:这意味着在不同规模间迁移学习率时,不需要大幅调整。从 100M 到 10B 参数,最优学习率仅从 ~0.003 降到 ~0.002。

最优 Batch Size

$$B_\text{opt}(L) = \frac{B_*}{L^{1/\alpha_B}}, \quad \alpha_B \approx 0.049$$
含义
  • 更好的模型(更低 loss)需要更大的 batch size
  • 直觉:接近最优时梯度噪声更小,可以用更大 batch
  • 临界 batch size $B_\text{crit}$ 决定了"数据并行"的收益上限
Figure 12: Critical batch size
Figure 12:临界 batch size $B_\text{crit}$ 与 loss 的幂律关系。loss 越低,最优 batch size 越大。

计算量估算

论文给出了非嵌入层计算量的简单估算公式:

$$C \approx 6 N B S$$
符号说明
  • $C$ — 总训练计算量(FLOPs)
  • $N$ — 非嵌入层参数量
  • $B$ — batch size(tokens)
  • $S$ — 训练步数
  • 因子 6:前向 ~2N + 反向 ~4N(反向传播需要存储和计算梯度)
快速估算:训练一个 7B 参数模型,batch size 4M tokens,跑 100k 步 → $C \approx 6 \times 7\text{B} \times 4\text{M} \times 100\text{k} = 1.68 \times 10^{22}$ FLOPs。约需 ~583 张 A100 跑 14 天(假设每卡 312 TFLOPS 利用率 45%)。

泛化性验证

论文还在不同数据分布上验证了 scaling laws 的泛化性:

  • 在 WebText 上拟合的幂律参数,也能较好地预测在书籍、维基百科等分布上的 loss
  • 不同分布的绝对 loss 值不同,但缩放趋势(幂律指数)相似
  • 这说明 scaling laws 捕捉的是模型本身的缩放特性,而非数据集的特殊性质
🚀实践启示
1
性能可预测

给定模型大小和数据量,可用简单公式预测最终 loss。用小模型实验就能预测大模型性能,提前估算资源,极大降低试错成本。

2
Bigger is Better

给定算力,优先增大模型而非增加数据或训练步数。GPT-3 的 175B 参数、GPT-4 的更大规模——设计决策直接源于此结论。

3
Early Stopping 是最优的

不要训练到收敛!最优策略是训练大模型但提前停止。颠覆了"训练到收敛再调架构"的传统做法。

4
架构搜索降维

形状无关意味着超参数搜索只需关注总参数量,从高维降到几乎一维。

资源规划

根据目标性能反推所需 GPU 小时和电力,做出精确投资决策。

竞争壁垒

幂律意味着性能与投入单调相关——没有免费午餐,算力即实力。

数据价值

数据的幂律指数 ($0.095$) 大于模型的 ($0.076$),数据比模型更"值钱"——但大模型能更高效地利用数据。

渐进投资

幂律的凸性使前期投入边际收益更高——可用小模型验证方案,再逐步放大。

对后续研究的范式影响:Scaling Laws 开创了"可预测缩放"的研究范式。Chinchilla (2022) 修正了数据量不足的偏差,提出更均衡的 $N \propto C^{0.5}$, $D \propto C^{0.5}$ 方案——但方法论完全继承了本文的框架。

关键公式速查表

关系公式关键参数
Loss vs 参数$L(N) = (N_c/N)^{\alpha_N}$$\alpha_N = 0.076$
Loss vs 数据$L(D) = (D_c/D)^{\alpha_D}$$\alpha_D = 0.095$
Loss vs 计算$L(C) = (C_c/C)^{\alpha_C}$$\alpha_C = 0.050$
联合缩放$L(N,D) = [(N_c/N)^{\alpha_N/\beta} + (D_c/D)^{\alpha_D/\beta}]^\beta$$\beta = 0.083$
最优参数$N_\text{opt} \propto C^{0.73}$
最优数据$D_\text{opt} \propto C^{0.27}$
最优学习率$\eta^* \approx 0.03 \cdot N^{-0.074}$
最优 Batch$B_\text{opt}(L) = B_* / L^{1/\alpha_B}$$\alpha_B = 0.049$
计算量$C \approx 6NBS$6 = 前向2N + 反向4N
🔬局限与后续

本文局限

  • 数据量偏少:$D \propto C^{0.27}$ 导致训练数据不足。后续 Chinchilla (2022) 纠正为 $D \propto C^{0.5}$,指出应同时增加数据和模型
  • 仅衡量 loss:cross-entropy loss 不等于下游任务性能,loss 下降不保证能力涌现
  • Transformer 特定:结论仅基于 Transformer 架构,其他架构的缩放行为可能不同
  • 参数定义争议:使用非嵌入层参数而非总参数量,可能低估小模型能力
  • 有限规模:最大实验仅 1.5B 参数,向更大规模的推广需要验证

重要后续工作

论文年份核心修正/扩展
Chinchilla (Hoffmann et al.)2022修正数据分配:$N \propto C^{0.5}$, $D \propto C^{0.5}$,70B 模型用 1.4T tokens 超越 280B Gopher。核心发现:原始论文低估了数据量的重要性——最优策略应是模型和数据同步增长
Scaling Data-Constrained LMs2023数据受限场景(数据重复)下的缩放规律。重复 4 epoch 的数据约等效于 1 epoch 新数据的 50%
Emergent Abilities (Wei et al.)2022特定能力在特定规模突然出现,不符合平滑幂律。暗示 scaling laws 可能无法捕捉所有行为
RM Overoptimization2022将 scaling laws 扩展到 RLHF 场景:reward model 过优化的.golden reward 也遵循幂律
Inference Scaling2024+推理时计算(CoT 步数、搜索深度)也能 scaling,开辟新维度
Chinchilla 的关键修正:原始 Scaling Laws 建议 $D \propto C^{0.27}$,导致 GPT-3 (175B) 只用了 300B tokens。Chinchilla 重新拟合后发现 $D \propto C^{0.5}$,即数据和模型应同步增长。这解释了为什么 Llama 系列虽然参数更少但用了更多数据——Llama-2 70B 用了 2T tokens,是 GPT-3 的 ~7x。
最重要遗产:不是具体数值,而是一种思维方式——用小实验预测大结果、用量化关系指导资源分配、用幂律代替经验直觉。这种方法论已渗透到 AI 研究的方方面面。

对当前大模型发展的意义

  • DeepSeek-V3:671B 参数 + 14.8T tokens,数据/参数比 ~22x,与原始论文建议一致
  • Llama 3:405B 参数用 15T+ tokens,更接近 Chinchilla 建议
  • 合成数据:当互联网数据耗尽时,scaling laws 如何适应?当前核心研究问题
  • 推理期缩放:OpenAI o1/o3 证明推理时计算也能 scaling——这是一个新的维度