Lilian Weng 新文深读:Scaling Law 不是物理定律,是一次高杠杆的赌注

《Scaling Laws, Carefully》深度消化:为什么深度学习最著名的"定律",两篇奠基论文能得出相反的结论(Kaplan 的 0.73 vs Chinchilla 的 0.5);为什么 Chinchilla 自己也有一个求和写成平均的拟合 bug;以及当"数据无限"假设过期之后,scaling law 正在被改写成什么形状。

原文:Scaling Laws, Carefully,Lilian Weng(Thinking Machines 联合创始人,前 OpenAI),2026-06-24。「researcher-deepdive」系列第二篇(第一篇是 Harness Engineering 深读)。照例:不做摘要,做消化。

前置阅读:如果幂律、log-log 直线、拟合外推这些词没有画面感,先读零基础陪读篇——五件手算工具装好再回来,这篇会好读得多。

标题里的 “Carefully” 就是全文的论点。Scaling law 常被当作深度学习里最接近物理定律的东西——log-log 图上一条直线,“每个参数配 20 个 token”背成口诀。Weng 这篇文章拆的正是这个印象:scaling law 不是定律,是一次高杠杆的曲线外推。你用一把小模型的便宜实验拟出五个参数,然后赌它在大几个数量级之外仍然成立。杠杆的另一面是脆弱:要不要数 embedding 参数、损失取和还是取平均、小数点保留几位——这些看起来像舍入误差的选择,经过 log-log 外推放大后,足以让两篇奠基论文得出相反的训练配方。

原文在争什么

表面上这是一篇 scaling law 综述(从 Amari 1992 讲到 2026 年的最新工作),但它有一条明确反对的默认观点:把 scaling law 当成一劳永逸的机械配方。文章用三组证据反对它:

第一组:两篇奠基论文互相打架。 Kaplan et al. (2020) 说 NoptC0.73N_\text{opt} \propto C^{0.73}——算力涨 10 倍,模型放大 5.5 倍、数据只加 1.8 倍,“训大模型、提前停”。Chinchilla (Hoffmann et al. 2022) 说 NoptC0.5N_\text{opt} \propto C^{0.5}——模型和数据等比例翻倍,并用同等算力下 70B/1.4T-token 的 Chinchilla 全面击败 280B/300B-token 的 Gopher 做了实证。同一个问题、同一种方法论,配方相反。

第二组:连 Chinchilla 自己都有 bug。 Besiroglu et al. (2024) 从 Chinchilla 论文图 4 里抠出原始数据点重跑参数拟合,发现 L-BFGS 优化器里 Huber loss 被按样本取了平均而不是求和,导致损失量纲缩小、优化提前终止,置信区间窄得不真实;报告的 α,β\alpha, \beta 又只保留了两位小数,让派生出的 A,BA, B 看起来比实际更离谱。这解释了为什么 Chinchilla 三种方法里 method 3 和另外两种对不齐。

第三组:奠基假设已经过期。 经典 scaling law 假设每个训练 token 都是全新的(数据无限区域)。而今天前沿模型正在撞”数据墙”,重复数据、多 epoch 训练成为常态——原公式在这个区域直接失效,需要打补丁。

一句话总结她的立场:scaling law 依然是预训练最有价值的工具,但它是用来小心使用的经验拟合,不是用来背诵的物理常数。

第一性原理拆解

顶级原理望远镜看,这篇文章坐在三条原理的交点上:

⑨ 规模与苦涩的教训——scaling law 是”苦涩教训”的定量化。 Sutton 说通用方法加算力终将获胜,但没说算力该怎么花。Scaling law 回答的正是这个问题:给定 C6NDC \approx 6ND 的预算约束(每 token 前向 2N2N FLOPs、反向 4N4N),在参数 NN 和数据 DD 之间怎么分。Chinchilla 的闭式解很干净:对 L^(N,D)=ANα+BDβ+E\hat{L}(N,D) = \frac{A}{N^\alpha} + \frac{B}{D^\beta} + E 在预算约束下求极值,得到 NoptCβα+βN_\text{opt} \propto C^{\frac{\beta}{\alpha+\beta}}——当 αβ\alpha \approx \beta 时正好各占一半。整场 Kaplan vs Chinchilla 之争,本质是在争这两个指数的测量值。

