Scaling Laws
Scaling Laws
给定固定的算力预算,钱该怎么分配——买更大的模型,还是喂更多数据?Scaling Laws 就是回答这个问题的一套实验性定律。
基本形式:Power Law
在 log-log 图上,loss 和数据量 D、模型大小 N 各自呈线性关系:
Loss ∝ N^(-α) 固定数据,扩大模型
Loss ∝ D^(-β) 固定模型,增加数据
这叫 power law(幂律)。理论直觉来自均值估计:E[|μ̂-μ|²] = σ²/n,误差以 1/n 速率衰减。更一般地,高维空间中非参数学习的误差 ∝ n^(-1/d),幂指数 α 和数据的**内在维度(intrinsic dimensionality)**相关。
这个关系跨越多个数量级仍成立——从几百万参数到几百亿参数,曲线不断掉。
Kaplan 2020:优先扩大模型
Kaplan et al. 首次系统研究 LLM 的联合 scaling,发现固定计算量 C 时,应该优先扩大模型,数据可以少。GPT-3(175B 参数,300B token)就是这个思路:每个参数只喂了约 2 个 token。
warning: Kaplan 实验的缺陷 Kaplan 比较不同配比时,没有把每个配置都训到收敛。大模型学得快,在有限步数内看起来更好,但这只是训练速率差异,不是最终质量的差异。
Chinchilla 2022:等比例扩大
Hoffmann et al. 重新做了更严格的实验,固定计算量、扫描不同的 (N, D) 组合,找真正的 Pareto 最优点。三种拟合方法:
- Method 1(下包络线):不同 FLOP 预算的训练曲线,取各自最低点,连成 power law
- Method 2(IsoFLOP grid):固定 FLOP,扫描参数量,取最优
- Method 3(联合拟合):全网格最小二乘——后来发现有缺陷(Besiroglu et al. 2024 数据 forensics 证明)
核心结论:模型大小和训练数据量应该等比例扩大,最优配比约 20 tokens/param。
GPT-3 按此标准是严重欠训练的:模型太大,数据太少。
联合 Scaling Law
Rosenfeld 和 Kaplan 各自给出了联合形式,把 N 和 D 的效果合并:
L(N, D) = A/N^α + B/D^β + L_∞
其中 L_∞ 是语言本身的不可降低下限——无论模型多大、数据多少,都消不掉。这意味着小模型无论如何都无法完全追上大模型的理论上限。
Train-optimal ≠ Deployment-optimal
warning: 反直觉 Chinchilla 的最优解是针对训练成本。如果你要把模型部署给大量用户,推理成本远超训练成本,最优策略完全不同。
总成本 = 训练成本(一次性)+ 推理成本 × 查询次数 Q
推理成本正比于 N,所以当 Q 很大时,应该用更小的模型、更多数据,把模型压小哪怕多花训练成本——因为训练只付一次,推理成本要付 Q 遍。
实际 tokens/param 比的演变清楚地反映了这一迁移:
| 模型 | tokens/param | 趋势 |
|---|---|---|
| GPT-3 | 2× | 极度欠训 |
| Chinchilla | 20× | training-optimal |
| LLaMA 65B | 22× | 开始向右移 |
| Llama 2 70B | 29× | — |
| Mistral 7B | 110× | inference-optimal 方向 |
| Llama 3 70B | 215× | 当前主流 |
tip: 关键结论 Llama 3 的 8B 模型在许多 benchmark 上能打过早期 GPT-3.5(175B)——后者是欠训的大模型,前者是充分训练的小模型,推理成本相差 20 倍以上。
小模型有内在的质量上限(L_∞ 更高),所以 inference-optimal 的逻辑不是"小模型追上大模型",而是:在可接受的质量门槛内,找最小的模型,把它训到门槛。
数据重复的代价
Chinchilla 的 20 tokens/param 假设数据不重复。但顶级模型训练量已经突破 36T token,互联网高质量文本存在上限。
实验发现重复数据的边际价值快速衰减。定义等效数据量:
D_effective = D_unique × f(Rd) 其中 Rd = 重复次数
重复一次价值还有,重复十次基本无效。实践意义:数据合成(让大模型生成训练数据)是突破真实数据上限的主要手段,而不是反复重放同一份数据。数据的组成(质量和来源分布)影响 loss 曲线的截距,但不改变斜率(幂指数 α 不变)。
Critical Batch Size
Batch size 也有一个最优值。Kaplan 发现 critical batch size(临界批大小)满足:
B_crit ∝ 1 / Loss
loss 越低(模型训得越好),最优 batch 越大。直觉:训练后期随机梯度噪声更大,需要更多样本才能估出可靠的梯度方向。
工程含义:训练初期用小 batch 快速迭代,后期换大 batch 更稳定。全程固定 batch size 不是最优的。随着模型规模和计算量增长,最优 batch 会不断增大,对数据并行(data parallelism)扩展是好消息。
超参数的 Scaling
Kaplan 的另一个发现:某些超参数(架构、优化器选择、层宽/层深比例)对大模型的效果,可以通过小模型实验外推来预测,从而避免在大模型上反复试。
具体做法:train 几个小模型 → 建立 scaling law → 根据预测选最优超参数。
实验结论(Lecture 9 Slide 28-33):
- Transformer 比 LSTM 在所有规模下都更高效,差距可通过小模型预测
- 层宽/层深比例(aspect ratio)对性能影响相对稳定,不随规模变化
- 1 vs 2 层差异巨大,10 层以上收益递减
- Embedding 层参数的 scaling 行为和其他层不同,不能一概而论
下游任务(benchmark)的 scaling 比 pretraining loss 的 scaling 更难预测,存在不可预测的 Emergence 现象。
相关来源
- cs336-lecture9-scaling-basics
- cs336-lecture11-scaling-details