第 19 · 扩展 · 9 min
更大的模型总是更好吗?
Kaplan 与 Chinchilla 的扩展法则。为什么 GPT-3 训练不足,以及每个参数 20 个 token 的最优比。
一种误导性的直觉
多年来,AI 行业一直靠着一个简单的信念在运转:模型大一倍,效果更好。GPT-2(15 亿参数)被 GPT-3(1750 亿)超越。PaLM、Megatron、Gopher——比拼参数的军备竞赛似乎没有尽头。
然后,2022 年,DeepMind 的一个团队发表了一篇改变了一切的论文。他们的论点是:那个时代的大模型严重训练不足。不是太小——而是数据上吃得不够饱。
证明这一论点的模型叫 Chinchilla。
Kaplan 定律:第一种表述
2020 年,OpenAI 发表了 Jared Kaplan 等人的一篇论文——《Scaling Laws for Neural Language Models》——提出了一个引人注目的发现。在数十个不同规模的模型上,验证损失遵循一个简单的幂律:
L ≈ L∞ + (C₀ / C)^α
公式解读:
- C —— 训练投入的总算力(以 FLOPs 计)。
- L —— 最终的验证损失。
- L∞ —— 不可约损失:即使算力无限,也无法低于这个下限。它是人类语言的天然熵——下一个词总有一部分是不可预测的。
- C₀ —— 一个依赖于架构的归一化常数。
- α ≈ 0.05 —— 幂律指数。
说人话:把算力翻倍,损失会以一个可预测的量减少。这条规律在 7 个数量级上都惊人地稳健。
Kaplan 由此得出一个会指导整个行业两年的结论:给定一个算力预算,把大部分分给模型大小,给数据分一点点就好。
OpenAI 在 GPT-3 上正是这么做的:1750 亿参数,但"只有"3000 亿训练 Token。
Chinchilla 把桌子掀了
2022 年,Hoffmann 等人(DeepMind)用不同的方法重做了实验。他们不是固定模型大小再变化算力,而是在恒定算力下系统性地探索 (N, D) 平面。
他们的结论与 Kaplan 直接矛盾:N 和 D 应该以同样的速度一起增长。在固定算力预算下要让损失最小,就该用一个规模适中的模型,在大量数据上训练。
更精确地说,最优比例是:
D ≈ 20 × N
对于一个 700 亿参数的模型,最优的数据量大约是 1.4 万亿 Token。GPT-3(1750 亿参数,3000 亿 Token)的比例是 1.7——比最优值低了 20 倍。
DeepMind 通过训练 Chinchilla 证明了这一点:700 亿参数,1.4 万亿 Token。比 GPT-3 小,Token 比它多,而且在所有基准上都更好。
算力地图
在双对数图上,loss 随 compute 呈幂律下降。N(参数量)和 D(tokens 数)滑块显示出 iso-compute 曲线:在固定预算下存在一个最优 N/D 比——按 Chinchilla 大约是每个参数 20 个 token。
拖动这个点来探索 (N, D) 平面。Chinchilla 对角线是每一美元算力都被最优地花掉的那条线。在它上方,你训练了一个太小的模型却训得太久;在它下方,反过来。
你会注意到一件有意思的事:LLaMA-3 远远在对角线之上。700 亿参数训练在 15 万亿 Token 上,比例是 214——比 Chinchilla 最优值高出 10 倍。
为什么?因为 Meta 优化的不是训练算力效率。他们优化的是推理成本。一个更小的模型训练得更久,训练时贵一点(一点点而已),但在生产环境里服务起来便宜得多。在数十亿次请求的尺度上,省下来的钱是巨量的。
超越参数:数据质量
缩放定律并不是故事的终点。几个限制开始浮现。
**可获得的数据是有限的。**Common Crawl、维基百科、GitHub、ArXiv、扫描的书籍——互联网上高质量文本数据的库存并不是无穷的。多个团队估计我们正在接近这堵墙:把一个 1 万亿参数的模型训练到 Chinchilla 最优需要 20 万亿 Token,这远超过干净的公开语料。
**质量胜过数量,但只到某个点为止。**对语料做过滤、只保留高质量数据(教科书、技术书、干净的代码),比起加入平庸的数据,对模型的提升要大。但过于激进的过滤最终会让分布变得贫瘠,损害泛化。
涌现能力打乱了曲线。对于某些任务(多步推理、复杂数学、罕见指令),表现一直保持平稳直到某个规模阈值——然后突然抬升。这些"涌现能力(emergent abilities)"是有争议的:一些研究者(Schaeffer 等人,2023)展示了,当你换用一个更连续的指标时,它们就消失了。但实际现象依然存在:小模型就是做不到某些事,无论怎么微调都不行。
实用的教训
如果你今天要训练一个模型,下面是缩放定律对你说的话:
- 算力固定? 把 D/N 比例瞄准 20 附近。这是训练最优。
- 要把模型大规模上线服务? 把比例往上推。一个更小的模型训练得更久,在推理时更便宜——这正是 Meta、Mistral 以及越来越多团队在做的事。
- 目标是某种涌现能力? 小修小补不够。你得跨过一个规模阈值。
- 数据不够? 质量、过滤和多样性比语料的原始大小更重要。
缩放定律说的不是要无限地变大。它说的是参数和数据之间存在一个正确的比例——而我们已经在错误的那一边浪费了好几年。
更新于