技术博客

Chinchilla 定律:token 数与参数量的最优配比是怎么算出来的

第 116 / 147 篇 · 2026-08-17 · ai · 预训练scaling law计算最优

GPT-3 之后流行过一个经验直觉:"大模型配几万亿 token 就完了"。Kaplan 等人 2020 年的 scaling law 论文给出的定量建议是:把预算 predominantly 投给参数量——N 应随算力按 $C^{0.73}$ 增长,数据量只按 $C^{0.27}$ 增长。按这个口径,175B 的 GPT-3 用 300B token(约 1.7 token/参数)是"合理"的。DeepMind 2022 年的 Chinchilla 论文(Hoffmann et al., Training Compute-Optimal Large Language Models)重做这套拟合后给出了截然不同的答案:数据和参数应当等比增长,70B 模型配 1.4T token(20 token/参数)才算喂饱。这个分歧不是拟合技巧之争,而是损失函数形式假设不同导致的。这篇把 Chinchilla 的推导走一遍。

第一步:写出损失关于 N 和 D 的参数化形式

Chinchilla 的关键假设是损失可以分解为三项:

$$ L(N, D) = E + \frac{A}{N^{\alpha}} + \frac{B}{D^{\beta}}, $$

其中 $E$ 是不可约损失(irreducible loss,数据本身的熵),$A/N^\alpha$ 是模型规模不足带来的损失,$B/D^\beta$ 是数据量不足带来的损失。注意这里隐含了一个很强的假设:规模项与数据项可分离(separable)。Kaplan 用的是另一种形式 $L(N, D) = E + (A/N^{\alpha} + B/D^{\beta}) \cdot \exp\!\big(\tfrac{C_{\!E}}{N^{\alpha_E} D^{\beta_E}}\big)$,里面带一个 $N$、$D$ 耦合的指数修正项——形式更灵活,但也正是这个灵活性让它的最优配比向参数侧偏移。哪种形式对,只能靠实验裁决:拟合出的曲线外推到未参与训练的配置,看哪个预测准。

拟合方法本身值得一提:Chinchilla 训练了 400 个 70M–16B 的模型(每个配置 early-stop 到收敛),在 log 坐标下做 Huber 回归,得到 $E \approx 1.69$,$A \approx 406.4$,$B \approx 410.7$,$\alpha \approx 0.34$,$\beta \approx 0.28$。$\alpha$ 和 $\beta$ 都在 0.3 附近且量级相当——这个对称性是后面"等比增长"结论的直接来源。

第二步:约束优化求最优配比

给定总训练算力 $C$,前向反向一次的总 FLOPs 约为 $C \approx 6ND$(每个参数每个 token 一次乘加前向、两次反向)。计算最优问题就是在 $ND = C/6$ 的约束下最小化损失的可约部分 $A/N^\alpha + B/D^\beta$。

把约束代入消元:令 $M = C/6$,$D = M/N$,则

$$ f(N) = A N^{-\alpha} + B M^{-\beta} N^{\beta}. $$

对 $N$ 求导并令其为零:

$$ f'(N) = -\alpha A N^{-\alpha-1} + \beta B M^{-\beta} N^{\beta-1} = 0 \;\;\Longrightarrow\;\; N^{\alpha+\beta} = \frac{\alpha A}{\beta B}\, M^{\beta}, $$

$$ N_{\mathrm{opt}}(C) = \left(\frac{\alpha A}{\beta B}\right)^{\frac{1}{\alpha+\beta}} \left(\frac{C}{6}\right)^{\frac{\beta}{\alpha+\beta}},\qquad D_{\mathrm{opt}}(C) = \left(\frac{\beta B}{\alpha A}\right)^{\frac{1}{\alpha+\beta}} \left(\frac{C}{6}\right)^{\frac{\alpha}{\alpha+\beta}}. $$

代入 $\alpha \approx 0.34$、$\beta \approx 0.28$:$N_{\mathrm{opt}} \propto C^{0.50}$,$D_{\mathrm{opt}} \propto C^{0.50}$。两个指数都恰好在 0.5 附近——计算最优的模型,token 数与参数量成固定比例,Chinchilla 给出的数字是约 20 token/参数(approach 1,从拟合的 $L(N,D)$ 直接算 $D_{\mathrm{opt}}(N)$)。

