第 27 章:Scaling Law:规模为什么改变一切
本章问题:为什么模型变大、数据变多、算力变强后,能力会系统性提升?
预训练让模型从海量文本中学到了通用能力。但模型变大真的会更聪明吗?有没有规律可循?这一章引入 Scaling Law——loss 与规模之间的定量幂律关系。
27.1 一个出人意料的规律
2020 年,OpenAI 发表了一篇论文——《神经语言模型的缩放定律》。论文里提出了一条简洁到出人意料的经验规律:
模型的测试损失(test loss)与模型参数数量 N、训练数据量 D 和训练计算量 C 之间,存在光滑的幂律关系。
用大白话:当你同时按比例增加模型大小、训练数据量和训练算力时,模型的 loss 会以可预测的速度下降。 把 N、D、C 各翻一个数量级(参数变 10 倍、数据多 10 倍、算力加 10 倍),loss 就降一个稳定、可测的台阶。
这不是一个"越大越好"的模糊感——这是第一次被经验性验证在多个数量级上持续成立的定量关系。更重要的——这个规律在各种下游任务的表现上也有系统地改善,分布式的提升——而不是只在测试 loss 上。
这意味着你可以预测:如果把参数翻十倍,并且相应配套十倍数据和十倍计算,你的模型在还没有训练之前大概能在某个下游评测集合上预计有怎样的表现。
这给大模型时代的研究和商业带来了一个近似于工程预算表的依据——在给定的预算下,是否存在"最优的"参数-数据-算力分配方案?
27.2 三个维度——同一条曲线上的三个旋钮
Kaplan 等人(OpenAI, 2020)的原始结论包含三个核心观察:
规律一:模型越大,损失越低。 在足够的训练数据和算力的配合下,参数量 N 越大,最终测试损失 L 越低——L 与 N 的幂律关系在跨越七个数量级(从几千参数到几十亿参数)的研究中保持光滑稳定。
规律二:更多的数据也降低损失——但有衰减。 在固定算力预算下,只是增加参数而不增加数据会碰到边际递减——数据集相对模型太小会导致模型严重过拟合(模型有余量去记住噪声,而不是在泛化信号)。同样,固定数据量条件下无限增加参数也撞墙——数据不够时模型表现比同等数据量+较小模型的组合更差。
规律三:最优分配。 对于给定的计算预算 C,存在一个最优的参数数量 N 和最优的训练数据量 D——这两者之间的比例不是直觉能猜出的。原始论文算出了——在当时的研究条件下,N 和 D 应该同时随预算 C 成比例地增加,但权重的分配倾向于增加更多参数(而不是增加更多数据)来达到计算效率最优。
后来——2022 年 DeepMind 的 Chinchilla 论文修正了这条规律。它指出:原始论文中为了拟合计算效率最优,低估了数据的重要性。在同一个算力预算下,如果参数和数据同步扩大,最优的 token 数量和最优的参数数量应该以相近速度增长。也就是说,之前的很多大模型训练过度强调增加参数却训练不足;用更多的 tokens 去训一个不那么大的模型,反而可能达到更好的效果。
因此"最优分配"的比例不是一个定数——它是一个在不同实验室、不同模型架构之间仍在持续探索的调优目标。
27.3 Emergent Abilities:跨越临界点的惊喜
Scaling Law 初期被当作"loss 的稳定下降"来讨论。但到了 2021-2023 年间,研究者开始注意到:有些能力不是在 loss 下降的过程中平稳提升的——它们在小模型上根本不存在,直到模型规模跨过某个临界线后突然出现。
这些突然出现的能力被称为涌现能力(emergent abilities)。
例如:3B 参数以内的模型在多步算术推理上基本随机猜测。到了 10-20B 左右——突然开始能做对两三成。再往上——50B-100B 的区间——算术推理的正确率持续攀升。模型不是逐步学会加法的——它在某个参数量之前完全不会,过了阈值突然会了。
类似的涌现模式在多语言翻译、代码生成、逻辑演绎等任务上被反复报告。其解释尚无确定性答案——一个理论假设是这些能力需要足够多的高维参数自由度来编码一整个离散的"推理程序"层;在参数量不够时这块根本不可被编码,一旦维度跨过阈值——出现了这个完全新的功能。
涌现能力的意义在于:你不能用小型实验推测大型模型的能力。 这和传统 ML 的"先在 1% 数据上做实验验证可行性"的做法存在根本矛盾——一些关键能力在缩小版上不存在,你无法提前评估。
27.4 Loss 的刻度:用对数来看
Scaling Law 论文中随处可见的曲线有一个特征——画成对数-对数坐标后是直线。
对数-对数直线意味着幂律关系:L(N) ∝ N^(-α),其中 α 是一个相对小的正数。
为什么这样画?因为在跨越七个数量级的数据范围里,普通的线性坐标会把变化全部压缩到最左边——只有对数坐标才能同时显示几千参数和几十亿参数的行为。
这种图形也提醒我们:AI 规模相关的进步在原始数字上是极其不平衡的。从 1 亿到 10 亿参数这"加 10 倍"所涌现的新能力——比从 10 亿到 20 亿参数这"加 2 倍"要多得多。数量级的跃迁对能力的影响不是线性的。
27.5 最佳 Chinchilla 配方——没那么重要,也没那么不重要
Chinchilla 论文的重心是算出一个"最优分配公式"——在给定的训练计算预算下,应该怎么分配参数和 token。
但后来很多业界实践的共同结论是:达到"绝对最优分配"可能比论文中算的少几个百分点效果收益——但在参数和数据之间保持"对等增长"这个原则极为重要。 即:当你有越来越多的算力去训练模型时,不要只把模型变大(加了参数但不给模型读更多数据)——要把数据量同步增幅。
很多在 2020-2022 年间被认为是"大模型"的模型,后来被指出训练不足——它们在大量算力下用了过大参数的模型但读了不够多的 tokens,结果效果逊于后来的同预算下"稍小参数 + 多很多 tokens"的模型(如 Llama 系列)。
这些工程权衡的背后,Scaling Law 提供的是同一个核心信息:在变得更大之前,计算你有多少数据——然后在算力预算下分配二者。
27.6 Scaling 的尽头在哪
Scaling Law 的有效范围存在开放问题。
当前已知的经验是:在多个数量级上 Scaling Law 一直成立,但没有任何理论保证这种平滑幂律关系会无限延续——当模型的 loss 低于人类语料的固有噪声后,这种经验式关系可能遇到天花板。
此外,Scaling Law 只是预训练损失——模型在下游有用度、安全性、可校准性方面的 Scaling 不存在同样的规律。从预训练损失到"好产品"之间有一个不总随规模递增的鸿沟。预训练做得更好,但对齐(RLHF/指令微调)是另一个环节——这个环节本身的质量和下游可用性之间也存在不能被 Scaling Law 覆盖的部分。
很多研究者预期:数据质量(而不是数据规模)、推理时的 test-time compute(给模型更多思考时间)、异质架构和多智能体交互——这些会在下一个代际取代单纯的"预训练 Scaling"成为增长的主要来源。
27.7 本章小实验:对数密码
画两条直线。
直线 A:x = [1, 2, 4, 8, 16, 32],y = [100, 50, 25, 12.5, 6.25, 3.125]。每翻一倍 x,y 减半。 关系是 y ∝ 1/x。
直线 B:x = [1, 2, 4, 8, 16, 32],y = [100, 80, 64, 51.2, 41.0, 32.8]。每次 x 翻倍,y 减少约 20%。 关系是 y ∝ x^(-0.32)。
如果用线性坐标(x 轴 vs y 轴直接画),直线 A 和 B 的差别一眼看不出。但如果在 log-log 格子(x 轴对数、y 轴对数)上画——它们分别成直线,斜率分别是 -1 和 -0.32。
这个 -0.32 这个量级的斜率就类似于 Scaling Law 中的 α——一个不太大的数,但在对数坐标上稳定下降。
你可以在 Google Sheets 或 Excel 里生成这两组数据,分别用普通坐标和 log-log 坐标画出来。你会发现:Scaling Law 是一个对数空间的"驯服工具"——它并没有说"更大就一定多好",它说的是"如果你愿意用对数眼去看,每加一个数量级,你能预期收到约几个百分点的恒定比例改善。"
27.8 本章地图
27.9 本章结语——和卷三的终点
本章结束,卷三也收束了。
从第 17 章的"神经网络是不是一个复杂函数"到第 27 章的"规模为什么是可预测的"——卷三完整的逻辑线是:
下一步——卷四——你将看到这些发动机装上燃料起飞后的世界:ChatGPT、RLHF、从零训练 tiny GPT、LoRA、RAG、Agent、多模态,一直到 AI 安全和未来。
但在此之前,你已经穿过人工智能史上最重要的技术腹地。你看到的不是一个"神秘的东西在说话"——而是一层层清晰可辨的技术组件和训练公式的叠加。
这可能是这本书最"实在"的一卷。希望读完这十一卷后,你已经不觉得大模型是一个黑箱了——它是一个非常庞大、但也非常透明的轮系。
Discussion
留言区 · GitHub-powered comments via Giscus