在 Scaling Laws 发表之前,大模型训练更像一门"黑艺术":
- 缺乏可预测性:投入更多算力/数据能带来多少提升?没有量化答案,只能靠试错
- 架构选择困难:该加宽还是加深?注意力头数设多少?需要大量搜索
- 资源分配盲目:给定 GPU 预算,该训练大模型还是多跑几个 epoch?没有理论指导
OpenAI 在 GPT-2 之后启动了一项系统性实验计划:用从 ~1K 到 ~1.5B 参数的数十个模型,在不同数据量下训练,精确测量 loss 与各规模因素的关系。这项研究的动机很明确——如果能找到性能与规模之间的可预测规律,就能:
在外推到更昂贵的规模之前,用低成本实验预估收益,避免浪费
在模型大小、数据量、训练时间之间找到数学上的最优解
如果形状无关,那么搜索空间从高维降到一维
实验设置
| 维度 | 设置 |
|---|---|
| 模型架构 | Decoder-only Transformer(GPT-2 系列) |
| 参数范围 | ~1K 到 ~1.5B 非嵌入参数 |
| 数据 | WebText 数据集子集,20M 到 23B tokens |
| 训练 | 上下文长度 1024 tokens,Adam 优化器 |
| 指标 | Cross-entropy loss(bits/token),在 WebText 测试集上评估 |
论文研究了语言模型 test loss 与三个规模因素的经验关系。当只改变一个变量而其他变量充分大时,loss 服从如下幂律:
幂律公式
- $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}$ — 常数项
论文原图:幂律关系可视化
为什么是幂律?
幂律 $y = ax^{-b}$ 意味着每增加一个固定倍数的投入,loss 下降的绝对量在递减(边际递减),但永远不会饱和——不像指数衰减那样有渐进下界。这种"无限可扩展"的特性,正是推动大模型军备竞赛的理论基础。
训练过程中的幂律
幂律不仅体现在最终 loss 上,训练过程本身也遵循幂律。下图展示了不同大小模型在训练过程中 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%。
无关性的边界条件
- 宽度:$d_\text{model} \geq 128$,太窄则表达能力不足
- 深度:$n_\text{layer} \geq 2$,太浅则无法学到深层特征
- 注意力头:$d_\text{head} \geq 8$,头数不宜过少
- 在这些合理范围内,形状的影响可以忽略
传统认知
更深 = 更强表示能力;更宽 = 更大记忆容量。需精心调整 depth/width 比例。
Scaling Laws 结论
只需关注总参数量。形状的微调收益远不如直接增大规模,极大简化了架构搜索。
当同时改变模型大小 $N$ 和数据大小 $D$ 时,loss 由以下联合公式描述:
- $\beta \approx 0.083$ — 插值参数,控制两条幂律的融合方式
- 当 $D \to \infty$ 时退化为 $L(N)$;当 $N \to \infty$ 时退化为 $L(D)$
- 该公式可平滑插值两个极端情况
假设你有 100M 参数模型 + 2B tokens 数据,过拟合约 1%。现在想训练 1B 参数模型:
参数增 10x → 数据也需增约 10x → 需要 ~20B tokens 才能保持同样低的过拟合。如果只有 5B tokens,1B 模型可能因为过拟合表现还不如 100M 模型。
这解释了为什么 GPT-3(175B 参数)使用了 300B tokens 训练——数据/参数比约 1700x,远超 20x 最低线,确保过拟合几乎为零。
给定固定计算预算 $C$,应该如何在模型大小 $N$ 和训练步数(数据量 $D$)之间分配?这是论文最具实践价值的发现。
最优缩放公式
- 算力增加时,73% 投入模型规模,27% 投入数据
- 最优模型大小随算力超线性增长($C^{0.73} > C^{0.5}$)
- 最优训练步数随算力亚线性增长($C^{0.27} < C^{0.5}$)
下图直观展示了这个分配关系——给定计算预算时,模型大小、batch 数、训练步数各自应该分配多少:
不同算力级别的最优分配
| 计算量 (FLOPs) | 最优参数量 | 最优训练 Tokens | 训练状态 |
|---|---|---|---|
| $10^{15}$ | ~40M | ~0.4B | 远未收敛 |
| $10^{17}$ | ~1B | ~2B | 远未收敛 |
| $10^{19}$ | ~25B | ~10B | 远未收敛 |
| $10^{21}$ | ~600B | ~50B | 远未收敛 |
每个算力级别的最优模型都没有训练到收敛。收敛所需的数据量远大于最优数据量。下图从两个角度进一步验证:左边展示计算效率前沿,右边展示最优模型大小和步数随算力的变化:
大模型的样本效率
更大的模型具有更高的样本效率——每步 loss 下降幅度更大,达到相同 loss 所需训练步数更少。大模型的每步学习效率补偿了步数的减少,这就是"大模型 + 少数据"反而最优的原因。
假设你有 $10^{19}$ FLOPs 预算,两种方案:
方案 A:训练 5B 参数模型到收敛,需要 100B tokens。Loss 达到 2.5。
方案 B:训练 25B 参数模型,只跑 10B tokens 就停。Loss 达到 2.3。
方案 B 用了更少的数据但得到更好的 loss,因为 25B 模型每步学到的信息量远大于 5B 模型——大模型从每个 token 中提取了更多信息。多出的算力没有被浪费在"逼近收敛"上,而是花在了"让每步更高效"上。
学习率与模型规模
最优峰值学习率随模型大小缓慢下降:$\eta^* \approx 0.03 \cdot N^{-0.074}$。更大模型需要更小学习率,但指数 -0.074 很小,实际变化幅度不大——参数增 1000x 学习率只降约一半。
最优 Batch Size
- 更好的模型(更低 loss)需要更大的 batch size
- 直觉:接近最优时梯度噪声更小,可以用更大 batch
- 临界 batch size $B_\text{crit}$ 决定了"数据并行"的收益上限
计算量估算
论文给出了非嵌入层计算量的简单估算公式:
- $C$ — 总训练计算量(FLOPs)
- $N$ — 非嵌入层参数量
- $B$ — batch size(tokens)
- $S$ — 训练步数
- 因子 6:前向 ~2N + 反向 ~4N(反向传播需要存储和计算梯度)
泛化性验证
论文还在不同数据分布上验证了 scaling laws 的泛化性:
- 在 WebText 上拟合的幂律参数,也能较好地预测在书籍、维基百科等分布上的 loss
- 不同分布的绝对 loss 值不同,但缩放趋势(幂律指数)相似
- 这说明 scaling laws 捕捉的是模型本身的缩放特性,而非数据集的特殊性质
给定模型大小和数据量,可用简单公式预测最终 loss。用小模型实验就能预测大模型性能,提前估算资源,极大降低试错成本。
给定算力,优先增大模型而非增加数据或训练步数。GPT-3 的 175B 参数、GPT-4 的更大规模——设计决策直接源于此结论。
不要训练到收敛!最优策略是训练大模型但提前停止。颠覆了"训练到收敛再调架构"的传统做法。
形状无关意味着超参数搜索只需关注总参数量,从高维降到几乎一维。
资源规划
根据目标性能反推所需 GPU 小时和电力,做出精确投资决策。
竞争壁垒
幂律意味着性能与投入单调相关——没有免费午餐,算力即实力。
数据价值
数据的幂律指数 ($0.095$) 大于模型的 ($0.076$),数据比模型更"值钱"——但大模型能更高效地利用数据。
渐进投资
幂律的凸性使前期投入边际收益更高——可用小模型验证方案,再逐步放大。
关键公式速查表
| 关系 | 公式 | 关键参数 |
|---|---|---|
| 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 LMs | 2023 | 数据受限场景(数据重复)下的缩放规律。重复 4 epoch 的数据约等效于 1 epoch 新数据的 50% |
| Emergent Abilities (Wei et al.) | 2022 | 特定能力在特定规模突然出现,不符合平滑幂律。暗示 scaling laws 可能无法捕捉所有行为 |
| RM Overoptimization | 2022 | 将 scaling laws 扩展到 RLHF 场景:reward model 过优化的.golden reward 也遵循幂律 |
| Inference Scaling | 2024+ | 推理时计算(CoT 步数、搜索深度)也能 scaling,开辟新维度 |
对当前大模型发展的意义
- DeepSeek-V3:671B 参数 + 14.8T tokens,数据/参数比 ~22x,与原始论文建议一致
- Llama 3:405B 参数用 15T+ tokens,更接近 Chinchilla 建议
- 合成数据:当互联网数据耗尽时,scaling laws 如何适应?当前核心研究问题
- 推理期缩放:OpenAI o1/o3 证明推理时计算也能 scaling——这是一个新的维度