Scaling Laws
缩放定律是用于预测模型参数、数据和计算量增长时损失如何下降的幂律拟合。涵盖 Kaplan、Chinchilla 和测试时扩展。
神经网络缩放定律是经验性的幂律关系,用于预测随着三种资源增长,模型损失如何下降:参数数量(N)、以 token 计的训练数据量(D),以及以浮点运算次数计的训练算力(C)。这些曲线在多个数量级范围内保持平滑,因此实验室可以用小规模、低成本的运行拟合曲线,再进行外推,在投入大规模运行之前确定其规模和数据预算。例如,OpenAI 的 GPT-4 报告根据算力不超过其千分之一的模型,预测了最终模型性能的若干方面。最知名的定律描述的是语言建模,同样的方法也适用于视觉、语音和推理模型。
Kaplan 缩放定律#
Jared Kaplan 领衔的 OpenAI 研究人员于 2020 年发表了《神经语言模型的缩放定律》。他们发现,Transformer语言模型的交叉熵损失与 N、D 和 C 呈幂律关系,有些趋势跨越了七个以上的数量级;而在很大的范围内,宽度、深度和其他架构细节的影响都很小。更大的模型也有更高的样本效率,因此论文得出的结论是:计算效率高的训练方式是使用非常大的模型和相对适量的数据,并在收敛前很久就停止训练。GPT-3遵循了这一方案,使用 3,000 亿个 token 训练了一个拥有 1,750 亿个参数的模型。
Chinchilla 与计算最优训练#
DeepMind 的 Chinchilla 研究训练了 400 多个模型,参数规模从 7,000 万到 160 多亿,训练数据从 50 亿到 5,000 亿个 token,得出了不同的结论:在固定计算预算下,模型规模和训练 token 数量应按相同比例增长,因此参数数量每翻一倍,数据量也应翻一倍。Chinchilla 本身的算力消耗与拥有 2,800 亿参数的 Gopher 相同,但它只有 700 亿个参数,数据量约为 Gopher 的四倍;其表现超过了 Gopher、GPT-3 和拥有 5,300 亿参数的 Megatron-Turing NLG。该研究将损失拟合为 L(N, D) = E + A / N^α + B / D^β,其中 E 是自然文本不可约的损失,另外两项会随着模型规模和数据量增加而减小。训练成本约为每个参数、每个 token 消耗 6 FLOPs,因此 C ≈ 6ND;针对给定的 C 最小化拟合损失,就能得到计算最优模型:
import numpy as np
# Chinchilla loss fit L(N, D) = E + A / N^alpha + B / D^beta, as re-estimated by Besiroglu et al. (2024)
E, A, B, alpha, beta = 1.8172, 482.01, 2085.43, 0.3478, 0.3658
# Training costs about 6 FLOPs per parameter per token, so a budget C fixes D = C / (6N)
N = np.logspace(8, 13, 10_000)
for C in [1e21, 1e23, 5.76e23, 1e25]:
D = C / (6 * N)
loss = E + A / N**alpha + B / D**beta
best = loss.argmin()
print(
f"C={C:.2e} FLOPs: {N[best] / 1e9:6.1f}B params, {D[best] / 1e12:5.2f}T tokens, "
f"{D[best] / N[best]:.0f} tokens/param, loss {loss[best]:.3f}"
)这些系数来自 Epoch AI 对 Chinchilla 拟合结果的复现,修正了原论文的第三项估算。在 Chinchilla 的 5.76 × 10^23 FLOPs 预算下,拟合结果选出 722 亿个参数和 1.33 万亿个 token,接近 Chinchilla 实际使用的 700 亿个参数和 1.4 万亿个 token;对于从 10^21 到 10^25 FLOPs 的所有预算,结果都落在每个参数对应 17 到 22 个 token 之间,与约 20 个 token 的常用经验法则一致。
超越计算最优#
Chinchilla 规则只优化训练算力,而已部署模型的成本则会在每次查询时产生。训练远超计算最优点的小模型,服务成本更低:Meta 指出,拥有 80 亿参数的模型在 Chinchilla 最优条件下需要约 2,000 亿个 token,但 Llama 3 8B 在增加到 15 万亿个 token 时仍按对数线性趋势持续提升,这也是小型语言模型(SLM)通常会进行过度训练的原因。数据供应是另一个限制。2023 年一项关于数据受限缩放的研究发现,与使用唯一数据相比,最多对重复数据训练四个周期,对损失的影响微乎其微;而合成数据可以进一步扩大训练数据的供应。
测试时计算扩展#
另一个维度是在推理时投入算力。推理模型,例如 OpenAI 的 o1,会在作答前生成很长的思维链;OpenAI 在 2024 年报告称,增加强化学习算力和延长思考时间都能提高 o1 的准确率。Google DeepMind 和 UC Berkeley 关于扩展测试时计算的一项研究发现,计算最优策略(例如使用过程奖励模型(PRM)进行搜索)的效率比 best-of-N 采样高出四倍以上;对于小模型有一定成功率的问题,增加测试时计算后,小模型在相同 FLOPs 下的表现可以超过大 14 倍的模型。
计算机视觉中的缩放#
视觉模型也遵循相同规律。Google 的 Scaling Vision Transformers研究训练了一个拥有 20 亿参数的视觉 Transformer(ViT),在 ImageNet上达到了 90.45% 的 top-1 准确率。Ultralytics YOLO26通过一个模型 YAML构建五种尺寸,其中的 scales 条目设置深度和宽度乘数以及通道上限,范围从 n: [0.50, 0.25, 1024] 到 x: [1.00, 1.50, 512]。在 COCO上,平均精度均值(mAP)从拥有 240 万参数的 YOLO26n 的 40.9 提升到拥有 5,570 万参数的 YOLO26x 的 57.5;参数量增加了 23 倍,mAP50-95 提高了 16.6 个点。










