零基础陪读 Scaling Laws:那篇深读读不动?你缺的其实只是一条直线

Scaling Laws 深读的陪读篇。用正方形、身高预测、餐巾纸记账几个能手算的真问题,把幂律、log-log 直线、拟合、外推、C≈6ND 五件工具逐件装好,每件装完立刻回扣深读原文。读完再回去,0.73 vs 0.5 之争会变成一个很直观的故事。

你读《Scaling Law 不是物理定律,是一次高杠杆的赌注》觉得吃力,不是底子问题——那篇深读的全部内容,其实都站在一条 log-log 图上的直线上:什么是幂律、为什么它在 log-log 纸上变成直线、怎么从散点拟合出直线、以及沿直线往外画(外推)时误差如何被放大。这一小块没垫好,NoptC0.73N_\text{opt} \propto C^{0.73} 就是天书;垫好之后,Kaplan 和 Chinchilla 在争什么是个连小学生都能听懂的故事。这篇陪读只做一件事:把五件工具逐个用手算装进你脑子,装好一件就回原文对一次账。

先把账算清楚。深读预设你能流畅做这五个动作,外加认识一批可以黑箱的术语:

#工具深读哪里在用它
1幂律(“次方”关系,不是”翻倍”关系)“损失随 N、D、C 幂律下降”、指数 α,β\alpha, \beta
2log-log 图(把幂律拉直的坐标纸)“log-log 图上一条直线”、0.73 vs 0.5
3拟合(从散点猜出公式参数)五参数公式 ANα+BDβ+E\frac{A}{N^\alpha} + \frac{B}{D^\beta} + E、Chinchilla 拟合 bug
4外推(直线的延长线 = 全部风险所在)“用小模型赌大模型”、Kaplan vs Chinchilla 之争
5C6NDC \approx 6ND(训练成本的餐巾纸记账)预算约束、“钱花在脑子还是书上”
黑箱词表Huber loss、L-BFGS、IsoFLOP、半衰期……

工具一:幂律——“次方”关系,不是”翻倍”关系

真问题:正方形边长从 1 米变 10 米,面积变多少?

面积 = 边长²,所以从 1 平米变 100 平米。边长 ×10,面积 ×100——输入放大多少倍,输出放大”多少倍的某次方”,这就是幂律:

y=cxky = c \cdot x^k

kk 叫指数,是幂律的灵魂;cc 只是个倍数。面积对边长是 k=2k=2 的幂律。

两个容易卡住的推广:

  • 指数可以是分数k=0.5k=0.5 就是开平方:xx 变 100 倍,yy 变 10 倍。
  • 指数可以是负数k=1k=-1 就是反比:xx 变 10 倍,yy 变成 1/10。负指数幂律 = “越多越好,但收益递减”的精确写法。

小心一个高频混淆:幂律 x2x^2 和指数增长 2x2^x 长得像、差得远。xx 从 10 涨到 20:x2x^2 从 100 涨到 400(4 倍),2x2^x 从 1024 涨到 100 多万(1000 倍)。幂律是”温和地弯”,指数是”爆炸”。Scaling law 里的全部曲线都是幂律,不是指数。

现在读 LLM 版本。深读里损失和模型大小的关系形如 L=cN0.3L = c \cdot N^{-0.3}NN 是参数量)。它在说什么?手算一下:NN 放大 10 倍,LL 变成 100.310^{-0.3} 倍。100.310^{0.3} 是多少?记住一个和 Big-O 陪读21010002^{10} \approx 1000 同源的近似:2101032^{10} \approx 10^3 两边开 10 次方,得 2100.32 \approx 10^{0.3}。所以——

“指数 −0.3 的幂律” = “模型每放大 10 倍,损失大约砍半”。

回扣原文:深读开头”训练损失 LL 随模型规模 NN、数据量 DD、算力 CC 幂律下降”,现在可以翻译成人话:三个量各自都满足”每放大 10 倍,损失按固定比例打折”。公式里的 α\alphaβ\beta 就是 NNDD 各自的”打折指数”——整场论战争的就是这两个数的测量值。

工具二:log-log 图——专门把幂律拉直的坐标纸

真问题y=3x2y = 3x^2,取三个点 (1,3),(10,300),(100,30000)(1, 3), (10, 300), (100, 30000)。对每个坐标取 log(以 10 为底,log30.48\log 3 \approx 0.48):

