阶段 5 · 大模型怎么炼成

缩放定律:钱不够的时候
该买参数还是买数据

训练一个大模型要花三样东西:模型多大、数据多少、算力多久。 而算力被前面两个绑死——第 1 节会给出那条式子。 上一章《多模态模型》折出的视觉 token,正好抬高这笔算力账。 所以真正要做的决定是:参数和数据,这笔钱怎么分?

1

先把三个旋钮绑在一起

N = 参数量 D = 训练 token 数

互动 · 三个旋钮为什么只有两个自由度

那个 6 不是魔法数字:一次前向传播每个参数大约要做 2 次浮点运算(一次乘、一次加), 反向传播大约是前向的两倍,合计 6。所以算力、参数、数据三者只有两个自由度。 预算固定时,多买一倍参数就必然要少喂一半数据——没有第三条路。 缩放定律要回答的,就是这个取舍点在哪里。

2

损失是可以被预测的

2020 年 OpenAI 的 Kaplan 等人发现了一件当时看来不可思议的事: 测试损失和参数量、数据量之间是一个平滑的幂律关系。 这意味着你只要训几个小模型,就能预测一个大模型训出来会是多少损失。

三项:一道推不动的墙(E)+ 参数不够的罚金 + 数据不够的罚金;下表逐项解释
项含义直觉
E不可约损失 语言的固有熵,不管你怎么堆算力,都降不到这个线以下—— 这是所有缩放工作的天花板
A / Nα参数不够的代价 模型容量太小,装不下要学会的东西
B / Dβ数据不够的代价 样本太少,参数闲着没事干,开始背题

互动 · 幂律为什么叫「可预测」:对数坐标上它就是一条直线

下面的计算器用的是 Chinchilla 论文拟合出来的常数值 (E = 1.69,A = 406.4,B = 410.7,α = 0.34,β = 0.28)。 拟合就是找一条曲线,尽量贴着这些实测点。

98 和 20,该记哪个?论文用了三种方法估「训练时最优比例是多少」:正文那套做法 (直接训一批模型比一比)得出约 20 token/参数——业内通用的数,记它; 用上面这条公式加论文的拟合常数反推,在 1e24 这档算力上会得到约 98。 2024 年 Besiroglu 等人的复现查明:论文用来拟合那条曲线的优化程序提前停了 (不是训练模型的那个),所以这组常数偏大 (论文更精确的那套约 70,也和前两种方法对不上);重新拟合后回到 20 上下。 所以图上算出的 token/参数比偏大(§M 地形图上会往「参数少、数据多」偏)——记 20。

互动 · 算力预算分配器

当前配置的损失
—
最优损失(同预算)
—
你多花了
—

💡 最低点不在两条虚线的交叉处

橙色虚线是公式里 A/Nα 这块「参数太小的罚金」,粉色是 B/Dβ 这块「数据太少的罚金」。 损失曲线的最低点,并不在两条虚线相等的地方,而在它偏右一点的位置。 数学节最后一张图会算给你看:看的是两块罚金「再省一点」的收益,而不是它们的绝对大小。

3

翻案:你们都训得太大了

Kaplan 那篇论文的结论是:参数量最重要,数据可以少给。 这个结论直接影响了 GPT-3——1750 亿参数,只喂了 3000 亿 token(约 1.7 token/参数)。

2022 年 DeepMind 复现时发现:Kaplan 给所有模型用的是同一条学习率曲线 (学习率在训练中按计划怎么降),没按各自的训练长度调整; Chinchilla 配套调好后重做,结论完全反过来了:多喂数据更划算。 2024 年 Pearce & Song 又指出一个主要原因:Kaplan 数的是非嵌入参数 (不含词嵌入),分析的模型也偏小——照这个口径重做就会偏向「堆参数」。

互动 · 每个模型到底喂了多少 token / 参数(真实数字)

看什么Kaplan 2020Chinchilla 2022
核心主张 参数量是主导项,数据可以少 参数量和数据量应该同比例增长
同一笔 GPT-3 算力,怎么分 175B × 300B token
GPT-3 实际就是这么配的(符合当时 Kaplan 的结论)
约 50B × 1.1T token
验证方式 多组不同规模模型的拟合 直接训一个 70B/1.4T 的模型去打赢 280B 的 Gopher(DeepMind 自己的上一代模型)
结果 — Chinchilla(70B)在绝大多数任务上超过 Gopher(280B)
教训 实验设计的细节,能改掉一条被引用几千次的结论: 对比规模时,所有跟着规模变的超参都得一起调
⚠️ 但 Chinchilla 也不是终点

