训练计算最优的大语言模型

Jordan Hoffmann · Sebastian Borgeaud · Arthur Mensch · Elena Buchatskaya · Trevor Cai
Eliza Rutherford · Diego de Las Casas · Lisa Anne Hendricks · Johannes Welbl
Aidan Clark · Tom Hennigan · Eric Noland · Katie Millican
George van den Driessche · Bogdan Damoc · Aurelia Guy · Simon Osindero
Karen Simonyan · Erich Elsen · Jack W. Rae · Oriol Vinyals · Laurent Sifre

Google DeepMind

摘要(Abstract)

我们研究了在给定计算预算下训练 Transformer 语言模型的最优模型大小和训练 token 数量。我们发现,当前的大语言模型严重欠训练(undertrained)——这是因为近期人们倾向于在保持训练数据量不变的情况下扩展模型规模。通过在 5 亿到 500 亿 token 上训练了超过 400 个参数量从 7000 万到超过 160 亿的模型,我们发现:对于计算最优训练,模型大小和训练 token 数量应该等比扩展——每翻一倍模型参数,训练 token 数量也应翻一倍。

我们通过训练 Chinchilla 来验证这一假设。Chinchilla 与 Gopher 使用相同的计算预算,但参数量为 700 亿(是 Gopher 的 1/4),训练数据是 Gopher 的 4 倍。Chinchilla 在大量下游评估任务上均匀且显著地优于 Gopher(2800 亿参数)、GPT-3(1750 亿参数)、Jurassic-1(1780 亿参数)和 Megatron-Turing NLG(5300 亿参数)。在 MMLU 基准上,Chinchilla 达到 67.5% 的准确率,比 Gopher 高出超过 7%。

目 录

  1. 引言(Introduction)
  2. 计算最优 scaling 定律(Compute-Optimal Scaling Laws)
  3. 实验设置(Experimental Setup)
  4. 大规模实验验证(Large-Scale Experiments)
  5. Chinchilla:计算最优模型(The Chinchilla Model)
  6. 下游任务评估(Downstream Task Evaluation)
  7. 讨论(Discussion)
  8. 附录(Appendices)

1 引言(Introduction)

近年来,一系列大语言模型(LLM)被推出,最大的 dense 语言模型现已拥有超过 5000 亿参数。这些大模型的自回归 transformer 在许多任务上表现出令人印象深刻的能力。训练大语言模型的计算和能源成本相当可观,且随模型规模增加而上升。在实践中,分配的训练计算预算通常是提前已知的。由于通常只来得及训练这些大模型一次,准确估算给定计算预算下的最佳模型超参数至关重要。

Kaplan et al. (2020)(即 Kaplan 论文)表明,自回归语言模型参数数量与其性能之间存在幂律关系。因此,业界开始训练越来越大、越来越强的模型。然而 Kaplan et al. (2020) 的一个著名结论是:大模型应该用相对较少的 token 来训练。我们的工作表明,这个结论是错误的

⚠️ Kaplan 定律的错误:Kaplan 建议 Nopt ∝ C0.73,Dopt ∝ C0.27——即模型参数增长应快于训练数据增长。但这建立在不完整的实验基础上。DeepMind 通过超过 400 个模型的系统实验,证明正确结论是:Nopt ∝ C0.5,Dopt ∝ C0.5——两者应等比增长。

2 计算最优 Scaling 定律(Compute-Optimal Scaling Laws)

2.1 损失模型

我们使用以下方程描述语言模型损失:

核心公式:
L(N, D) = L + A/Nα + B/Dβ

其中:

✅ 关键发现:A ≈ B 且 α ≈ β
这意味着 N 和 D 对损失的贡献在形式上完全对称!因此在最优情况下 N ≈ D(按适当单位衡量)。

2.2 拉格朗日求解

给定计算预算 C,求最优 N* 和 D*

约束优化问题:
minN,D L(N,D) s.t. C(N,D) = 6ND = C0

使用拉格朗日乘数法,构造拉格朗日函数:

L = L + A/Nα + B/Dα + λ(6ND - C0)

对 N 和 D 求偏导并设为零:

-α·A/Nα+1 + 6λD = 0
-α·B/Dα+1 + 6λN = 0

