CS336 · 第 9 课

Scaling Laws

给定固定计算预算,应该训练多大的模型、用多少数据?这不是直觉问题,是可量化的科学问题。这一课讲 Kaplan et al. 2020 和 Hoffmann et al. 2022 的 scaling laws,以及它们如何改变了大模型训练的范式。

授课:Tatsu Hashimoto 预计用时:80 分钟 难度:中等

Spring 2026 官方来源:Lecture 9 PDF · 课程日程

本页是中文学习导读;讲次主题、教师与材料版本以 Stanford 官方页面和讲义为准。

本讲问题:训练预算固定时,模型参数、数据量和计算量应该如何分配?Scaling law 的作用不是保证未来,而是把有限试验转成可检验的资源决策。

30 秒知识地图

经验 loss 曲线 → 参数 / 数据 / compute 幂律 → Chinchilla compute-optimal 配比 → 拟合与外推 → 用不确定性约束训练规模决策。

本课问题与 prerequisite refresher

Scaling law 不是自然定律,而是指定 model family、data mixture、optimizer 与训练区间上的经验模型。先复习 log:若 \(y=ax^{-\alpha}\),则 \(\log y=\log a-\alpha\log x\),log-log 图上的斜率才对应 exponent。

把预算与观测分开

choice: N parameters, D processed tokens, recipe
        ↓ approximate compute C ≈ 6ND
training runs → observed validation losses
        ↓ fit empirical function + uncertainty
prediction inside range / extrapolation outside range
        ↓ decision under compute, time, memory, inference constraints

curve fit ≠ causal explanation ≠ guaranteed capability

同一 toy compute budget

忽略常数,令 \(ND=10^6\)。可选 \(N=10^3,D=10^3\) 或 \(N=10^4,D=10^2\)。两者一阶训练 compute 相同,却可能分别受 model capacity 与 data scarcity 限制。IsoFLOP 实验是在多个预算上各训练多组 \((N,D)\),找每条预算曲线的最低点,再拟合最优 \(N(C),D(C)\);不是从 6ND 单独推导出 Chinchilla 比例。

反例与结论类型

Napkin math\(C\approx6ND\);Empirical / implementation-specific拟合 exponent 与“约 20 tokens/parameter”都依赖实验范围。若数据质量改变、重复多 epoch、架构或目标变了,同一比例可能不再最优。Loss 平滑下降也不保证某项离散能力在相同比例上变化。


为什么需要 Scaling Laws?

核心问题

问题:给定 100 万美元的训练预算,应该训练多大的模型、用多少数据?

在没有 scaling law 之前,这些决策主要靠直觉和试错。有了 scaling law,我们可以在小模型上做实验,预测大模型的最优配置。

历史背景

时间事件影响
2020 年 1 月Kaplan et al.系统拟合语言模型的参数、数据与计算幂律
2020 年 5 月GPT-3以 175B 参数展示大规模自回归预训练与 in-context learning
2022 年 3 月Hoffmann et al. (Chinchilla)重新估计固定计算预算下的模型/数据分配
2023 年 2 月LLaMA进一步强调较小模型配合更多训练 token 的推理成本优势

Kaplan et al. 2020:幂律关系

核心发现

语言模型的 loss 与模型大小、数据量、计算量之间存在幂律关系:

# 模型大小 N 的幂律
L(N) = (N_c / N)^α_N

# 数据量 D 的幂律
L(D) = (D_c / D)^α_D

# 其中:
# N_c, D_c 是常数
# α_N ≈ 0.076, α_D ≈ 0.095 (Kaplan et al. 的值)

直觉理解

Isoflop 曲线

给定固定计算预算 C(FLOPs),最优的 N 和 D 满足:

# 计算量公式
C ≈ 6 × N × D

# Kaplan et al. 的发现:
N_opt ∝ C^0.73
D_opt ∝ C^0.27

# 含义: 计算预算增加时,应该主要增大模型,少量增加数据

GPT-3 的路线

GPT-3 175B 只用了 ~300B tokens(约 2× 模型参数数),远低于 Chinchilla 推荐的 20×。

Kaplan et al. 的compute-optimal 拟合给出 N_opt ∝ C^0.73、D_opt ∝ C^0.27,因而更倾向把新增计算投入模型大小。注意这不能解释成 α_N > α_D:页面上列出的单变量拟合反而是 0.076 < 0.095。

