训练一个大模型要花三样东西:模型多大、数据多少、算力多久。
而
互动 · 三个旋钮为什么只有两个自由度
那个 6 不是魔法数字:一次前向传播每个参数大约要做 2 次浮点运算(一次乘、一次加), 反向传播大约是前向的两倍,合计 6。所以算力、参数、数据三者只有两个自由度。 预算固定时,多买一倍参数就必然要少喂一半数据——没有第三条路。 缩放定律要回答的,就是这个取舍点在哪里。
2020 年 OpenAI 的 Kaplan 等人发现了一件当时看来不可思议的事: 测试损失和参数量、数据量之间是一个平滑的幂律关系。 这意味着你只要训几个小模型,就能预测一个大模型训出来会是多少损失。
| 项 | 含义 | 直觉 |
|---|---|---|
| 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β 这块「数据太少的罚金」。 损失曲线的最低点,并不在两条虚线相等的地方,而在它偏右一点的位置。 数学节最后一张图会算给你看:看的是两块罚金「再省一点」的收益,而不是它们的绝对大小。
Kaplan 那篇论文的结论是:参数量最重要,数据可以少给。 这个结论直接影响了 GPT-3——1750 亿参数,只喂了 3000 亿 token(约 1.7 token/参数)。
2022 年 DeepMind 复现时发现:Kaplan 给所有模型用的是同一条学习率曲线 (学习率在训练中按计划怎么降),没按各自的训练长度调整; Chinchilla 配套调好后重做,结论完全反过来了:多喂数据更划算。 2024 年 Pearce & Song 又指出一个主要原因:Kaplan 数的是非嵌入参数 (不含词嵌入),分析的模型也偏小——照这个口径重做就会偏向「堆参数」。
互动 · 每个模型到底喂了多少 token / 参数(真实数字)
| 看什么 | Kaplan 2020 | Chinchilla 2022 |
|---|---|---|
| 核心主张 | 参数量是主导项,数据可以少 | 参数量和数据量应该同比例增长 |
| 同一笔 GPT-3 算力,怎么分 | 175B × 300B token GPT-3 实际就是这么配的(符合当时 Kaplan 的结论) |
约 50B × 1.1T token |
| 验证方式 | 多组不同规模模型的拟合 | 直接训一个 70B/1.4T 的模型去打赢 280B 的 Gopher(DeepMind 自己的上一代模型) |
| 结果 | — | Chinchilla(70B)在绝大多数任务上超过 Gopher(280B) |
| 教训 | 实验设计的细节,能改掉一条被引用几千次的结论: 对比规模时,所有跟着规模变的超参都得一起调 | |
Chinchilla 回答的是"训练算力怎么花最省"。 它完全没考虑一件事:训完之后,这个模型要被用来推理多少次? 下一节你会看到,把这个变量加进来,结论又会翻一次。
2023 年起,主流开源模型普遍在「过度训练」—— 用远超 Chinchilla 比例(20 token/参数)的数据,去训一个相对小的模型。 Llama 3 8B 用了 15 万亿 token,约 1875 token/参数,是 Chinchilla 建议值的约九十倍。
Chinchilla 只算了训练成本,没算
这一章的三条公式(训练算力、损失的三项、总成本)里,C、N、R 各自对应本页的一个滑块。 把鼠标停在某个符号上,它指向的那个滑块会亮起来——公式里的符号和滑块,是同一个变量。 R 的滑块就在下面。
所以你应该在训练阶段多花点钱(喂更多数据),换一个更小、但同样好的模型。
互动 · 训练成本是一次性的,推理成本每天都在发生
互动 · 把推理成本算进来,最优配置会怎么移动
推理感知的最优点落在 Chinchilla 最优点左边(模型更小、数据更多)时,说明该过度训练;
落在右边时说明该优先堆参数。
“最优配置”根本不是一个绝对数字,它取决于你打算怎么用这个模型。
前四节一直在用同一行式子:L = E + A/Nα + B/Dβ。 这一节只做一件事——把这行公式上的每一个符号,在图上指给你看。
动画 · 损失是一根柱子:一道推不动的墙 + 两块可以互相换的罚金
这一行公式,画出来其实是一张地形图。 横轴是参数量 N、纵轴是数据 D(都取对数),颜色深浅就是损失 L—— 白线是「这笔算力买得起的所有配置」,它压到最深色带的那一点,就是最优点。
微型图解 · 两块罚金一块在跌、一块在涨,交叉的地方就是最优
收成一句:预算固定时,最优分配点只有一个,条件是两边的边际收益相等。 后面两节在这条式子外面加变量(推理需求、数据上限),看这个点怎么移动; 最后一节讲这张表管不到的东西。
| 阶段 | 核心主张 | 被什么推翻 |
|---|---|---|
| Kaplan 缩放 2020 |
损失与 N、D 都是幂律;参数量是主导项 | 方法有瑕疵(学习率曲线没配套调)。Chinchilla 修正后结论反转 |
| Chinchilla 2022 |
N 和 D 应同比例增长——给定算力下最优配置 | 只算了训练成本,没算推理成本 |
| 数据受限缩放 2023–24 |
高质量数据快要不够用了,怎么办?重复数据收益急剧递减 | 被合成数据和数据蒸馏(用强模型教小模型)部分缓解,但根本问题还在 |
| 推理感知缩放 2024 |
把推理成本一起最小化,结论变成「故意过度训练小模型」 | —(这是当前主流) |
| 测试时缩放 2024–25 |
算力不一定要花在训练上,也可以在推理时"多想一会儿" | —(与训练缩放互补——把推理步骤写出来再答,就是思维链;见《思维链与测试时计算》) |
互动 · 四年里翻来覆去改的,就是这个数
注意这条线:Kaplan 说堆参数 → Chinchilla 说堆数据 → 推理感知说堆数据堆得更狠 → 测试时缩放说干脆别堆了,推理时多想想。
每一次翻转都不是"前一个错了",而是把前一个没考虑的变量加了进来。
看到"最优配置"的结论,先问一句:它把哪些成本算进去了?
幂律告诉你要喂更多数据。但世界上高质量的文字是有限的。 Villalobos 等人 2022 年估计,公开可用的高质量文本大约 9 万亿个词, 折成 token 也就是1013 这个量级。
算力想喂的数据 vs 世界上有多少数据
| 应对方式 | 做法 | 代价 |
|---|---|---|
| 重复数据 | 同一份数据看多遍 | 收益急剧递减。实验显示同一 token 重复 4 次以后, 再加重复量几乎等于浪费算力 |
| 合成数据 | 让强模型生成训练数据给弱模型学 | 效果好,但会放大老师的偏见和错误;反复迭代会「模型崩溃」(越训越只会复制自己) |
| 多模态数据 | 把图片、视频、音频也变成 token | 数据量上限大幅抬升。这是目前最主流的解法 |
| 数据质量优先 | 不再比"多少 token",比"多少有效 token"(真正带来新信息的那些) | 清洗成本高;"质量"很难定义,容易引入筛选偏见 |
四种解法都补不满这个缺口:重复数据最多再看 4 遍,合成数据会放大老师的错误, 多模态和「有效 token」都要额外成本。数据墙还在,只是被推远了些。
| 它不能告诉你 | 为什么重要 | 什么时候真的会痛 → 换什么 |
|---|---|---|
| ① 只能预测损失,不能预测能力 | 损失降 0.05 到底是"会做数学题了"还是"文章更通顺了"? 缩放定律完全无法回答。它只是一个平滑的曲线拟合。 损失只能比大小(1.91 比 1.95 好),好的是哪方面要另做能力评测 | 拿「损失降了 0.05」去汇报能力提升 → 要能力结论,去跑评测,别拿损失当成绩 |
| ② 外推有风险 | 常数是用几百个小模型拟合出来的,然后外推到比它们大几十倍的模型。 幂律在小范围内成立,不代表远距离也成立—— 至少有一个团队报告过在小模型上拟合的定律在大规模上失效 | 用小模型上拟合的定律去下大模型的订单 → 中间规模留一次验证,别一把梭 |
| ③ 有不可约损失 E | 那个 E 是天花板。按既有常数,堆再多算力, 损失也降不到 1.69 以下。缩放不是通往无限智能的直线 | 把「继续堆算力」当成唯一路线 → 预算到顶时,从数据、架构、推理时计算里找空间 |
| ④ 完全不管架构和数据质量 | 公式里只有 N 和 D 两个数。数据质量再差、标注再乱,它也不知道—— 而同样的参数量,这些恰恰决定实际能力 | 两边数据质量不同,还拿损失比高下 → 先把数据拉平,再谈缩放 |
| ⑤ 假设算力无限 | 它回答"给定算力怎么分",但没回答"该不该花这么多算力"。 那是商业决策,不是数学问题 | 把「给定预算的最优」当成「就该花这么多」 → 先算商业账:这笔钱能不能收回 |
互动 · 账算到最后,撞上一堵墙:不可约损失 E
2022 年有论文报告:多步算术、思维链(让模型把推理步骤写出来)这些能力是突然出现的。
2023 年的后续研究指出:这很可能是 0/1 指标(全对才算对)的假象。
换成部分给分,断崖立刻变成平滑上升。
启示:看到"能力跃迁"时,先检查是不是指标造成的错觉。
互动 · 「涌现」是能力在跳,还是指标在跳
这一章只讲两个公式。但两个公式合起来,把一个很模糊的口号变成了一张可以查的价格表。
回到第 2 节那个「算力预算分配器」。先把“你选的参数量 N”拉到很大,再把“总训练算力 C”往左拉。 看右下角那个「你多花了」的读数——它会一下子拉大。
那个数字变大的瞬间你看到的就是「标价」的含义: 参数买多了、数据就必然少,而这对组合的损失可以被提前算出来,不用真的训一遍。 然后你再把 N 往回调,看它怎么回到最优。 如果你刚才没有想指着某个东西说这句话,那这一节对你就是没用的——回到图上再拖一次。
这一章是阶段 5 的开头,所以它的回答会定下后面几章的基调。六条暗线里,这一章答得上的有五条。
| 暗线 | 这一章的回答 |
|---|---|
| 什么被牺牲了 | 用“可预测性”挖掉了“ 另一个被牺牲的是数据:第 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。
上面讲的都是「够用」的版本。想往下挖,这里有三个入口—— 它们不是必修内容,是给想再往前走一步的读者准备的。