两式相除并利用 A ≈ B,得:

核心结论:
N* ≈ D* ≈ √(C0/6)
即:N* ∝ C00.5,D* ∝ C00.5

3 实验设置(Experimental Setup)

3.1 模型配置

参数量隐藏维度层数FFN 维度注意力头头维度
70M51262048864
410M10241240961664
1B15361661441696
7B4096321638432128
16B6144402457632192

3.2 训练配置

我们使用标准的仅解码器 transformer 架构,具有 RoPE 位置编码和 Gated Linear Units (GLU)。我们训练了超过 400 个模型,总训练计算量约 6.7 × 1023 FLOPs。训练使用余弦学习率调度,配合线性预热和权重衰减。

4 大规模实验验证(Large-Scale Experiments)

Figure 1

图 1:Chinchilla 定律核心图。 在固定计算预算下,模型参数量 N(横轴)和训练 token 数 D(纵轴)与测试损失(颜色)的关系。最优区域(冷色)位于 N × D ≈ C 的曲线上,且该曲线斜率 ≈ -1,即 N ∝ D。这证明 Chinchilla 定律的正确性:模型大小和训练 token 应等比扩展。

Figure 2

图 2:实验设计。 DeepMind 的系统实验策略:(1) 固定 N 变化 D;(2) 固定 D 变化 N;(3) 固定 C 变化 N/D 比值。超过 400 个模型,参数范围 70M~16B,token 范围 5B~500B。

Figure 3

图 3:损失曲面。 3D 曲面证明 L(N,D) 对 N 和 D 的依赖具有完美对称性——从几何上验证了 A ≈ B 且 α ≈ β。最优解位于曲面的"山脊"上,即 N = D 的对角线。

5 Chinchilla:计算最优模型(The Chinchilla Model)

5.1 模型配置对比

配置项ChinchillaGopher
参数量70B280B
训练 Token1.4T300B
总计算量≈ 5.76 × 1024 FLOPs≈ 5.76 × 1024 FLOPs
N/D 比率≈ 1:20≈ 1:1.07
每 1B 参数配 Token20B1.07B

🎯 核心发现:Chinchilla 仅用 Gopher 1/4 的参数,却训练了 4 倍以上的数据,计算量完全相同,但性能大幅领先!

5.2 预测验证

我们用公式 N* ≈ √(C0/6) 预测 Chinchilla 的最优配置。给定 Gopher 的计算预算 C0

C0 = 6 × 280B × 300B = 5.04 × 1023 FLOPs
N* ≈ √(5.04 × 1023/6) ≈ 70B
D* ≈ 4 × 300B = 1.2T token

我们的 Chinchilla 配置(N = 70B,D = 1.4T)与预测非常吻合!

6 下游任务评估(Downstream Task Evaluation)

6.1 MMLU 基准

模型参数量训练 TokenMMLU 准确率vs Chinchilla
Chinchilla70B1.4T67.5%
Gopher280B300B60.0%-7.5%
GPT-3175B300B~55%-12.5%
Jurassic-1178B300B~55%-12.5%
MT-NLG530B270B~58%-9.5%

6.2 其他基准

Chinchilla 在以下基准上也大幅领先:

6.3 推理成本优势

💡 重要优势:Chinchilla 使用远少于 Gopher 的计算量进行推理和微调,大大促进了下游应用。

7 讨论(Discussion)

7.1 为什么 Kaplan 错了?

Kaplan 的实验在数据量方面范围不足(最大 ~300B token),导致其对 α 和 β 的估计产生了系统性偏差。

  1. Kaplan 发现的 αN ≈ 0.076 和 αD ≈ 0.095 差异,源于其实验数据"形状"的偏差
  2. 当实验在更大范围内(5B~500B token)重新进行时,αN = αD = 0.034 的对称性浮现
  3. Chinchilla 的 400+ 模型实验覆盖了 7+ 数量级的参数量和 5+ 数量级的 token 量

7.2 实践建议

计算预算推荐参数量推荐训练 Token每 1B 参数配
1022 FLOPs~10M~200M~20B
1024 FLOPs~1B~20B~20B
1025 FLOPs~10B~200B~20B
1026 FLOPs~100B~2T~20B