xxyylogx\log xlogy\log y
1300.48
1030012.48
1003000024.48

看右边两列:logx\log x 每加 1,logy\log y 恰好加 2。等差——这就是直线,斜率是 2,正好是原来的指数 kk。这不是巧合,是 log 的本职工作(把乘法变加法):

y=cxk  两边取 log  logy=logc+klogxy = c \cdot x^k \;\xrightarrow{\text{两边取 log}}\; \log y = \log c + k \cdot \log x

右边就是初中的 y=b+kxy = b + kx。所以:log-log 图是一种专门把幂律拉成直线的坐标纸,直线的斜率 = 幂律的指数,截距 = 那个不重要的倍数 cc

为什么非要拉直?因为直线是人类唯一敢放心延长的形状。弯曲的线你不知道它接下来怎么弯;直线拿把尺子就能画到纸外面去。整个 scaling law 的方法论就建立在这一步上。

回扣原文:深读第一段”幂律曲线在 log-log 图上表现为一条直线”,现在你知道为什么了。NoptC0.73N_\text{opt} \propto C^{0.73} vs NoptC0.5N_\text{opt} \propto C^{0.5}——0.73 和 0.5 就是两条 log-log 直线的斜率,Kaplan 和 Chinchilla 各自量了一次,量出来不一样。另外 Hestness 那条”换架构只能平移曲线、动不了斜率”的观察,翻译过来就是:架构改的是截距 cc(整条线上下挪),问题域决定斜率 kk(线的倾斜方式)——这正是”架构细节不如规模重要”的几何版本。

工具三:拟合——从一把散点里猜出公式的参数

真问题:我告诉你 y=cxky = c \cdot x^k,再给你两个实测点 (10,200)(10, 200)(1000,2)(1000, 2),求 cckk

在 log-log 纸上这两个点是 (1,log200)(1, \log 200)(3,log2)(3, \log 2),直线斜率 = log2log20031=22=1\frac{\log 2 - \log 200}{3 - 1} = \frac{-2}{2} = -1,所以 k=1k = -1,代回去得 c=2000c = 2000“拟合”就是这个动作的加强版:形状已知(幂律),用实测点反推公式里的未知参数。点多了不可能全部恰好穿过,就找”离所有点总体最近”的那组参数——这一步交给算法做。

深读里的主角公式有五个待猜参数 A,B,E,α,β\langle A, B, E, \alpha, \beta \rangle

L^(N,D)=ANα+BDβ+E\hat{L}(N, D) = \frac{A}{N^\alpha} + \frac{B}{D^\beta} + E

人话版:损失 = 模型不够大带来的损失(第一项,NN 越大越小)+ 数据不够多带来的损失(第二项,DD 越大越小)+ 无论如何都消不掉的底噪 EE。做法:训练几百个模型,每个得到一个实测点 (N,D,L)(N, D, L),然后调那五个旋钮,让公式尽量穿过所有点。

回扣原文:这就是 Chinchilla 的”方法 3”。原文里的 Huber loss(衡量”离散点多远”时对个别离谱点不敏感的一种量法)和 L-BFGS(自动调旋钮的算法)都可以黑箱。而 Besiroglu 抓出的那个 bug,人话版是:衡量”总体多近”时本该把每个点的误差加起来,代码里写成了取平均——数值变小了几百倍,调旋钮的程序以为已经调得很好,提前收工,交出了一组没调到位的参数。你看,五个参数、几百个点、一个求和写成平均,结论就偏了——这为工具四埋下伏笔。

工具四:外推——直线的延长线,也是全部风险所在

真问题:一个孩子 1 岁身高 76 厘米,10 岁 140 厘米。用这两点画条线,外推到 40 岁——身高约 3.5 米。

哪里错了?测量没错,画线也没错,错在生长曲线本身是弯的:小孩区间斜率大,成年后斜率归零。在弯曲的曲线上,你在哪个区间量斜率,就得到哪个区间的”局部规律”,拿它去外推区间外的世界就会造出 3.5 米的巨人。

再手算一个更贴近 scaling law 的账:假设真实斜率是 0.5,你量成了 0.6(就歪 0.1)。外推 3 个数量级(从 10 亿参数预测 1 万亿参数,×1000),预测值和真实值差多少?

100.1×3=100.32 倍10^{0.1 \times 3} = 10^{0.3} \approx 2 \text{ 倍}