为何后来估计不同:Hoffmann et al. 指出训练曲线采样、学习率 schedule 与固定计算预算下取最优点的方法会显著影响拟合。不能把差异只归结为“Kaplan 的大模型没训完”,更不能概括为 Kaplan 证明了“模型越大越好”。


Chinchilla (Hoffmann et al. 2022)

核心发现

DeepMind 使用三种方法重新估计固定计算预算下的最优模型大小与 token 数,包括 training-curve envelope、IsoFLOPs 和联合 loss 拟合:

# Chinchilla 的 scaling law
N_opt ∝ C^0.50
D_opt ∝ C^0.50

# 常用经验速记(来自 70B / 1.4T 的训练点):
D_opt ≈ 20 × N_opt

# 含义: 在该论文的范围和训练 recipe 下,模型与数据随 compute 近似等比例增长。
# “20 tokens/parameter”不是跨架构、数据与目标都不变的物理常数。

Chinchilla vs Gopher

模型参数量训练 tokens比例Loss
Gopher280B300B约 1.1:1基准
Chinchilla70B1.4T1:20更低!

Chinchilla 以约 1/4 的参数量和约 4.7× 的训练 token,获得更低的 validation loss,并在论文报告的大范围下游评测中整体优于 Gopher。“20×”是 token/parameter 比例,不是相对 Gopher 的数据倍数。

为什么 Kaplan 和 Chinchilla 结论不同?

Kaplan 与 Hoffmann 的实验网格、训练 schedule、参数计数口径和
compute-optimal 点提取方法不同。

Hoffmann et al. 使用三种方法交叉检查:
1. 对多条 training curves 取固定 compute 下的最低 loss
2. IsoFLOPs:每个 compute budget 扫描多个模型大小
3. 联合拟合 L(N, D)

后续数据取证还指出原论文 method 3 的拟合实现存在问题;
因此应报告拟合方法和不确定性,而不是把某组指数当作最终真理。

Chinchilla 公式

更精确的 loss 预测公式:

L(N, D) = E + A/N^α + B/D^β

其中:
E ≈ 1.69 (该数据、tokenizer 与模型族拟合出的渐近 loss floor)
A ≈ 406.4, α ≈ 0.34
B ≈ 410.7, β ≈ 0.28

# 给定计算 C = 6ND:
N_opt = G × (C/6)^b
D_opt = G' × (C/6)^(1-b)

其中 G = (αA / βB)^(1/(α+β)), b = α/(α+β) ≈ 0.55

如何拟合 Scaling Law

实验设计

# Step 1: 选择一系列模型大小
model_sizes = [70M, 130M, 350M, 700M, 1B, 2B, 4B, 8B, 16B]

# Step 2: 对每个模型,选择多个训练步数
# (不同步数 = 不同数据量 D)

# Step 3: 训练并记录 loss
# 得到 (N, D, L) 三元组列表

# Step 4: 拟合 L(N, D) = E + A/N^α + B/D^β
# 用 L-BFGS 或类似优化器

拟合的注意事项

常见陷阱:

Isoflop 曲线绘制

# 固定计算 C,变化 N 和 D = C/(6N)

C = 10^18  # 1 exaFLOP
for N in [100M, 300M, 1B, 3B, 10B]:
    D = C / (6 * N)
    # 训练并记录 loss
    # 找到该 C 下最优的 N

# 对多个 C 重复 → 得到 isoflop 曲线

Scaling Laws 的影响

对模型设计的意义

Chinchilla 比例: D = 20 × N
这意味着:
- 7B 模型 → 140B tokens
- 70B 模型 → 1.4T tokens
- 700B 模型 → 14T tokens

数据需求增长极快!
这也是为什么数据成为瓶颈

对训练策略的意义

对推理的意义

Chinchilla 对推理的影响:
- 70B 模型 (Chinchilla) vs 175B 模型 (GPT-3)
- 70B 推理更快(小模型)
- 但训练成本更高(更多数据)

训练成本 vs 推理成本的权衡:
如果推理是主要成本 → 训练更多数据的小模型
如果训练是主要成本 → 训练更少数据的大模型


争议与局限

批评 1:Chinchilla 比例可能不适用于更大尺度

Chinchilla 的拟合实验主要覆盖约 70M–16B 参数,再据此外推并训练 70B 模型。继续外推到数百 B 或 1T+ 时,不确定性会增大。

