先说结论
缩放定律揭示了 LLM 性能与模型参数量、训练数据量和计算预算之间的幂律关系,指导我们在有限算力下如何最优分配资源。
为什么我会单独记这一篇
训练一个 LLM 需要做三个关键决策:模型多大(参数量 N)、数据多少(token 数 D)、花多少算力(FLOPs C)。这三个变量相互制约——更大的模型需要更多数据,两者都需要更多算力。缩放定律回答的核心问题是:给定固定算力预算,模型应该多大、数据应该多少,才能达到最优性能?
这个问题极其重要,因为:
- 训练一个 70B 模型一次的成本以百万美元计,试错空间极小
- 错误的 N/D 配比意味着白烧了算力,性能还不如更小但配比正确的模型
- 缩放定律让我们可以在小规模上做实验,然后外推到大规模
先把核心脉络捋清楚
Kaplan Scaling Laws(Kaplan et al., 2020)
- OpenAI 早期工作
- 发现损失 L 与参数量 N 和数据量 D 之间存在幂律关系
- 关键结论:模型大小应该比数据量增长更快
- 具体而言:
N_opt ∝ C^0.73,D_opt ∝ C^0.27 - 影响:GPT-3 的设计(175B 参数但只有 300B tokens 训练数据)
Chinchilla Scaling Laws(Hoffmann et al., 2022)
- DeepMind 的工作,标题为 "Training Compute-Optimal Large Language Models"
- 修正了 Kaplan 的结论:模型大小和数据量应该等比增长
- 核心关系:
C ≈ 6ND(Transformer 的 FLOPs 近似) - 最优配比:
N_opt ∝ C^0.50D_opt ∝ C^0.50
- 经验法则:训练 token 数应约为参数量的 20 倍
- 1B 参数 → 20B tokens
- 7B 参数 → 140B tokens
- 70B 参数 → 1.4T tokens
损失函数的数学形式
L(N, D) = E + A/N^α + B/D^β
- E:不可约损失(自然语言的熵),是性能的理论下界
- A/N^α:模型容量不足导致的损失
- B/D^β:数据不足导致的损失
- 拟合参数:α ≈ 0.34, β ≈ 0.28(Chinchilla 值)
Overtraining(过度训练)
LLaMA 系列的革命性实践:
| 模型 | 参数 | Chinchilla 最优 tokens | 实际 tokens | 倍数 |
|---|---|---|---|---|
| LLaMA 1 7B | 7B | ~140B | 1T | ~7x |
| LLaMA 2 7B | 7B | ~140B | 2T | ~14x |
| LLaMA 3 8B | 8B | ~160B | 15T | ~94x |
为什么故意违反 Chinchilla 最优?
- Chinchilla 优化的是训练效率(给定算力达到最低损失)
- 但在生产中,推理成本往往远超训练成本
- 一个 7B 模型训练 2T tokens 的推理成本仅为 70B 模型的 ~1/10
- 关键洞察:更小但训练更久的模型在相同性能下推理更便宜
数据受限场景(Data-Constrained Scaling)
- Muennighoff et al. (2023) 研究了当数据量不足时如何 scaling
- 核心发现:在数据受限时,训练多个 epoch 比不重复要好,但收益递减
- 4 个 epoch 的数据大致相当于 1 个 epoch 的 2 倍数据(收益打折)
- 多语言数据可以缓解单一语言的数据瓶颈
Scaling Law 的涌现能力视角
- Wei et al. (2022) 发现某些能力在模型达到一定规模后"涌现"
- 但后续研究(Schaeffer et al., 2023)质疑:很多"涌现"可能是评估指标的人工产物
- 用连续指标替代离散指标后,性能改善通常是平滑的而非突然跳变
原理拆开看
幂律的直觉
缩放定律背后的幂律关系可以类比物理学中的相变和临界现象。核心直觉是:模型的损失可以分解为不可约部分和可约部分。可约部分随 N 和 D 的增加按幂律衰减,且 N 和 D 的贡献是可分离的(乘性分解)。
C ≈ 6ND 的推导:对于一个 Transformer 层,每个 token 的前向传播 FLOPs 约为 6N(权重乘法 + 激活计算),训练还需要反向传播(约 2 倍前向),总计约 6N FLOPs/token。对于 D 个 token,总 FLOPs ≈ 6ND。
为什么 Chinchilla 纠正了 Kaplan?
Kaplan 的实验设置有两个问题:
- 学习率调度不同:不同大小的模型用了不同的 lr schedule,引入了混淆变量
- 训练不充分:很多实验没有训练到收敛,导致大模型看起来"不需要那么多数据"
Chinchilla 统一了训练设置,并训练到收敛,得出了更准确的结论。
放到工程里怎么落
如何在实际项目中应用 Scaling Law
- 确定算力预算:C = 可用 GPU 数量 × 训练时间 × 单 GPU FLOPs
- 用
C = 6ND确定参数-数据组合:- Chinchilla 最优:
N = (C/6)^{1/2} × (β/(α+β))^{1/(α+β)}, 类似求 D - 简化:
N ≈ D/20
- Chinchilla 最优:
- 决定是否 overtrain:
- 如果推理成本主导 → 选更小模型 + 更多数据(overtrain)
- 如果训练成本主导 → 用 Chinchilla 最优
- 如果追求最强性能 → 更大模型 + 更多数据(两者都增加)
- 用小模型验证:在 1B-3B 模型上测试不同 N/D 配比,用 scaling law 外推到目标规模
计算示例
假设有 1000 张 A100(312 TFLOPS),训练 30 天:
- 总 FLOPs ≈ 1000 × 312e12 × 30 × 86400 ≈ 8.1e23 FLOPs
- Chinchilla 最优:N ≈ 13B, D ≈ 260B tokens
- 如果 overtrain 5x:N ≈ 6B, D ≈ 1.3T tokens
与相邻概念的区别
| 概念 | 区别 |
|---|---|
| 数据工程 | 数据工程关注数据质量,scaling law 关注数据数量 |
| 预训练目标 | 预训练目标决定学习信号的形式,scaling law 决定资源分配 |
| 基座与指令模型 | Scaling law 主要适用于 pretraining 阶段 |
设计时真正要权衡什么
| 取舍 | 分析 |
|---|---|
| Chinchilla 最优 vs Overtrain | 最优训练效率 vs 最优推理效率 |
| 更大模型 vs 更多数据 | 更大模型天花板更高但训练和推理都更贵 |
| 数据 epoch 数 | 1 epoch 理想但数据可能不够;多 epoch 有效但收益递减 |
| 是否相信 scaling law 的外推 | 外推到 10x 以外越来越不可靠 |
容易踩的坑
- 盲目用 Chinchilla 最优:Chinchilla 不考虑推理成本,生产场景应 overtrain
- 用 Scaling Law 外推太远:从 100M 参数外推到 100B 参数,误差极大
- 忽略数据质量:Scaling Law 假设数据质量恒定,低质量数据会打破幂律关系
- 不区分训练和推理成本:训练只发生一次,推理持续发生——全生命周期成本分析才合理
- 只看 loss 不看下游任务:Loss 下降不一定意味着所有能力都在提升
工程落地时我会怎么做
- 用 IsoFLOP 分析:在多个 N-D 组合上实际训练小模型,拟合自己的 scaling law
- 生产模型倾向 overtrain:7B 模型训练 2T+ tokens 是当前最佳实践
- Scaling Law 是指南针不是地图:用它做初步规划,用实验验证
- 追踪 loss vs compute 的曲线:确保训练在预期的 scaling 轨道上
- 注意 Chinchilla 的前提条件:数据质量足够好、模型架构一致、训练充分
如果要对外讲,可以怎么概括
Scaling Law 揭示了 LLM 性能与参数量、数据量和算力之间的幂律关系。Kaplan 最早发现这个规律但低估了数据的重要性。Chinchilla(DeepMind 2022)纠正了这一点:模型和数据应该等比增长,约 20 tokens/参数。但 LLaMA 系列证明了一个重要的实践洞见:故意 overtrain 小模型(训练远超 Chinchilla 最优的 token 数)可以在保持性能的同时大幅降低推理成本。关键 trade-off 是训练效率 vs 推理效率。
最后记几条
- Chinchilla 法则:
C ≈ 6ND,最优约 20 tokens/参数 - LLaMA 革命:overtrain 小模型以换取推理效率,LLaMA 3 8B 训练了 15T tokens
- 损失分解:
L(N,D) = E + A/N^α + B/D^β,不可约损失是理论下界 - 数据受限时多 epoch 有效但递减:4 epoch ≈ 2x 独特数据
- Scaling Law 用于规划,不用于替代实验——外推有风险
延伸阅读
参考资料
- Kaplan et al., "Scaling Laws for Neural Language Models" (2020)
- Hoffmann et al., "Training Compute-Optimal Large Language Models" (Chinchilla, 2022)
- Touvron et al., "LLaMA: Open and Efficient Foundation Language Models" (2023)
- Touvron et al., "Llama 3: Open Foundation Models" (2024)
- Muennighoff et al., "Scaling Data-Constrained Language Models" (NeurIPS 2023)
- Wei et al., "Emergent Abilities of Large Language Models" (2022)
- Schaeffer et al., "Are Emergent Abilities of Large Language Models a Mirage?" (2023)
---