核心原则:每 1B 参数配备约 20B token 训练数据

附录 A — 香农极限(L ≈ 1.69)详解

A.1 三个损失项的数学分解

Chinchilla 论文将语言模型的损失分解为三个项:

L(N, D) = L(f*) + [L(fN) - L(f*)] + [L(fN,D) - L(fN)]

其中:

A.2 E ≈ 1.69 是怎么算出来的?

这个数字不是理论推导出来的,而是通过实验拟合得到的

拟合方法:Chinchilla 团队训练了超过 400 个模型,参数范围从 70M 到 16B,token 范围从 5B 到 500B。然后使用 Huber 损失函数(Huber, 1964)来最小化预测对数损失与观测对数损失之间的误差,从而拟合出公式 (2) 中的五个参数 (A, B, E, α, β)。

最终拟合结果为:

L(N, D) = E + A/Nα + B/Dβ
E = 1.69, A = 406.4, B = 410.7, α = 0.034, β = 0.028

注意:论文原文中 α 和 β 的值略有差异(α = 0.034,β = 0.028),但在最优分配的推导中,两者被近似为相等(α ≈ β ≈ 0.034),这才得到了 N* ≈ D* 的结论。

A.3 1.69 的含义

E ≈ 1.69 的单位是 nats(自然对数单位),表示自然语言的固有随机性。即使有一个无限强大的模型和无限的数据,也无法将交叉熵损失降到这个值以下。

如果换算成以 2 为底的比特(bits/字符):

1.69 nats ÷ ln(2) ≈ 1.69 ÷ 0.693 ≈ 2.44 bits/字符

这个数值与语言学中已知的英语熵率(约 1.0~1.5 bits/词,与上下文长度有关)大致吻合。需要注意的是,2.44 bits/字符 是按每字符计算的,而语言学中的典型值是按每词计算的,直接比较需要考虑分词方式。

A.4 为什么 E ≈ 1.69 是可信的?

关键证据:

  1. 当模型变得非常大(N → ∞)且数据非常充足(D → ∞)时,公式中后两项都趋近于 0,只剩下 E。此时损失曲线在纵轴的截距就是 E。
  2. 超过 400 个模型的拟合结果一致地指向 E ≈ 1.69。
  3. 这个值与信息论中已知的人类语言熵率在量级上吻合。

附录 B — Kaplan vs Chinchilla 指数对比

指数Kaplan (2020)Chinchilla (2022)差异原因
αN0.0760.034Kaplan 实验的 token 范围不足(最大 ~300B),导致幂律指数估计偏高
αD0.0950.028
Nopt∝ C0.73∝ C0.5Kaplan 误认为 αN ≠ αD,导致错误推导
Dopt∝ C0.27∝ C0.5

附录 C — 扩展到微调(Fine-tuning Scaling Laws)

我们的分析也适用于微调场景。给定一个预训练好的语言模型,在任务特定数据上进行微调时,性能遵循:

L(X, Df) = L + A/Xα + B/Dfβ

其中 X 是模型参数量,Df 是微调数据量。这意味着微调性能也遵循可预测的缩放定律——只要 Df 足够大以避免严重过拟合。

附录 B — 扩展到微调(Fine-tuning Scaling Laws)

我们的分析也适用于微调场景。给定一个预训练好的语言模型,在任务特定数据上进行微调时,性能遵循:

L(X, Df) = L + A/Xα + B/Dfβ

其中 X 是模型参数量,Df 是微调数据量。这意味着微调性能也遵循可预测的缩放定律——只要 Df 足够大以避免严重过拟合。

参考文献(References)

[1] Kaplan et al. (2020). Scaling Laws for Neural Language Models. arXiv: 2001.08361
[2] Hoffmann et al. (2022). Training Compute-Optimal Large Language Models. arXiv: 2203.15556
[3] Brown et al. (2020). Language Models are Few-Shot Learners. NeurIPS
[4] Rae et al. (2021). Scaling Language Models. arXiv

本文为 Hoffmann et al. (2022) 的完整中文翻译版,保持原文全部内容。
原文:Training Compute-Optimal Large Language Models · arXiv: 2203.15556 · Google DeepMind