什么是 Scaling Law?Chinchilla 给出了什么结论?
简化版
Scaling Law 是在特定模型家族、数据与训练区间内观察到的经验关系:验证损失常随参数量、训练 Token 和计算量呈近似幂律改善。Chinchilla 的核心结论是,在其固定计算实验设定下,参数量与训练 Token 应更均衡地增长;“约 20 Token/参数”是该研究拟合出的量级经验,不是跨架构永久常数。70B Chinchilla 用约 1.4T Token,在多项评测上优于更大但训练 Token 更少的 280B Gopher,说明只堆参数可能不是计算最优。
详细版
Scaling Law 说了什么
Kaplan 等人 2020 发现,语言模型的损失 L 与 N、D、C 之间存在幂律关系(在很大范围内平滑、可外推):
L(N) ≈ (N_c / N)^α_N # 损失随参数量幂律下降
L(D) ≈ (D_c / D)^α_D # 损失随数据量幂律下降
这使团队可以用一组小规模实验拟合曲线,估计更大训练的损失与资源范围;外推越远、不同时改变数据质量或架构时,不确定性越大。
Chinchilla 的修正
Kaplan 的工作倾向于「优先加参数」,导致业界一窝蜂造大模型但喂的数据不够。Chinchilla 重新做实验,结论是:
- 给定算力 C(约等于
C ≈ 6ND),最优配置是让 N 和 D 同比例放大。 - 经验比例约为 D ≈ 20 × N(每参数约 20 token)。
- 实证:Chinchilla(70B, 1.4T Token)在报告的多项任务上优于 Gopher(280B, 300B Token);较小参数量也降低了相同部署精度下的模型存储与每 Token 计算量。
对比
| 模型 | 参数量 | 训练 token | token/参数 | 是否算力最优 |
|---|---|---|---|---|
| GPT-3 | 175B | 300B | ~1.7 | 数据严重不足 |
| Gopher | 280B | 300B | ~1.1 | 数据严重不足 |
| Chinchilla | 70B | 1.4T | ~20 | 接近最优 |
| 部署导向的小模型 | 依方案而定 | 可远超 20×N | 超过训练计算最优点 | 用更多一次性训练换更低长期推理成本 |
完整版教学
一、Scaling Law 的工程价值与边界
Scaling Law 把参数、数据、计算与验证损失之间的关系写成可拟合的经验曲线。它不表示架构、优化器和数据质量不重要,而是让团队在训练配方大体一致时,对规模收益做数量级规划。
这带来两个深远影响:
- 可预测性:先跑一系列模型与 Token 预算,拟合“花 X 计算量大致达到什么 loss”,为容量规划提供区间估计。
- 边界可见:若新架构、Tokenizer、数据质量或目标任务发生变化,旧曲线可能失效;任务准确率也不必像平均 loss 一样平滑。
记忆钩子:Scaling Law 提供的是“同一实验族中的经验外推”,不是任何规模、任何能力都保证按同一条曲线增长。
二、三个变量:N、D、C 的关系
- N(参数量):模型容量,决定能记多少、拟合多复杂的函数。
- D(数据量):训练 token 数,决定见过多少、学到多少。
- C(算力):训练总计算量,近似
C ≈ 6ND(6 倍于「参数 × token」的 FLOPs)。
三者互相制约:算力有限时,你只能在「更大模型 + 更少数据」和「更小模型 + 更多数据」之间权衡。Scaling Law 要回答的核心问题就是:给定算力预算 C,N 和 D 各分多少最划算? 这正是 Chinchilla 的贡献。
三、Kaplan vs Chinchilla:一次重要的观点修正
Kaplan(2020) 的实验暗示:算力增加时,应该把大部分投到参数量上,数据量增长可以慢一些。于是 GPT-3(175B)、Gopher(280B)等都造得很大,但只喂了约 300B token。
Chinchilla(2022) 重新、更严谨地扫描了 N 和 D 的组合,发现 Kaplan 的实验设置(如学习率调度)有偏差,真实的最优是:N 和 D 应当同比例增长——参数翻倍,数据也该翻倍。按此,GPT-3、Gopher 都是「参数过剩、数据饥饿」,它们的算力其实被浪费了:同样的算力,换成小一点但训得更充分的模型会更强。
Chinchilla(70B)用 1.4T Token 训练,在论文报告的多项基准上超过了参数约四倍的 Gopher。这提供了“更小模型 + 更多训练 Token”可能在固定计算下更优的强证据,但具体最优比例仍依实验设定和目标而变。
四、“每参数 20 token”怎么用
Chinchilla 的经验法则 D ≈ 20 × N 是「算力最优」的近似:如果你有固定算力,想让训练损失最低,就按这个比例分配。例如:
- 想训一个 10B 模型的算力最优版,应喂约 200B token;
- 有 1.4T token,算力最优的模型约 70B。
但要注意:「算力最优」是”训练”最优,不是”部署”最优。 Chinchilla 只考虑了训练成本,没算推理成本。而模型一旦部署,要服务海量请求,推理成本才是长期大头。
五、为什么部署导向方案会训练更久的小模型
一些部署导向模型会让较小参数模型训练远超 Chinchilla 量级经验。这对“只计算一次训练、让 loss 最低”的目标可能不是最优,却可能降低长期推理成本:
- Chinchilla 最优追求的是「给定训练算力,损失最低」。
- 但工业界要的是「给定目标能力,部署最便宜」。
- 同样能力下,小模型推理更快、更省显存、更好部署。为此在训练时多喂数据(多花训练算力)把小模型「训到底」,是完全值得的——训练是一次性成本,推理是持续成本。
因此选型应比较训练成本加预期生命周期推理成本,而不是机械追求 20 Token/参数。超过该点也不保证能力持续等比例提升,仍受数据重复、质量与模型容量限制。
六、用 Token 预算检查是否欠训练
按常见的 Chinchilla 量级经验,每个参数约配 20 个训练 token。7B 模型对应约 140B token,70B 对应约 1.4T token;若只有 200B token 却训练 70B 模型,计算预算很可能过多花在参数、数据不足,较小模型训练更充分可能更优。
| 参数量 | 20 token/参数的量级 | 固定数据下的风险 |
|---|---|---|
| 7B | 140B token | 相对容易训足 |
| 13B | 260B token | 需更多高质数据 |
| 70B | 1.4T token | 数据不足时欠训练 |
rough token budget = parameter_count * 20
7B -> 140B tokens
70B -> 1.4T tokens
这只是特定实验条件下的经验比例,不是永久常数。推理成本、数据质量、重复训练、多模态比例与目标部署寿命都会改变最优点;工程决策应拟合自己的小规模实验曲线,再外推而不是机械套 20。
七、常见误区与追问
- 误区:Scaling Law 说模型越大越好。 更准确是「在数据/算力配比合理时,规模越大越好」;参数大但数据不足反而浪费算力(Chinchilla 的教训)。
- 误区:Chinchilla 说小模型更好。 它说的是给定算力下,N 与 D 要同比例增长,别把算力全砸参数上。
- 追问:C≈6ND 怎么来的? 前向约 2ND、反向约 4ND,合计每 token 每参数约 6 FLOPs。
- 追问:为什么 GPT-3 被认为训练不足? 175B 参数只配 300B token(~1.7 token/参数),远低于最优的 ~20。
- 追问:为什么有些小模型远超 20 Token/参数? 可能用更多一次性训练换更低推理成本;训练计算最优不等于全生命周期成本最优。
- 追问:Scaling Law 会一直成立吗? 幂律在很大范围内稳健,但存在数据枯竭、边际收益递减等隐忧,是否有极限仍是开放问题。
八、加强记忆
记住三层:Scaling Law 是在受控实验族中拟合的幂律趋势;Chinchilla 说明固定计算下 N 与 D 要均衡增长,并在其设定中得到约 20 Token/参数的量级;全生命周期部署目标可能选择更小模型和更多训练 Token。C≈6ND 适合密集 Transformer 的数量级计算,但 20 不是永久常数,外推也要带不确定性。70B/1.4T 对 280B/300B 的比较说明“参数最大”不等于“计算最优”,而不是证明所有任务都应套同一比例。