Scaling Law 量化账:损失、算力与数据的三角关系
"大力出奇迹"是大模型行业的直觉,但"大力"该怎么分配——多堆参数还是多喂数据?这就是 Scaling Law 回答的问题。本文把损失、算力、数据三者的定量关系讲透,衔接 预训练算力规划。
1. 标准 Scaling Law:损失 = 算力 + 数据 + 不可降的极限
经验上,模型损失 L 可以写成三部分:
- N:参数量,D:训练数据量(token);
- A/N^α:模型太小导致的损失(随 N 幂律下降);
- B/D^β:数据不足导致的损失(随 D 幂律下降);
- E:不可约损失(数据本身的熵/噪声,加再多的算力也降不到 0)。
判断:Scaling Law 不是玄学,是"损失 = 三个幂律之和"——它直接告诉我们:单边堆参数不划算,两头都要喂。
2. 训练算力下限:6ND
一次训练(不考虑重复查看数据)的总算力下限:
- 前向 2ND + 反向 4ND(每 token 每参数约 6 FLOPs);
- 这是理论下限,实际(激活、重算、通信)还要乘 1.2-2 倍;
- 它把"参数-数据-算力"三个变量压缩成一个方程:给定算力 C,参数与数据不能同时贪。
3. Kaplan vs Chinchilla:最优配比之争
| 结论 | 主张 | 配比 |
|---|---|---|
| Kaplan 定律(2020) | 算力有限时多堆参数更划算 | 数据增长慢于参数 |
| Chinchilla 定律(2022) | 参数与数据同步增长,约 20 token/参数 | 最优:D ≈ 20N |
工程含义:按 Chinchilla,70B 模型最优预训练数据量 ≈ 1.4T token;数据不足就硬上大参数,浪费算力。今天的大模型大多按"Chinchilla 之上"(过训练)配置,把数据价值榨干。
4. Inference-time Scaling:用算力换质量的新账
标准 Scaling Law 只管训练时的算力;2024 年后,"思考模型"(RL + 长思维链)把算力也搬进了推理时:
- 推理时算力花在哪:更多采样、更长思维链、自我纠错(见 输出采样账);
- 关键权衡:同样一笔钱,花在训练更大的模型,还是推理时多想一会儿?——后者迭代快、成本可控,是中小团队的现实路径。
5. 可复算 Python
python
def chinchilla_opt(n_params_b):
"""Chinchilla 最优数据量(token)与训练算力下限(FLOPs)"""
d_opt = 20 * n_params_b * 1e9 # 20 tokens/param
c_min = 6 * n_params_b * 1e9 * d_opt # 6ND
return f"{d_opt/1e12:.1f}T token", f"{c_min/1e24:.1f}E FLOPs"
chinchilla_opt(70)
# (1.4T token, 5.9E24 FLOPs ≈ 5.9 ZFLOPs)6. 交付清单
- 定模型规模前先算 Chinchilla 配比:数据够不够 20 token/参数;
- 用 6ND 估训练算力下限,再乘 1.2-2 做实际预算(衔接 算力规划);
- 数据富余时允许"过训练"(>20 token/参数),数据稀缺时缩模型别硬撑;
- 推理侧评估 Inference-time scaling 与"换更大模型"的成本收益比再决策;
- 每次实验记录 (N, D, C, loss),验证自己的 Scaling Law 曲线(见 验收基线)。
本文为本站整理思考后撰写,用于知识库学习交流;公式与算例为本站自行推导整理,具体版本与实测数据以现场为准。