Llama 2/3 等模型使用了高于 20 tokens/parameter 的训练量,但这体现的是训练/推理成本、数据供给与目标能力的综合选择,不能单独证明新的通用最优比例。

批评 2:只优化 loss 不够

Chinchilla 优化的是 next-token prediction loss。但用户关心的是:

批评 3:数据质量被忽略

Chinchilla: D = 20 × N
假设所有 token 等权

实际上不同来源的 token 对目标 loss 与下游能力贡献不同;
价值倍数必须由受控 data-mixing / filtering 实验估计,不能固定写成 10×。

这也是为什么数据过滤如此重要

批评 4:架构的影响

Scaling law 是在特定架构(标准 Transformer)上拟合的。

MoE、SSM、线性 attention 的 scaling 行为可能不同。

批评 5:batch size 的影响

Batch size 会同时影响优化步数、critical batch、学习率 schedule 与硬件效率。
Chinchilla 的结论依赖其训练 recipe;把 batch 或 schedule 换掉后,应重新拟合,
不能机械套用 linear scaling rule。


Beyond Chinchilla

Fine-tune Scaling Laws

SFT/RLHF 阶段的 scaling 行为和 pre-training 不同:

Test-time Compute Scaling

OpenAI o1/o3 的新范式——推理时投入更多计算:

# 传统: 固定模型,单次前向
output = input → model → answer

# Test-time compute: 推理时多步思考
for step in range(reasoning_steps):
    thought = model.generate_thought(context)
    context += thought
    if should_stop(thought):
        break
answer = model.generate_answer(context)

Data-Centric Scaling

不再追求更多数据,而是追求更好的数据:


实践指南

如何为你的模型找最优配置

# Step 1: 确定计算预算
C = num_gpus × time_per_gpu × flops_per_gpu × MFU

# Step 2: 用 20 tokens/parameter 作为粗略起点,而不是最终答案
N_opt ≈ (C / 6 / 20)^(1/2)  # 假设 D = 20N
D_opt = 20 × N_opt

# Step 3: 在小模型上验证
# 设计覆盖多个 N、D、compute budget 的实验网格,并保持 tokenizer、数据、
# optimizer 与 schedule 口径一致;实验数量由拟合不确定性决定

# Step 4: 外推到大模型
# 预测最优 N 和 D

# Step 5: 训练目标模型,监控 loss 与小规模外推偏差
# 偏差可能来自数据、优化、实现、架构或拟合失效,不能自动归因于“数据不够”

常见模型的实际比例

模型参数量训练 tokenstokens/parameter如何解读
GPT-3 175B175B300B约 1.7远低于 20 的经验点
PaLM 540B540B780B约 1.4远低于 20 的经验点
Chinchilla 70B70B1.4T20论文训练点
Llama 2 70B70B2T约 28.6高于 20,兼顾更低推理成本
Llama 3 405B405B15.6T约 38.5高于 20;不是对通用最优比例的单独证明

知识检查

问题 1:Chinchilla 论文的核心结论是什么?

问题 2:为什么 Kaplan et al. 和 Chinchilla 的结论不同?

问题 3:Scaling law 的幂律关系意味着什么?

问题 4:Scaling law 的实际用途是什么?

问题 5:Chinchilla 比例的局限是什么?


Concept Check · 6ND 能否推出最优比例

固定 \(ND=10^6\),为什么不能仅凭这个约束断言 \(N=D=1000\) 最优?

答案:6ND 只给等计算预算组合;还需要经验 loss surface 或 IsoFLOP runs 比较 model-limited 与 data-limited 区域。

若认为乘积固定就应两数相等,你把对称的代数约束误当成了对称的学习曲线。

你现在应该能够解释

通往第 10 课

训练 compute-optimal 并不等于部署最优:增大 \(N\) 会增加每个 decode step 的权重流量,增大 context 会增加 KV。下一课把 inference 成本加入决策。

如果只能记住 5 件事

幂律关系

Loss ∝ N^{-α},对数尺度下线性

Chinchilla 比例

N 与 D 随 compute 近似等比例增长;20 tokens/parameter 是经验点

Isoflop

固定预算下找最优 (N, D)

局限

只优化 loss,忽略数据质量


延伸阅读

Reference · 延伸阅读与一手资料