④ 泛化才是终点——但这里有个历史转折值得记住。 Weng 提了一个容易被略过的侧注:早期理论用 VC 维这类最坏情况的界去刻画泛化,但在现代深度学习里,经验幂律比理论界干净得多、好用得多。Hestness et al. (2017) 的发现更有意思:幂律指数 α\alpha问题域的属性(翻译、图像、语音各有各的斜率),换架构只能平移曲线的截距,动不了斜率。这条观察是”架构细节不如规模重要”(Kaplan 结论之一)的前身,也解释了为什么”为什么是幂律”至今没有公认答案——两个候选假设(数据流形维度说:NN 个参数把 dd 维流形切成 O(N)O(N) 块,分辨率 N1/d\sim N^{-1/d};技能量子化说:技能按幂律频率分布,常见的先学、稀有的后学)都指向数据本身的结构,而不是模型。

③ 目标函数即命运——注意 LL 只是预训练交叉熵。 整套框架优化的是 next-token 交叉熵(这正是为什么交叉熵要用 log 那篇里拆过的量)。Weng 特意点了一句很多人忽略的话:训练损失和测试损失强相关”听起来平凡,但这是全部预训练工作的地基”,而预训练损失的改进能否传导到 post-training 之后的评估,是需要单独研究的另一个问题。也就是说,scaling law 保证的是损失可预测,不直接保证能力可预测。

而全文最值得带走的新知识在数据受限区域的两次建模迭代:

  1. Muennighoff et al. (2023):把总 token 拆成唯一 token UDU_D 和重复次数 RDR_D,用”有效数据” D=UD+UDrD(1eRD/rD)D' = U_D + U_D r_D (1 - e^{-R_D / r_D}) 替换原公式里的 DD——重复 token 的价值指数衰减rDr_D 是可学习的”半衰期”。拟合发现多余参数的价值衰减得比重复数据更快(rN<rDr_N < r_D),结论:数据不够时,宁可多跑 epoch,别加参数。
  2. Lovelace et al. (2026):发现残差同时随 epoch 数和模型尺寸增长——越大的模型越怕重复数据。于是不再打折数据,而是显式加一个过拟合惩罚项 PRDδ(N/UD)κP \cdot R_D^\delta \cdot (N/U_D)^\kappa,围绕容量比 N/UDN/U_D 建模,并发现强 weight decay 能压低这个惩罚。

这两步迭代本身就是一堂”经验建模怎么演化”的示范课:先用一个直觉(价值衰减)打补丁,发现残差里还有结构(模型尺寸交互项),再把结构显式写进公式。Weng 也诚实地指出:两种形式都是纯经验拟合,没人知道为什么”必须”长这样。

连接与冲突

和本博客推理侧算术的对称性。 Decode 带宽上限那篇用 带宽 / 模型体积 一行算式估推理速度上限;这篇的 C6NDC \approx 6ND 是训练侧的同款餐巾纸算术——每 token 6N FLOPs,乘上 token 数就是总账单。两条算式合起来,训练和推理的成本第一性估算就都齐了。值得注意的对称:推理侧卡的是带宽(内存墙),训练侧卡的是数据(数据墙),两边的”墙”都不是算力本身。

和 DeepSeek-R1 的边界关系。 R1 那篇的主线是”能力靠激励长出来”,那是 post-training 的故事。这篇划清了 scaling law 的适用边界:它只管预训练损失。R1 式的 RL 后训练、推理时算力(望远镜第 ⑩ 条)都在这套框架之外——这也正是她说”损失改进传导到下游评估需要单独研究”的原因。两篇拼起来才是完整图景:scaling law 决定基座的下限,激励设计决定能力的上限。

