Scaling Law(缩放定律)是大模型时代最重要的经验规律之一。它回答了一个看似简单却极其关键的问题:当模型参数、数据量、计算量变化时,模型的损失(或者说性能)会以怎样的方式变化?OpenAI在2020年提出的Kaplan定律和DeepMind在2022年提出的Chinchilla定律,都指出了一个共同事实——模型损失与规模之间呈现平滑的幂律关系。理解这条规律,直接决定了你该训多大的模型、准备多少数据、花多少算力。

Scaling Law的基本形式与幂律关系
Scaling Law的核心是幂律(Power Law)。以Kaplan等人的工作为例,自回归语言模型的损失可以表示为参数量N、数据集大小D、训练计算量C的幂函数。其典型形式为:L(N, D) = [ (N_c / N)^(α_N/α_D) + D_c/D ]^(α_D),其中N_c和D_c是常数,α是幂指数。这个公式传递出一个重要信息:损失随规模增长呈亚线性下降,也就是说每降低同样多的损失,需要的资源增量会越来越大。
从直觉上理解,损失曲线在双对数坐标系下接近一条直线。这意味着把参数量从10亿提升到100亿,损失下降的幅度可能只是从2.6降到2.3左右。模型能力提升的边际收益是递减的,但并不归零——正是这种平滑递减的特性,支撑了各家机构持续堆算力的信心。
值得注意的是,Scaling Law描述的是预训练损失,而下游能力(比如推理、代码能力)往往存在涌现现象,即规模跨过某个阈值后能力突增。这也是为什么仅靠损失外推来预测具体能力并不总是可靠的原因之一。
Kaplan与Chinchilla:两种最优配比的分歧
Kaplan定律(2020)给出的结论是:在固定算力预算下,模型参数量的重要性高于数据量,建议用较大的模型配合相对较少的数据训练,数据量与参数量之比约为20 tokens/参数。而DeepMind的Chinchilla论文(2022)通过400多次实验修正了这一结论:应该用更小的模型喂更多的数据,最优比例约为20倍参数量的token数,即每增加1个参数大约需要20个训练token,两者基本同比例增长。
两者分歧的来源主要有两点。一是Kaplan实验未充分调整学习率调度,导致大模型被低估了最优训练步数;二是Chinchilla采用了更大的学习率衰减范围和更精细的网格搜索,覆盖了从7000万到160亿参数的模型。实践证明,Chinchilla配比在同等算力下能取得更低的最终损失。
举例来说,假设算力预算是10^22 FLOPs,按Chinchilla的估算方法,最优模型规模大约在100亿参数附近,对应约2000亿token的数据;而按Kaplan的结论则会训一个300亿参数的模型,数据量反而更少。前者在评测集上的表现普遍更好。
如何根据算力预算估算最优训练点
Chinchilla给出的实用估算方法基于经验公式:C ≈ 6ND,即训练计算量约等于6倍的参数量乘以token数(这个6来自前向2倍加反向4倍的乘加开销)。结合N与D应同步增长的最优条件,可以推导出N_opt ∝ C^0.5的近似结论。下面这段Python代码演示了如何根据算力预算计算最优参数量和数据量:
import math
def chinchilla_optimal(compute_flops: float):
"""根据总算力预算估算Chinchilla最优模型规模与数据量"""
# 经验近似: N_opt ≈ sqrt(C / 6 / 20),其中20为最优token/参数比
ratio = 20 # tokens per parameter
N = math.sqrt(compute_flops / (6 * ratio))
D = ratio * N
return N, D
C = 1e22 # 1e22 FLOPs 的算力预算
N, D = chinchilla_optimal(C)
print(f"最优参数量: {N/1e9:.1f}B")
print(f"最优数据量: {D/1e9:.1f}B tokens")
print(f"验证: 6ND = {6*N*D:.2e} (应接近 {C:.2e})")
实际工程中还需要考虑硬件效率。GPU的实际利用率通常只有MFU(Model FLOPs Utilization)衡量的40%到60%,因此墙钟时间预算要除以MFU再换算成FLOPs。例如1000张A100运行10天,理论峰值算力约为312 TFLOPs每卡,按50%的MFU计算,总预算约为1.3e23 FLOPs,再代入上面的公式即可得到合理的模型与数据配比。
真实场景中的偏离:过训与数据复用
Chinchilla最优是针对训练阶段计算的,并不考虑推理成本。如果模型上线后要服务海量用户,推理开销会远超一次性训练开销。因此工业界普遍采取小模型过训(Overtraining)策略:故意训一个远小于Chinchilla最优的模型,喂给它数倍于最优配比的数据。例如Llama 3 8B用了15万亿token训练,token/参数比接近1875,远超20的所谓最优值。训练时多花的算力,换来的是推理阶段每token成本的大幅下降。
另一个现实约束是高质量数据的稀缺。Chinchilla假设数据可以无限扩展,但互联网上高质量文本的总量是有限的。数据复用研究(如Muennighoff等人的工作)表明,数据重复4个epoch以内几乎没有负面影响,超过十几个epoch后损失下降会明显趋缓甚至反噬。因此在数据不够时,合理的做法是混合多轮复用与数据合成,而不是死守20倍的比例。
最后要提醒的是,Scaling Law只是预训练阶段的指南。进入后训练时代,指令微调、RLHF、强化学习带来的能力提升不完全遵循幂律,模型架构改进(如MoE、更好的tokenizer)也会改变曲线的常数项。正确的态度是把Scaling Law当作资源规划工具,而不是性能上限的判决书。
Scaling Law大模型训练模型规模修改时间:2026-09-15 15:08:47