Chinchilla 回答的是"训练算力怎么花最省"。 它完全没考虑一件事:训完之后,这个模型要被用来推理多少次? 下一节你会看到,把这个变量加进来,结论又会翻一次。

4

第二次翻转:推理成本改回结论

2023 年起,主流开源模型普遍在「过度训练」—— 用远超 Chinchilla 比例(20 token/参数)的数据,去训一个相对小的模型。 Llama 3 8B 用了 15 万亿 token,约 1875 token/参数,是 Chinchilla 建议值的约九十倍。

Chinchilla 只算了训练成本,没算推理成本。 而训练是一次性的,推理是每天都发生的:一个跑了好几年、每天被调用上百万次的模型, 推理成本通常会超过训练成本——调用量越大,差距越大。

R = 模型整个生命周期里要处理的 token 总数 一次前向每参数约 2 次浮点运算
👆 公式里的符号,连着页面上的滑块

这一章的三条公式(训练算力、损失的三项、总成本)里,C、N、R 各自对应本页的一个滑块。 把鼠标停在某个符号上,它指向的那个滑块会亮起来——公式里的符号和滑块,是同一个变量。 R 的滑块就在下面。

所以你应该在训练阶段多花点钱(喂更多数据),换一个更小、但同样好的模型。

互动 · 训练成本是一次性的,推理成本每天都在发生

互动 · 把推理成本算进来,最优配置会怎么移动

最优参数量
—
最优训练 token
—
token / 参数
—

💡 这条曲线才是真正的工程决策

推理感知的最优点落在 Chinchilla 最优点左边(模型更小、数据更多)时,说明该过度训练; 落在右边时说明该优先堆参数。
“最优配置”根本不是一个绝对数字,它取决于你打算怎么用这个模型。

M

数学 · 损失是由哪几块拼出来的

前四节一直在用同一行式子:L = E + A/Nα + B/Dβ。 这一节只做一件事——把这行公式上的每一个符号,在图上指给你看。

动画 · 损失是一根柱子:一道推不动的墙 + 两块可以互相换的罚金

这一行公式,画出来其实是一张地形图。 横轴是参数量 N、纵轴是数据 D(都取对数),颜色深浅就是损失 L—— 白线是「这笔算力买得起的所有配置」,它压到最深色带的那一点,就是最优点。

微型图解 · 两块罚金一块在跌、一块在涨,交叉的地方就是最优

收成一句:预算固定时,最优分配点只有一个,条件是两边的边际收益相等。 后面两节在这条式子外面加变量(推理需求、数据上限),看这个点怎么移动; 最后一节讲这张表管不到的东西。

5

四年里被改了四次

阶段核心主张被什么推翻
Kaplan 缩放
2020
损失与 N、D 都是幂律;参数量是主导项 方法有瑕疵(学习率曲线没配套调)。Chinchilla 修正后结论反转
Chinchilla
2022
N 和 D 应同比例增长——给定算力下最优配置 只算了训练成本,没算推理成本
数据受限缩放
2023–24
高质量数据快要不够用了,怎么办?重复数据收益急剧递减 被合成数据和数据蒸馏(用强模型教小模型)部分缓解,但根本问题还在
推理感知缩放
2024
把推理成本一起最小化,结论变成「故意过度训练小模型」 —(这是当前主流)
测试时缩放
2024–25
算力不一定要花在训练上,也可以在推理时"多想一会儿" —(与训练缩放互补——把推理步骤写出来再答,就是思维链;见《思维链与测试时计算》)

互动 · 四年里翻来覆去改的,就是这个数

一个反复出现的模式

注意这条线:Kaplan 说堆参数 → Chinchilla 说堆数据 → 推理感知说堆数据堆得更狠 → 测试时缩放说干脆别堆了,推理时多想想。
每一次翻转都不是"前一个错了",而是把前一个没考虑的变量加了进来。 看到"最优配置"的结论,先问一句:它把哪些成本算进去了?

6

数据墙:幂律撞上了物理上限

幂律告诉你要喂更多数据。但世界上高质量的文字是有限的。 Villalobos 等人 2022 年估计,公开可用的高质量文本大约 9 万亿个词, 折成 token 也就是1013 这个量级。

