缩放定律入门
从 Bit 到 AGI · 第五章:Transformer · 参数量、数据与算力如何预测 loss
把 BERT-base(110M)做到 GPT-3(175B),不是简单「把 768 改成 12288」——中间涉及参数量、训练 token 数、算力预算的协调。Scaling Laws(缩放定律)说:在一定范围内,语言模型 loss 随这些量平滑地幂律下降,可用来规划「花多少钱能训多大模型」。
直觉:搅拌咖啡的边际效应
糖(参数)、水温(算力)、搅拌时间(数据)共同决定甜度(loss)。加同样多的糖,杯越大边际越薄;定律告诉你三者的最佳配比,避免「模型 70B 却只训了 1B token」这种浪费。
定义(Kaplan et al., 2020 简化)
验证 loss 与模型参数 、训练 token 数 近似:
量级(具体拟合值随实验变); 为不可约误差。
Chinchilla 定律(Hoffmann et al., 2022):给定算力预算 (粗算),最优应同时增大 与 ,且约
(token 数约为参数量的 ~20 倍,而非 GPT-3 时代偏小的数据量)。
例子
例 1:参数量与 FLOPs 粗算
训练一次前向+反向约 FLOPs( 非 embedding 参数, 总 token)。
| 模型 | 训练 FLOPs(约) | ||
|---|---|---|---|
| BERT-base | wiki+book | ||
| GPT-3 175B | |||
| LLaMA-7B(Chinchilla 风格) |
例 2:宽度与深度
固定 ( 层,)。BERT-base: → M(trunk)。若只把 翻倍到 1536、 不变, 约 ×4;FLOPs/token 也约 ×4。
例 3:loss 随参数(示意幂律)
若 ,参数 ×10,loss 约降 倍——收益递减但可预测。
自己拖一下
「收益递减」和「」在正文里是两个孤立的数字,其实它们是同一条曲线上的斜率和极小点。固定一笔算力预算,拖分配比 ,看 loss 曲线的谷底:
D/N≈20,这就是 Chinchilla 最优。同样的算力,这个配比 loss 最低。
横轴是对数的 D/N 比,曲线是同一笔算力预算下 loss 怎么随分配变化。它有一个谷底——那就是 Chinchilla 定律:给定算力,把 token 数配到参数量的 ~20 倍时 loss 最低。GPT-3 时代大家把预算过度砸在参数上(D/N≈2), 留在了谷底左边;Chinchilla 用同样的算力、更小的模型、更多的数据,反而更好。
为什么 LLaMA 故意偏右(D/N≈140)?因为训练是一次性的,推理是天天的—— 多喂数据把模型练小,训练时略亏,但换来每次推理都便宜。最优不总是训练最优,要看你为谁优化。loss 数值经过教学校准(α=β,最优比恒为 20),只有相对意义。
谷底就在 ——这就是 Chinchilla 定律。GPT-3 时代把预算过度砸在参数上(),留在了谷底左边;Chinchilla 用同样的算力、更小的模型、更多的数据,反而更好。而 LLaMA 故意偏到谷底右边():训练时略亏,但换来一个推理便宜的小模型——最优不总是训练最优,要看你为谁优化。
import math
def chinchilla_tokens(params: int, ratio: int = 20) -> int:
"""推荐训练 token 数 ≈ ratio × 参数量"""
return ratio * params
print(chinchilla_tokens(110_000_000)) # 2.2B tokens for BERT-scale
print(chinchilla_tokens(7_000_000_000)) # 140B tokens for 7B model量化
Transformer 参数主项(忽略 embedding):
BERT-base:M(与实测 trunk 同量级)。
| 预算决策 | Scaling Laws 作用 |
|---|---|
| 买多少 GPU·天 | 估算 |
| 选 7B 还是 13B | 比较同算力下 |
| 数据是否够 | Chinchilla 检查 比 |
定律在分布内有效;架构改动(MoE、新激活)、数据质量突变、过拟合小数据会偏离幂律。它是规划工具,不是物理常数。
常见误区
- 参数越多越好:需匹配 ;小数据大模型会过拟合,验证 loss 反升。
- Scaling Laws 只适用于 GPT:原理对 Transformer LM 普遍;BERT 预训练也呈类似趋势,但任务 metric 非单一 loss。
- FLOPs = 实际 wall-clock:内存带宽、通信、实现效率使常数项巨大;定律管趋势,不管绝对秒数。
小结
Scaling Laws:loss 随参数量 、数据量 幂律下降;Chinchilla 建议 。BERT-base 110M 是小端;GPT-3 175B 是大端,同一 Transformer 骨架。下一篇:从 RNN 瓶颈回顾 Transformer 为何取代序列递推。