log-log 坐标下的计算最优前沿:N* 与 D* 同为 C^0.5(Kaplan 则为 0.73 / 0.27) log10(训练 FLOPs C) → log10(N 或 D) Chinchilla: N_opt ∝ C^0.50 Chinchilla: D_opt ∝ C^0.50 Kaplan: N ∝ C^0.73 Kaplan: D ∝ C^0.27 70B × 1.4T token 数据侧欠训练区 参数侧欠训练区

第三步:为什么 Kaplan 和 Chinchilla 差这么多

表面上看是两个指数之争(0.73/0.27 vs 0.50/0.50),根源在损失函数形式。Chinchilla 论文做了一个很有说服力的对照实验:固定 17B 和 70B 两组模型,分别训练不同 token 量,对比两种参数化对未参与拟合的插值点的预测误差。结果可分离形式在中等规模外推上明显更准;Kaplan 形式在小模型上拟合得好,但外推时系统性地低估数据量的价值。

还有一个常被忽略的点:Kaplan 的实验里模型大多没有训到收敛(early-stop 在固定 token 预算处),数据项 $B/D^\beta$ 被"还没训完"污染了。模型没训饱时,增加数据量的边际收益被低估,拟合自然会把最优解推向"多堆参数"。Chinchilla 做了 approach 2(IsoFLOP profile):固定 $C$,扫若干 $(N, D)$ 组合,直接在每个 $C$ 下找经验最优配比,两种方法互相印证。

20 token/参数:起点不是终点

值得强调的是 Chinchilla 最优是给定训练预算下的最优,不是部署成本下的最优。两个推论推动了后来的实践偏离这条线。

超配数据(overtraining)换推理便宜。 同样的 $C$ 花在更多数据、更小模型上,训练 loss 最优;但部署时推理成本 $\propto N$。一个 4 倍数据、1/4 参数的模型,训练 loss 略高,推理却快 4 倍、显存省 4 倍。Llama 系列把这个逻辑推到极致:Llama 1 65B 训 1.4T(21 token/参数),Llama 3 405B 训 15.6T(38 token/参数),都"故意"违背 20 token/参数的 Chinchilla 点。这相当于把一部分"算力最优"换成"推理最优",只有当你要反复 serving 这个模型时这笔交换才划算——只训一次、永远供推理的 API 模型,多花的训练算力会被无数次摊薄。

下游能力指标不完全服从 L(N,D)。 Chinchilla 拟合的是验证集 loss,而能力涌现(推理、代码、多语言)对数据构成、质量的敏感度远高于对 token 总数的敏感度。于是出现了"算力最优"和"能力最优"的第二种背离:后者要求高质量数据占比更高、epoch 数更多,配比篇和退火篇讨论的就是这个方向的修正。

实操口径

如果手上只有一个 FLOPs 预算 $C$ 想知道该训多大:先用 $N_{\mathrm{opt}} \approx (C/6)^{0.5}$ 量级粗算(更精确可用 Chinchilla 拟合参数直接解上面那组式子),然后根据部署形态做修正——模型要长期 serving 就把 $N$ 往下压、$D$ 往上抬,压到推理成本可接受为止;数据质量足够高时可以承受更高的重复率(数据受限 scaling 篇讨论重复 epoch 的收益边界)。反过来,已有固定模型想补数据:用 $D_{\mathrm{opt}}(N)$ 算出"喂饱"该模型需要的 token 数,和实际差几倍,大致就对应着 loss 上 $B/D^\beta$ 项差多少,这能直接量化"继续训值不值"。

小结

Chinchilla 的结论是三步链条:假设可分离的损失形式 $L = E + A/N^\alpha + B/D^\beta$,用 400 个模型拟合出 $\alpha \approx \beta \approx 0.3$,再在 $6ND = C$ 约束下求极值得到 $N_{\mathrm{opt}} \propto C^{\beta/(\alpha+\beta)} \approx C^{0.5}$、$D_{\mathrm{opt}} \approx C^{0.5}$,即约 20 token/参数。它与 Kaplan 的分歧根源是损失参数化形式与未训到收敛的实验设计。20 token/参数是固定训练预算下的最优点;一旦把推理成本和数据质量纳入账本,主流模型系统性超配数据就是这个结论的合理外推,而不是对它的违背。