斜率量歪 0.1,千倍外推之后预测直接差一倍。这就是深读标题里”高杠杆”三个字的字面意思:杠杆放大收益(几十个便宜小模型就能预测天价大模型),也同样放大每一粒测量误差。

回扣原文:现在 Kaplan vs Chinchilla 之争可以一句话讲完了——两家都在量同一条曲线的斜率,但量的区间不同。Kaplan 用的模型偏小(相当于在”小孩区间”量生长速度,量出 0.73),Chinchilla 的实验大了 10 倍以上(量出 0.5)。Pearce & Song 的调和分析证明这条曲线本来就是弯的:把”数不数 embedding 参数”这个记账差异建模进去后,“斜率”随算力增长而变化,在 Kaplan 的区间局部约等于 0.73,算力够大时收敛到 0.5。两家可能都没量错,只是都把局部斜率当成了全局定律。深读里”我旧认知的真冲突”那段说的就是这件事。

工具五:C6NDC \approx 6ND——训练成本的餐巾纸记账

最后一件工具是个记账公式,人话版:训练时每个 token 流过每个参数,大约花 6 次算术运算(前向算一遍花 2 次,反向传播修正参数再花 4 次——这个 2:4 的来历可以黑箱)。所以:

总算力 C6×N×D\text{总算力 } C \approx 6 \times N \times D

手算验证一下量级:7B(7×1097 \times 10^9)参数的模型训 2T(2×10122 \times 10^{12})token,C6×7×109×2×10128.4×1022C \approx 6 \times 7 \times 10^9 \times 2 \times 10^{12} \approx 8.4 \times 10^{22} 次运算——这就是为什么训练要论”多少万卡时”计价。

这个公式的真正用处是把问题变成跷跷板:预算 CC 固定时,N×DN \times D 是个定值——模型加倍,能训的 token 就得砍半。于是”怎么花钱”变成一道有唯一解的数学题:钱花在”更大的脑子”(NN)还是”更多的书”(DD)?Kaplan 的答案是脑子优先(算力 ×10 时,模型 ×5.5、数据只 ×1.8);Chinchilla 的答案是各占一半、等比例增长,换算出来就是那句著名的”每个参数配约 20 个 token”。

回扣原文:深读里”compute-optimal”(算力最优)说的就是这个跷跷板的最优支点;“IsoFLOP”直译”同算力线”——固定预算 CC,把不同的 NN 摆上去看谁损失最低,就是 Chinchilla 的方法 2。而那个著名的实证:同一笔预算,Google 训了 280B 参数 × 300B token 的 Gopher(脑子太大、书太少),DeepMind 按跷跷板重新配平训出 70B × 1.4T 的 Chinchilla,全面胜出——“大部分大模型都训得不够”这个结论就是这么来的。

词表:这些词放心黑箱,不影响主线

术语一句话人话需要更多吗
Huber loss衡量拟合误差时对个别离谱点不敏感的量法不需要
L-BFGS自动调参数旋钮的经典算法不需要
IsoFLOP”同预算线”:固定算力比较不同模型大小工具五已讲
指数衰减 / 半衰期重复数据每多用一遍,价值按固定比例打折读数据受限段落时够用
weight decay一种防过拟合的常规手段不需要
embedding 参数模型里负责”查字典”的那部分参数,小模型里占比不小知道”记账口径之争”即可
过拟合模型把训练数据背下来了,没学到规律值得以后单独垫一篇

现在回去重读

带着五件工具,建议按这个顺序重读深读

  1. 先读”原文在争什么”——三组证据现在应该全部落地:第一组是斜率之争(工具二、四),第二组是拟合 bug(工具三),第三组说”数据无限假设过期”,字面意思即可。
  2. 再读”连接与冲突”里的最后一段——“两篇论文在同一条曲线的不同区段量了斜率”,这就是 3.5 米巨人的故事(工具四)。
  3. “第一性原理拆解”里的公式段落——五参数公式(工具三)和跷跷板闭式解(工具五),推导过程可以跳,结论已经能读。
  4. 数据受限区域那两段最难,可以最后读或先跳过:只需要带走一句话——“当数据必须重复使用时,原公式失效,人们在给它打补丁,补丁的形状还在争论中”。

读完如果只记一件事,记这个:scaling law = 在 log-log 纸上用小模型的点画一条直线,然后赌它延长到纸外面还是直的。深读整篇讲的,就是这个赌注赢在哪、输过哪。