算力想喂的数据 vs 世界上有多少数据

高质量文本总量(估计)
约 1.3 × 1013 token
≈ 9 万亿个词
按本页的拟合常数,1026 算力需要多少
—

应对方式做法代价
重复数据同一份数据看多遍 收益急剧递减。实验显示同一 token 重复 4 次以后, 再加重复量几乎等于浪费算力
合成数据让强模型生成训练数据给弱模型学 效果好,但会放大老师的偏见和错误;反复迭代会「模型崩溃」(越训越只会复制自己)
多模态数据把图片、视频、音频也变成 token 数据量上限大幅抬升。这是目前最主流的解法
数据质量优先不再比"多少 token",比"多少有效 token"(真正带来新信息的那些) 清洗成本高;"质量"很难定义,容易引入筛选偏见

四种解法都补不满这个缺口:重复数据最多再看 4 遍,合成数据会放大老师的错误, 多模态和「有效 token」都要额外成本。数据墙还在,只是被推远了些。

7

缩放定律不能告诉你的事

它不能告诉你为什么重要什么时候真的会痛 → 换什么
① 只能预测损失,不能预测能力 损失降 0.05 到底是"会做数学题了"还是"文章更通顺了"? 缩放定律完全无法回答。它只是一个平滑的曲线拟合。 损失只能比大小(1.91 比 1.95 好),好的是哪方面要另做能力评测 拿「损失降了 0.05」去汇报能力提升 → 要能力结论,去跑评测,别拿损失当成绩
② 外推有风险 常数是用几百个小模型拟合出来的,然后外推到比它们大几十倍的模型。 幂律在小范围内成立,不代表远距离也成立—— 至少有一个团队报告过在小模型上拟合的定律在大规模上失效 用小模型上拟合的定律去下大模型的订单 → 中间规模留一次验证,别一把梭
③ 有不可约损失 E 那个 E 是天花板。按既有常数,堆再多算力, 损失也降不到 1.69 以下。缩放不是通往无限智能的直线 把「继续堆算力」当成唯一路线 → 预算到顶时,从数据、架构、推理时计算里找空间
④ 完全不管架构和数据质量 公式里只有 N 和 D 两个数。数据质量再差、标注再乱,它也不知道—— 而同样的参数量,这些恰恰决定实际能力 两边数据质量不同,还拿损失比高下 → 先把数据拉平,再谈缩放
⑤ 假设算力无限 它回答"给定算力怎么分",但没回答"该不该花这么多算力"。 那是商业决策,不是数学问题 把「给定预算的最优」当成「就该花这么多」 → 先算商业账:这笔钱能不能收回

互动 · 账算到最后,撞上一堵墙:不可约损失 E

⚠️ 关于"涌现能力"的一个提醒

2022 年有论文报告:多步算术、思维链(让模型把推理步骤写出来)这些能力是突然出现的。
2023 年的后续研究指出:这很可能是 0/1 指标(全对才算对)的假象。 换成部分给分,断崖立刻变成平滑上升。
启示:看到"能力跃迁"时,先检查是不是指标造成的错觉。

互动 · 「涌现」是能力在跳,还是指标在跳

8

小结

这一章只讲两个公式。但两个公式合起来,把一个很模糊的口号变成了一张可以查的价格表。

它对应哪条线 第 ③ 条线「规模会赢」(《第一性原理》页那张七条线地图上的第 ③ 条)——但这一章给的不是口号,是这条线的 价格表与收据:它告诉你多大算大、花多少钱、什么时候不再划算。
一句话 缩放定律是在给「变大」标价—— 把损失写成 L = E + A/Nα + B/Dβ, 于是「规模会赢」这句话第一次可以被算出来,也能被算出来什么时候不划算。
它牺牲了什么 牺牲了对「能力」的一切预测力。 它只能告诉你损失降了多少,而不能告诉你降这 0.05 到到底是“会做数学题了”还是“文章更通顺了”。 再加上那个不可约损失 E,它连“堆下去会怎样”也不承诺(回扣「什么被牺牲了」和「它假设了什么」这两条暗线)。
🎬 自己验一遍:你现在能指着哪个互动说这句话

回到第 2 节那个「算力预算分配器」。先把“你选的参数量 N”拉到很大,再把“总训练算力 C”往左拉。 看右下角那个「你多花了」的读数——它会一下子拉大。

