上一课你记住了两件事:loss 随规模呈幂律(对),以及 Kaplan 的预算建议「把算力主要砸到模型大小上,数据没必要喂太多、不必训到收敛」。整个 2020–2021 年,行业就照这个跑——比谁参数多:GPT-3 175B、Gopher 280B、MT-NLG 530B。
Chinchilla 团队重做了实验(而且用三种独立方法交叉验证),问一个要命的问题: 给定固定算力,模型该多大、数据该多少,才能把 loss 压到最低? 答案和 Kaplan 截然不同——当年的模型普遍「太大、喂太少」。把同样的算力从「堆参数」挪一部分去「喂数据」,loss 还能再降一截。换句话说:那批巨无霸不是不够大,是没吃饱。
同一笔算力(C ≈ 6 × N × D),可以有无数种「模型多大 / 数据多少」的分法。Chinchilla 的结论是有一个最优配比,且 N、D 应当同速增长:
| 分法 | 模型 N / 数据 D | 结果 |
|---|---|---|
| 偏 Kaplan:堆参数 | N 巨大,D 少(tok/参数 ≪ 20) | 欠训练(虚胖),loss 偏高 |
| Chinchilla 最优 | N、D 等比例,约 20 token/参数 | loss 最低 ✓ |
| 过头:堆数据 | N 太小,D 极多 | 模型「装不下」,loss 又升 |
这是 Chinchilla 留下最实用的一根标尺。验算一下当年的模型:
• GPT-3:175B 参数,仅约 300B token → ≈1.7 token/参数,严重欠训练。
• Chinchilla:70B 参数,1.4T token → ≈20 token/参数,正好踩线。
Kaplan 让 N 跑得飞快、D 慢吞吞;Chinchilla 让它俩手拉手一起涨。
两个洞察,一个关于模型、一个关于方法——后者尤其值得你记住,因为它是「权威实验也会因一个细节系统性翻车」的经典案例。
| 洞察 | 说明 |
|---|---|
| ① 当年的大模型普遍欠训练 | 它们把算力几乎全砸在「做大」上,数据喂得太少、没训透。所以「参数量」根本不是「能力」的好代理——一个喂饱的小模型能打趴一个饿着的大模型。 |
| ② Kaplan 错在一个方法细节 | Kaplan 的实验用了一个不随数据量正确衰减的学习率调度,这让大模型「看起来」比实际更省样本,于是得出「多砸模型」的偏结论。Chinchilla 把这个细节修对、用三种方法交叉验证,才翻了案。 |
第 ② 点对你是一记提醒:scaling law 这种「画直线外推」的方法极强,但它的结论强烈依赖实验设置;一个看似无关的旋钮(学习率调度)配错,整条外推线就偏了。权威结果也要看它怎么做出来的——做过受控实验、搭过评测脚本的人,对这一点会格外有共鸣。
算力预算锁死。点不同的「模型 / 数据」配比,看 loss 怎么走——你会看到一个谷底:太偏堆参数(虚胖)或太偏堆数据(装不下)都更差,约 20 token/参数处最低。
谷底就是 compute-optimal。左边是 Kaplan 时代的「虚胖」打法,右边是矫枉过正的「饿死大脑」打法,最优在中间那条「约 20 token/参数」的线上。
| Gopher | Chinchilla(本篇) | |
|---|---|---|
| 参数 N | 280B | 70B(小 4 倍) |
| 训练 token D | 300B | 1.4T(多约 4 倍) |
| 算力 C | 两者基本相同 | |
| 谁更强 | — | Chinchilla 全面反超(且也胜 GPT-3、MT-NLG) |
| 推理成本 | 高(模型大) | 低(小 4 倍,部署更省) |
这就是 Chinchilla 的杀招:不是嘴上说「该多喂数据」,而是真造一个小 4 倍、喂 4 倍数据、同算力的模型,把更大的 Gopher 打趴。更狠的是——它还顺带省了推理成本。
| 维度 | Kaplan 2020(P10) | Chinchilla 2022(本篇 P11) |
|---|---|---|
| 固定算力,钱砸哪 | 主要砸模型大小 | N 与 D 等比例(约 20 token/参数) |
| 对数据的态度 | 没必要喂太多 | 数据被严重低估,要喂饱 |
| 当年模型的诊断 | — | 普遍欠训练 / 虚胖 |
| 仍然成立的 | 「loss 可预测、可外推、幂律」的范式不变,被修正的是配比 | |
🔮 故事还有下一跳:Chinchilla 是「训练算力最优」。但产品上线后,推理成本才是大头——模型要被调用千百万次。于是 LLaMA 等更进一步:故意把小模型训过 Chinchilla 最优点(喂远超 20× 的数据),训练时多花点,换来一个又小又强、推理便宜的模型。这条「为推理便宜而过度训练」的路线,正是今天小模型遍地开花的根。
| 你工作里的东西 | 其实就是这篇论文的什么 |
|---|---|
| 看到「XX 模型 700B 参数」就觉得它一定更强 | 小心:参数量不是能力的好代理——欠训练的大模型会输给喂饱的小模型。要看「训了多少数据」,不只是「多大」 |
| 你纠结「上更大的模型」还是「用小模型 + 更多数据/RAG」 | 就是 compute-optimal 的产品版:Chinchilla 告诉你「别迷信大,喂饱更值」,而且小模型推理更便宜 |
| 你做选型时算「这个模型每次调用多少钱」 | 对上 LLaMA 路线:训练成本一次性,推理成本随调用量累加——产品该优先选「小而强、调用便宜」的 |
| 你看到一个「权威 scaling 外推结论」,想判断信不信 | 记住 Kaplan 翻车的教训:结论强依赖实验设置,一个学习率调度配错就偏——要追问它怎么做出来的 |
| 「为什么现在小模型(7B/8B)也能很能打」 | 因为它们被喂了远超 Chinchilla 最优的数据,把小身板的潜力榨干了 |
把这一课接到你真实工作上的几个关键问。点开看答。
因为 Chinchilla 优化的是训练算力——「同样训练预算下,loss 最低」。但产品视角,推理成本才是主战场:模型一旦上线,要被调用千万次,每次调用的成本只跟模型大小有关,跟你训了多少数据无关。
所以 LLaMA 的算盘是:训练时多花点(把小模型喂到远超 20×),换一个又小又强、推理永久便宜的模型。一次性多付训练费,省下无限次推理费——对要长期服务用户的产品,这笔账划算。Chinchilla 给的是「训练最优」,LLaMA 走的是「部署最优」,两者不矛盾,是优化目标不同。
不是。模型容量(参数量)有个上限作用——太小的模型「装不下」,喂再多数据也到顶(动手玩里右端那档就是这个)。Chinchilla 反对的是「在数据没喂够的前提下盲目做大」,不是说大没用。
正确的心智:参数量决定「天花板有多高」,数据量决定「你爬到了天花板的几成」。当年的巨无霸天花板很高,但只爬了一两成(欠训练)。所以判断一个模型强不强,要两个数一起看:多大 + 喂了多少,而不是只看参数。
当作粗略标尺可以,当精确公式不行。20× 是 Chinchilla 在它的数据、它的设置下拟合出来的,会随数据质量、模型架构、目标(训练最优 vs 推理最优)而变。它的真正价值是方向:提醒你「光看参数会被骗,要问数据喂够没」。
实操上你不会自己训模型,但这把尺能让你看懂新闻稿——看到「我们的 7B 模型用了 15T token 训练」,你立刻知道:这是 ~2000 token/参数,远超 Chinchilla 最优,明显是为推理便宜而过度训练的 LLaMA 路线,大概率小而强。
读原典:Hoffmann et al. — Training Compute-Optimal Large Language Models(Chinchilla, 2022)。
建议连着上一课读:Scaling Laws(P10) 立范式、本篇修配比,两篇是一组「立靶 + 纠偏」。
阶段三收尾在即:T5 统一形状 → Scaling Laws 量化 → Chinchilla 修正配比。下一篇 P12 LoRA:换个赛道——不再谈「怎么把大模型训出来」,而是「怎么用极小成本把它微调到你的场景」。
参考:
Hoffmann et al., Training Compute-Optimal Large Language Models, 2022.