一处和我旧认知的真冲突。 我过去把 Chinchilla 的”20 token/参数”当作可以直接引用的常数。这篇文章之后这个数字在我这里降级为:特定架构、特定数据分布、特定学习率调度、数据无限假设下的一次测量。Pearce & Song (2024) 的调和分析给了最直接的证据:把”是否计入 embedding 参数”这一个记账口径差异建模进去(N=NE+ωNE1/3N = N_{\setminus E} + \omega N_{\setminus E}^{1/3}),最优指数就不再是全局幂律,而是一个随算力增长的局部指数 gg——在 Kaplan 的小模型区域 g0.73g \approx 0.73,算力够大时收敛到 Chinchilla 的 0.5。两篇论文可能都没错,只是各自在自己的区域里测量了同一条曲线的局部斜率。这比”Kaplan 错了”是一个深刻得多的结论:在 log-log 空间做外推时,你永远要问自己拟合区间在哪。

我的判断

可信的部分。 这是 Weng 一贯的 survey 写法,每个论断挂具体论文,且她对证据强度的标注诚实:数据流形假设”在现实里估计内在维度很难”、Muennighoff 的对称建模”我找不到满意的解释”、两种数据受限公式”都是经验拟合,缺理论”。相比 Harness 那篇(她所在公司做部署层,立场需要打折),scaling law 是纯技术史题材,利益相关弱得多——这篇的立场偏差风险是我读她文章以来最低的。

需要打折的部分。 第一,文中的 NN 默认是稠密模型参数;MoE 时代”激活参数 vs 总参数”怎么进公式,全文未涉及,而这恰是当下最大的记账口径分歧(历史会重演:embedding 记账之争就是前车之鉴)。第二,数据受限部分的实验上限偏小(Lovelace 最大 1B 参数、6B 唯一 token),把结论外推到前沿规模,恰好又踩进了这篇文章自己警告的”拟合区间外推”陷阱——用文章的标准审视文章引用的工作,它们同样要”carefully”。第三,toy simulation 由 ChatGPT 生成,参数取自 Besiroglu 的重拟合值,演示意义大于测量意义。

一个她没有明说的推论。 如果拟合对记账口径、损失精度、拟合区间如此敏感,那么各家实验室发布的 scaling law 系数几乎不可横向比较——除非公开完整的拟合协议(原始 (N,D,L)(N, D, L) 数据点、Huber δ\delta、优化器设置、参数计数口径)。Besiroglu 能抓出 Chinchilla 的 bug,只是因为碰巧能从论文图里抠出数据点。Scaling law 研究缺一个”可复现拟合”的规范,这可能比再多一篇新公式更有价值。

行动

  1. 亲手复现敏感性实验(最优先)。 用文中 Besiroglu 版真值 L^(N,D)=482.01N0.3478+2085.43D0.3658+1.8172\hat{L}(N,D) = 482.01 N^{-0.3478} + 2085.43 D^{-0.3658} + 1.8172 生成合成训练点,用 scipy 的 Huber loss + L-BFGS 拟合五参数,然后故意做三件事:损失从 4 位小数舍到 2 位、Huber 求和改成取平均、只用小模型区间拟合——看 NoptN_\text{opt} 的预测各偏多远。一个 notebook 的工作量,能把”外推放大误差”从口号变成手感。
  2. C6NDC \approx 6ND 对账。 找一个公开训练配置(比如 LLaMA 系的参数量和 token 数),算出理论 FLOPs,再除以公开的 GPU 卡时 × 单卡峰值算力,看 MFU 落在什么区间。这是把本文和 decode 带宽那篇连成”训推成本一张纸”的最短路径。
  3. 补一篇源头论文:Muennighoff et al. (2023)。 数据墙是接下来几年所有预训练叙事的底层约束,DD' 的指数衰减建模是目前最常被引用的定量框架,值得单独精读一次。

队列里的下一篇候选:Shunyu Yao 的《The Second Half》和 Allen-Zhu 的《Physics of Language Models: Part 4.1(Canon Layers)》。