那个数字变大的瞬间你看到的就是「标价」的含义: 参数买多了、数据就必然少,而这对组合的损失可以被提前算出来,不用真的训一遍。 然后你再把 N 往回调,看它怎么回到最优。 如果你刚才没有想指着某个东西说这句话,那这一节对你就是没用的——回到图上再拖一次。

它在暗线里站在哪

这一章是阶段 5 的开头,所以它的回答会定下后面几章的基调。六条暗线里,这一章答得上的有五条。

暗线这一章的回答
什么被牺牲了 用“可预测性”挖掉了“可解释性”。 幂律极其精确,但精确的只是损失这一个替身——真正想知道的「能力」,它不回答。 不可约项 E(Chinchilla 拟合值 1.69)意味着它有算法层面的天花板—— 堆得够多并不能无限变强。
另一个被牺牲的是数据:第 6 节的数据墙说明,幂律要求的数据物理上不存在。
参数账本 这一章就是那本账。把 C ≈ 6ND 代入几个真实配置:
GPT-3:175B 参数 × 300B token ≈ 3.2 × 1023 FLOPs(约 1.7 token/参数);
Chinchilla:70B × 1.4T ≈ 5.9 × 1023 FLOPs(约 20 token/参数);
Llama 3 8B:8B × 15T ≈ 7.2 × 1023 FLOPs(约 1875 token/参数)。
三个数字差不多,但分配方式差了三个数量级。 显存那边:175B 参数用 bf16(16 位浮点)存就是 350 GB 权重,加上 Adam 的优化器状态(每个参数额外存的两份数)会到 TB 级。
跑在什么上 训练是算力受限,推理是带宽受限——同一个模型,两个截然不同的瓶颈。
训练的主力是大矩阵乘,算术强度很高, 所以它压得动 GPU 的算力;最贵的动作是那次反向传播(占掉 6ND 里的 4)。
而推理每次只算一个 token:生成一个词要把全部参数从显存读一遍,却只做两三次乘加—— 读的时间远大于算的时间,瓶颈就从算力换成了显存带宽。
这就是「推理成本把结论改回来」的硬件原因:最贵的东西从算力变成带宽, 训小模型就更划算。 完整的算术强度账见 《硬件与算力账本》
它假设了什么 假设幂律可以外推。 常数是用几百个小模型拟合的,然后用它们去预测一个大几十倍的模型。 幂律在小范围内成立,不代表远距离也成立(第 7 节把它列成了风险 ②)。
第二个假设更隐蔽:它假设换个数据集、换个架构,这些常数不变。 实际要拿自己的数据重新拟合(第 9 节那段代码就是干这个的)——第 7 节第 ④ 条也说: 数据质量一变,缩放定律看不见。
违背了哪个直觉 “更大的模型一定更好”是错的。 第 4 节证明了:如果模型要服务很多年,故意“过度训练”一个小模型反而总成本更低—— 这是对“越大越好”最直接的反例。
第二个反直觉在“涌现”上:看起来像“能力突然跳变”的现象, 很可能只是0/1 指标造成的错觉(第 7 节那个滑块自己拖一遍)。
看到“跃迁”时,先怀疑指标。
🎯 前后钩子

它接住了前面阶段的什么:上一章《多模态模型》把图折成视觉 token, 这些 token 全都要算进 C ≈ 6ND 里的 D——预算不是可调的一个滑块, 而是一个恒等式。

它给下一章留了什么:既然“堆参数”和“堆数据”都是钱的游戏, 那有没有办法把容量和计算量解开? 这就是下一章 《MoE 混合专家》 要回答的问题。 而“数据快用完了怎么办”,在 《预训练数据工程》 里。

一句话带走缩放定律

给你一笔算力 C(和模型要服务的 token 总量 R),你能估出该配多大的模型、喂多少数据—— C ≈ 6ND 把它们绑死,损失服从幂律, 「多大才够」从口号变成一张可以查的价格表。
四年里结论翻两次、前后一共改四回:Kaplan 说堆参数 → Chinchilla 说参数和数据同比例涨 → 推理感知说还要更极端地堆数据、训小模型。 每次翻转都是因为把前一个没考虑的变量加了进来——R 一变,最优点就跟着动。
这张表管不到能力(它只测损失)、管不到数据质量,还有一个降不下去的地板 E。

9

拓展阅读

上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。

📄 这一章的说法从哪来

💻 工业界怎么写

∑ 更严格的形式