Scaling laws are one of the most critical empirical findings in deep learning. The training loss L decreases predictably as we scale up model size N, dataset size D, and compute C, following a power-law curve. It is about how to allocate precious compute optimally between N and D.
缩放定律是深度学习中最重要的经验发现之一。其形式很简单:训练损失 L 随模型规模 N、数据量 D、计算量 C 的增大,沿幂律曲线可预测地下降(在双对数图上是一条直线)。可把缩放定律看作描述计算 ↔ 损失 ↔ 模型规模 ↔ 数据之间关系的框架;其核心是如何在 N 与 D 之间最优地分配珍贵的计算资源。这种可预测性在实践中极具价值:常见工作流是用少量小规模实验拟合缩放定律,再外推估算更大模型的 token 与算力需求。
缩放定律是当代"大力出奇迹"的理论依据。它回答了一个最值钱的问题:"给我 X 块 GPU、Y 个月,我该训多大的模型、喂多少 token,才能让 loss 最低?"。没有它,训练百亿千亿模型就是赌博;有了它,小公司也能像 OpenAI 一样规划算力。Lilian 这篇 2026 版标题加了 "Carefully"(谨慎),核心论点是:缩放定律形式虽简洁,但拟合它极其微妙——计数方式、精度、损失求和等"琐事"会让外推结果天差地别。这正是 Kaplan 与 Chinchilla 之争的根源。
The predictability of generalization error with scale had been investigated before scaling laws became mainstream. Amari et al. (1992) derived four types of learning curves. Hestness et al. (2017) found generalization error scales as a power law across domains; architecture changes the offset but not the exponent.
泛化误差随规模的可预测性,早在缩放定律成为主流概念前就被研究过。Amari 等(1992)用贝叶斯方法导出四类学习曲线:无噪数据+确定性算法+唯一解 ε ~ c·D⁻¹;多等价解 ε ~ c·D⁻²;有噪数据 ε ~ c·D⁻¹ᐟ²;随机算法+有噪 ε ~ c·D⁻¹ + E。四类都遵循幂律 ε ~ c·D^α + E。
Hestness 等(2017)横跨机器翻译、图像分类、语言建模、语音识别四个领域,发现反复出现的模式:泛化误差随数据规模等因子呈幂律;模型改进只平移误差曲线、不影响幂律指数;架构改变幂律拟合的偏移 E 但不改指数 α——斜率更像问题领域的属性而非模型架构。学习曲线分三阶段:小数据区(略好于随机)、幂律区、不可约误差区。Rosenfeld 等(2020)把误差建模为 N 和 D 的联合函数 L̂(D,N) ≈ A/N^α + B/D^β + E,只在更小的配置上训练即可外推。
Kaplan et al. (2020) popularized the concept of scaling laws in the language modeling community. The cross-entropy test loss L scales as a power law with each of N, D, and C across many orders of magnitude.
Kaplan 等(2020)在语言建模社区普及了缩放定律概念:交叉熵测试损失 L 与 N(不含嵌入层)、D、C 各自呈幂律关系,跨越多个数量级。模型规模 768M–1.5B 非嵌入参数、数据 22M–23B token。关键发现:
他们对 N 和 D 的联合依赖总结为单式:L̂(N,D) = [(a/N)^(α/β) + b/D]^β。由此得过拟合程度主要取决于比 N^(α/β) / D,即数据须按模型规模增长的比例同步增长以避免训练受数据限制。最具影响也最受争议的结论是计算最优分配:N_opt ∝ C^0.73,认为模型规模应比数据增长得更快——算力 10 倍时模型约 ×5.5、token 仅约 ×1.8。Chinchilla 后来推翻了这一建议,指出它让大模型严重训练不足。
C ≈ 6ND 的推导:排除嵌入层、标准配置下 N ≈ 12·n_layer·d_model²;每 token 前向 C_fwd ≈ 2N;反向是前向的两倍(对输入激活和权重各一次矩阵乘),故每 token 训练约 6N FLOPs,D 个 token 共 C ≈ 6ND。
The Chinchilla paper studied the optimal model size N and tokens D under a fixed compute budget C with a more careful experimental design and arrived at a somewhat different answer. N_opt ∝ C^0.5.
Chinchilla 论文(Hoffmann 等 2022)以更严谨的实验设计,研究固定算力预算 C 下最优模型规模 N(含嵌入的总参数)与 token 数 D 的关系,得到与 Kaplan 不同的答案。核心问题是:算力受限时(给定 GPU 跑给定时间,FLOPs(N,D)=C≈6ND),该选更多 token 还是更多参数?论文扫了 400+ 个模型(70M–16B+ 参数、5B–500B token),假设每个 token 唯一(无限数据区)。三种拟合方法:
L̂(N,D) = A/N^α + B/D^β + E,用 Huber 损失(δ=10⁻³,鲁棒于离群点)+ L-BFGS。三种方法一致得到 N_opt ∝ C^0.5——模型与数据应等速增长。对最优 N、D 还有闭式近似:在 6ND=C 约束下最小化 L̂,得 N_opt = (αA/βB)^(1/(α+β))·(C/6)^(β/(α+β)),D_opt = (C/6)/N_opt。当 α≈β 时模型与 token 等速缩放。
Chinchilla 是改变行业路线的论文。它用同一算力证明:在 Gopher(280B 参数、300B token)预算下,训一个 4 倍小但用 4 倍多 token 的 Chinchilla(70B 参数、1.4T token)全面超越 Gopher。结论颠覆了 Kaplan——彼时几乎所有主流大模型(GPT-3、Gopher、 Jurassic)都训练不足(undertrained):堆参数堆得太猛、数据喂得太少。此后业界转向"参数与数据 20:1"的配比(如 LLaMA-2 70B 用 ~2T token)。记住这个工程口诀:每翻倍参数,也要翻倍 token。
Chinchilla: instead of grow the model faster than the data (N_opt ∝ C^0.73), for every doubling of model size you should also double tokens (N_opt ∝ C^0.5). Why do they disagree so much?
两篇论文在底层原理上一致,但在"规模-token 最优权衡点"上分歧巨大。Chinchilla 认为:每翻倍模型规模也要翻倍 token(N_opt ∝ C^0.5),且应训小模型配更多数据。为什么差这么多?
N*\E ∝ C\E^0.73(非嵌入);Chinchilla:N* ∝ C^0.50(总数)。Pearce & Song(2024)做了透彻分析:用 N = N\E + ω·N\E^(1/3) 桥接总参数与非嵌入参数(严格递增、N→∞ 时 N/N\E→1)。代入 Chinchilla 式后,C\E 与 N\E 不再是干净幂律,只能局部近似 N*\E ∝ C\E^g,g 是基于一阶导的局部指数。可视化显示:随 C\E 增大,g 收敛到 Chinchilla 的 0.5;而在 Kaplan 实验的 768M–1.5B 区间,g 接近 Kaplan 的 0.73——两者其实在各自尺度上都不错,只是外推出了岔子。
这段是全文最精彩的"侦探故事"。Kaplan 和 Chinchilla 都没错,错在"用小尺度拟合外推大尺度"。教训对从业者极重要:(1) 嵌入参数占比在大模型中趋零,但在小模型不可忽略——计数口径不同会让指数漂移;(2) 双对数外推会把毫厘之差放大成天壤之别。所以用小模型拟合的缩放定律预测大模型,必须极度谨慎。这也是 Lilian 加 "Carefully" 的主因。
幂律在 AI 之外的许多领域(Zipf 律、无标度网络、城市缩放律)普遍存在。对 LLM 缩放定律为何也呈幂律有两种解释:(1) 数据流形假设(Sharma & Kaplan 2020)——语言建模是在数据的低维流形上做回归,更多参数把流形分得更细,有效规模 N 的模型把 d 维流形分成 O(N) 区域,典型线性分辨率 ~N^(−1/d),与缩放定律同形;(2) 量子化技能假设(Michaud 2023、Brill 2024)——知识/技能按离散块学习,技能频率分布服从幂律,模型先学常见技能后学稀有技能,造成平滑的幂律衰减。
Classic scaling laws assume unlimited unique data, no repetition, no multi-epoch. As the model size grows, we are running out of enough high-quality unique tokens — the "data wall". The dataset behind D is expected to be already cleaned.
经典缩放定律假设无限唯一数据、不重复、无多轮训练。但随着模型规模增大,高质量唯一 token 即将耗尽——所谓"数据墙"。须强调 D 背后的数据集应已清洗:去重(精确+模糊)、质量过滤、样板去除、安全过滤、PII/版权遮蔽、基准去污染、按语言/质量/内容类型谨慎加权。同样 token 数 D,高质量数据与"互联网泔水"算力效率天差地别。
Hernandez 等(2022)研究受控设定:90% 不重复 + 10% 重复。训 100B token 时观察到双下降(double descent)——测试损失随重复比例先变差再变好,重复比例越高越明显,中间平缓或上升阶段疑似源于对重复数据的记忆。这种形状让缩放定律拟合变差,且重复数据伤害 OOD 评估与下游微调。
Muennighoff et al. (2023) studied how compute should be allocated when training is data-constrained. A token's value decays exponentially as it is repeated.
Muennighoff 等(2023)研究数据受限时如何最优分配算力,跨约 400 个实验(10M–9B 参数、至 900B token、至 1500 epoch)。关键建模调整是把总 token 数 D 拆为唯一 token 数 U_D 与重复次数 R_D(即 epoch 数−1):D = U_D·(1+R_D)。核心直觉——token 的价值随重复指数衰减,每次重复让 token 损失剩余价值的 (1−1/r_D) 比例,r_D 是可学的半衰期参数:
一个已知弱点:该建模显著低估失败模型(训练中途损失上升的模型,如训了 44 epoch 的)的最终测试损失。
Lovelace 等(2026)换思路:不再把过参数化建模为有效规模的递减回报,而是显式建模模型规模 × 数据重复的交互。约 300 个模型(15M–1B 参数、50M–6B 唯一 token)。观察直观:epoch 越多伤害越大,且更大模型对重复更敏感——提示损失惩罚同时是模型规模与数据规模的函数。引入围绕容量比 N/U_D 的显式过拟合惩罚项:
红项是直接过拟合惩罚,随"重复多少次"和"模型相对唯一数据多过参数化"共同增长。他们还做了权重衰减案例研究:强权重衰减能减轻数据重复造成的过拟合惩罚。关键结论:实证拟合发现过量参数价值的衰减快于重复数据(r_N < r_D),所以资源应更多投入多跑几个 epoch,而非堆更多参数。
数据受限区是后 Chinchilla 时代最前沿。现实是:互联网高质量文本快用完了,大家不得不重复数据训练。两篇工作给出了相反但都重要的工程结论:Muennighoff 说"重复一次,token 价值打折"(指数衰减,有上限);Lovelace 进一步说"重复伤害随模型规模放大——大模型更娇气"。实用启示:(1) 清洗与去重比加数据更划算;(2) 与其加参数不如多跑 epoch(Lovelace);(3) 权重衰减是数据受限训练的便宜解药。这也解释了为何业界开始押注合成数据——因为真人类文本已不够"喂"缩放定律了。
Despite its clean form, scaling law fitting can be surprisingly sensitive to seemingly trivial procedural choices — how you count parameters, round precision, sum or average loss. Because a scaling law is only fit on small cheap models and the prediction is extrapolated orders of magnitude larger.
尽管形式简洁,实践中缩放定律拟合对看似琐碎的程序选择极其敏感——怎么数参数、精度怎么取、损失怎么求和/求平均。因为缩放定律只在能负担得起的小模型上拟合,预测却要外推几个数量级到更大的模型;这种设定下"舍入误差级别"的选择可能造成预测的剧烈分歧。拟合还假设"唯一变化的因素是规模"——架构、优化器、学习率调度、batch ramp、数据混合、分词器都应保持不变,且这些设置都已被精心调过(欠训练模型会导出不同结论)。
Kaplan 与 Chinchilla 的分歧就是一例。第二例是为什么 Chinchilla 方法 3 比另两种方法略有偏差。Besiroglu 等(2024)从原图提取原始 (N,D,L) 数据点重跑方法 3,发现若干具体问题:(1) L-BFGS-B 最小化器中损失标度过高(对 Huber 损失取平均而非求和),导致优化提前终止;(2) 原始拟合与 bootstrapping 中的早停产生不一致估计与不合常理的过窄置信区间;(3) 报告的 α、β 只取 2 位精度,使导出的 A、B 看起来比实际更偏。
玩具模拟揭示了三种失效模式(以 Besiroglu 等 2024 估计的 L̂(N,D) = 482.01·N^(−0.3478) + 2085.43·D^(−0.3658) + 1.8172,即 N_opt ∝ C^0.5126 为真值):(1) 损失精度——把损失四舍五入会改变拟合参数;(2) 损失噪声——仅毫损失级(0.001 倍)的扰动就导致不同拟合;(3) 拟合区域敏感性——只用小模型、只用中模型、用全部模型会得到不同的表观缩放定律。
这是全文最"劝退"也最务实的一节,给所有想自己拟合缩放定律的人三句箴言:(1) 别在小模型上拟合就敢外推大模型;(2) 损失别随便取平均/四舍五入——舍入误差在双对数外推里会被指数级放大;(3) 拟合区域要覆盖目标尺度,否则你测量的不是缩放定律,而是噪声。Lilian 的潜台词:缩放定律"形式干净"是个美丽的误会,它的可靠性高度依赖实验纪律。这也解释了为什么顶级实验室把缩放实验当作最机密的核心能力——它直接决定下一代的算力采购与训练计划。