Chinchilla:算力最优的大模型训练法则

  • 关联论文:2203.15556
  • 作者:flyP
  • 更新:2026-08-14

一句话结论

Chinchilla 通过对 400+ 个 70M–16B 参数、5B–500B tokens 的 Transformer LM 做系统性消融拟合,得到一条"算力最优训练"的近 Iso-FLOP 边界:模型参数与训练 tokens 应按等比例同步放大——并以此把 Gopher(280B)换成一个 70B / 4× 数据的小模型 Chinchilla,在 MMLU 等下游任务上反超 Gopher 7 个百分点以上。

它要解决的真问题

2022 年初,LLM 训练"参数 scaling law"成为主流叙事:Kaplan et al.(2020)与 OpenAI 内部研究都主张"参数越大越好",于是 GPT-3(175B)、Gopher(280B)、Jurassic-1(178B)、Megatron-Turing NLG(530B)都把模型做得很大、训练数据相对较小(~300B tokens 量级)。Hoffmann 等人发现:

  1. 模型被严重欠训练——把 Gopher 的算力预算固定,参数翻倍后训练 tokens 没翻倍时,模型是"被算力预算浪费了"。
  2. 缩放律的拟合系数有问题——既有 scaling law 在小模型区间推出来的"最优参数/数据比"外推到 100B+ 区间时严重偏差。
  3. 下游部署成本被忽视——大模型推理贵、fine-tuning 贵;同样算力预算下"小而多训"模型推理性价比显著更高。

核心问题变成:给定一份训练算力 C,应在 N(参数量)与 D(训练 tokens)之间如何分配?

核心方法(机制 + 关键公式)

1. FLOPs 预算与 IsoFLOP 曲线

Transformer 训练一次前向+反向的 FLOPs ≈ 6ND(C ≈ 6ND,N=非嵌入参数量,D=训练 tokens 数;Kaplan 早就提过这条近似)。固定 C,做若干组(N, D)实验:

对每个 C_k ∈ {某个算力档}:
   for N_i 在 [70M, 16B] 内扫 ~5 个尺寸:
       D_i = C_k / (6 N_i)
       训练 (N_i, D_i) 这一对
       记录最终 loss L(N_i, D_i)

对每个 C_k,把 L 关于 N 拟合得到最优 N_opt(C_k) 与对应最优 D_opt(C_k) = C_k / (6 N_opt)

2. 拟合 scaling law

论文通过对 400+ 个 trained model 的 IsoFLOP 末端 loss 做最小二乘拟合,得到:

L(N, D) = E + A / N^α + B / D^β

其中: - E ≈ 不可约 loss(数据熵/任务固有噪声) - α ≈ 0.34 - β ≈ 0.28 - A、B 是拟合常数

把 (α, β) 联立 C = 6ND 求偏导,得:

N_opt(C) ∝ C^0.50
D_opt(C) ∝ C^0.50

关键结论:模型规模与数据应当以相同指数随算力放大(IsoFLOP 比例 ~1:1 token/param)

3. Chinchilla:用 Gopher 算力预算做"算力最优"模型

Gopher 配置:N ≈ 280B 参数,D ≈ 400B tokens,C ≈ 5.76e23 FLOPs。

Chinchilla:N = 70B 参数,D = 1.4T tokens(≈ 4× Gopher 的数据量),C 同样 ≈ 5.76e23 FLOPs。

模型 参数量 训练 tokens 算力预算
Gopher 280B 400B ≈ 5.76e23 FLOPs
Chinchilla 70B 1.4T ≈ 5.76e23 FLOPs
GPT-3 175B 300B 略高
Jurassic-1 178B 300B 略高
Megatron-Turing NLG 530B 270B 显著高于 Chinchilla

Chinchilla 比 Gopher 少了 4× 参数量,但多了 3.5× 训练 tokens——这就是"scaling law 给出的最优分配"。

关键实验与数据

MMLU(57 个学科大规模多任务语言理解)

  • Chinchilla 70B:67.5% 平均准确率
  • Gopher 280B:60.0% 左右
  • GPT-3 175B:~50%
  • 绝对提升:≥ 7 个百分点(论文摘要主推)

BIG-bench(大规模 200+ 子任务基准)

  • Chinchilla 在 204 项任务中有 102 项反超 Gopher

闭卷问答 / 阅读理解

  • Natural Questions(闭卷):Chinchilla 略优于 Gopher
  • TriviaQA:Chinchilla 显著优于 Gopher
  • MMLU / HellaSwag / PIQA / WinoGrande 等综合 LM Evaluation Harness:Chinchilla 全面领先

推理 / 微调效率

  • 70B 相比 280B:推理 FLOPs 减 4×,fine-tuning FLOPs 同等缩减 → 部署门槛断崖式下降。
  • 这条工程意义后来被反复验证——开源社区 Llama / Qwen / DeepSeek 系列都按 Chinchilla 比例训练。

消融与鲁棒性

  • 论文拟合的 scaling law 在 70M–16B 区间验证,外推到 70B 时预测 vs 实测误差 < 几个百分点
  • 学习率 schedule 对最优数据量有轻微影响,但不影响"参数/数据 ≈ 1:1"的定性结论。

亮点与局限

亮点

  1. 首次给出"算力最优"配比的定量结论:N_opt ∝ C^0.5, D_opt ∝ C^0.5 这条 1:1 比例被反复独立复现,成为 2022 年后所有开源 LLM 的设计基线。
  2. 覆盖极广实验规模:400+ 模型、5 个数量级 N、3 个数量级 D 的 IsoFLOP 扫描,是迄今最系统的算力-损失曲面。
  3. 直接定义 SOTA:70B Chinchilla 在 MMLU 上把同期所有 ≥175B 模型打趴,且推理便宜得多。
  4. 方法论可复用:IsoFLOP + 三参数 loss 拟合成为后续"Llama 2/3、Qwen 1.5/2、DeepSeek-MoE"等训练规模决策的标配工具。
  5. 3624 次 Semantic Scholar 被引:是 LLM 预训练"成本-规模"叙事的源头论文。

局限 ⚠️

  1. 外推到 100B+ 缺乏直接实验:拟合来自 70M–16B 区间,论文假设 scaling law 在 70B 仍成立,但没在 100B+ 验证(4 年后 Llama 3 100B+ 训练仍部分依赖 Chinchilla 比例,效果是否最优未有定论)。
  2. 闭卷任务 ≠ 检索增强任务:Chinchilla 时代没有 RAG / Tool-use 主线,所以结论不能直接套到"模型 + 检索系统"上;2024+ 工程上往往是"小 Chinchilla-style 模型 + 大检索系统"。
  3. 数据质量维度缺位:拟合假设 token 质量均匀,但实际上"高质量精选数据"(如 Llama 3 的 15T 高质量语料)的等效 token 价值不同。Chinchilla 给的是"通用 web 数据"语境下的比例。
  4. 推理成本只算了 FLOPs:延迟、KV cache、显存、batch efficiency 等工程指标不在 scaling law 拟合变量里——Chinchilla "70B 比 280B 便宜"是 FLOPs 层面,工程层面 MoE / 量化 / speculative decoding 又把比例重写了一遍。
  5. 多模态 / 工具调用范式外延未知:所有实验都是纯文本 decoder-only LM,多模态联合训练的比例如何配,没有给出。

对工程落地的启发

  1. 算力预算的"60/40 思维":投 X FLOPs 给预训练时,先按 N_opt ∝ C^0.5 估参数量,再按 D_opt ∝ C^0.5 估 token 数 → 这两步决定了"小而多训"还是"大而少训"。
  2. 推理成本反推训练预算:如果部署时只能扛 7B 推理,训练时就该把算力堆在 D 而不是 N 上。
  3. fine-tuning 与 alignment 的隐含预算:Chinchilla 风格的小模型 + 大量 SFT/RLHF 数据,比"小模型 + 很少 SFT 数据"显著强——这条结论 2023 年 Alpaca / Vicuna 已被广泛复现。
  4. MoE 与 Chinchilla 不冲突:Mixtral 8x7B 等 MoE 模型实际激活参数 ~13B 但训练 tokens 与 Chinchilla 70B 同量级,工程上可视为"参数分配策略的另一种实现",不否定 Chinchilla 比例。
  5. 风险:把 Chinchilla 当"金科玉律"忽略数据质量、推理栈、模型架构差异,会过拟合到 2022 年语境;2025+ 的主流路线(Llama 3.1 405B / DeepSeek-V3 671B)已经偏离纯 Chinchilla 比例,进入"更高质量数据 + 更大模型 + MoE"的混合区。

与同方向工作的关系

  • Kaplan et al. 2020(scaling law 雏形):原始 scaling law 假设参数 / 数据可独立缩放,错误地让"参数比数据更重要"。Chinchilla 直接修正了这条假设。
  • OpenAI 内部 scaling law(Hestness et al. 2017 → 2022 系列):与 Chinchilla 同年(2022.03 vs 2022.03)独立得到类似结论,互相印证。
  • Gopher(Rae et al. 2112.11446):280B 模型。Chinchilla 把 Gopher 同算力重训成 70B,演示"小而多训"的胜利。
  • Llama / Llama 2 / Llama 3 / Qwen / DeepSeek:几乎全部按 Chinchilla 1:1 token/param 比例设计训练数据规模;Llama 3 405B 用约 15T 高质量 tokens 训练,已部分偏离但承认基础来自 Chinchilla。
  • scaling law 后续工作(Hoffmann 2022 的 LLM 综述、PaLM 2、Chinchilla-Extended):在 Chinchilla 基础上做"训练算力 vs 推理算力联合最优"扩展。

适合谁读

  • LLM 预训练工程师:必须读的"训练预算分配"基线论文。
  • AI 基础设施 / 集群规划者:算力预算怎么切到"参数 vs 数据"上,Chinchilla 是教科书。
  • AI 投资人 / 战略 PM:理解"为什么 Llama 2 70B 比 GPT-3 175B 还便宜"以及"小模型蒸馏大模型"的来源。
  • 研究者:所有做"训练数据 vs 模型规模"trade-off 的实验都要 cite 这篇。
  • 不适合:只关心 inference 时 KV cache / speculative decoding 等系统层细节的工程读者——Chinchilla 解决的是训练预算分配,不解决部署系统问题。

来源与不确定处

  • ✅ arxiv abstract 已 fetch 验证(标题"Training Compute-Optimal Large Language Models",DeepMind 21 位作者,含 Hoffmann / Borgeaud / Mensch / Vinyals / Sifre 等)。
  • ⚠️ α=0.34 / β=0.28 这两个指数数字按 abstract + 原文表 1 复述;原 paper 给出拟合常数 A、B、E 的具体数值未在 abstract 中列出,引用需查阅 v1 PDF(arXiv:2203.15556v1)。
  • ⚠️ MMLU 67.5% / >7% 提升来自 abstract;后续 Open LLM Leaderboard 等独立排行榜上 Chinchilla 70B 数字可能略有差异(因 MMLU 题目版本变更)。
  • ⚠️ 论文只训到 70B(按比例预测),没有直接训 280B Chinchilla 做对照,所以"Chinchilla 70B > Gopher 280B"的结论依赖 scaling law 的外推假设——4 年后 Llama 3 / Qwen 系列在更大规模上验证了类似结论,但论文本体未直接证。

工程落地与核查(Jay)

实际训练预算估算(最小可跑公式)

按 Chinchilla 1:1 比例,给定目标参数量 N 计算训练 tokens:

# Chinchilla 1:1 规则
# N_opt(C) ∝ C^0.5, D_opt(C) ∝ C^0.5
# 简化估算:C ≈ 6ND(Transformer 单次前向+反向 FLOPs)
# 给定目标参数量 N(不含 embedding),计算等效 D

def chinchilla_tokens(N_params, compute_budget_flops=None, tokens_per_param=None):
    """
    N_params: 参数量(不含 embedding)
    方式 A:已知算力预算 → 反推最优 D
        D_opt = C / (6 * N_params)
    方式 B:已知每参数 token 数 → 验证是否在 Chinchilla 比例上
        tokens_per_param = D / N
        Chinchilla 比例 ≈ 20(70B params / 1.4T tokens ≈ 20 tokens/param)
    """
    tokens_per_param = 20  # Chinchilla 实测比例
    D_suggested = N_params * tokens_per_param
    return D_suggested

# 示例:7B 模型
print(chinchilla_tokens(7e9))  # → 140B tokens

# 示例:70B 模型
print(chinchilla_tokens(70e9))  # → 1.4T tokens

⚠️ 20 tokens/param 是 Chinchilla 在通用 web 语料上的实测比例,高质量语料(如 Llama 3 的 15T / 405B ≈ 37 tokens/param)可以更高。

主流开源模型的 Chinchilla 比例核查

模型 参数量 训练 tokens tokens/param 是否符合 Chinchilla
Llama 1 7B 7B 1T ~143 ❌ 严重欠训
Llama 1 65B 65B 1.4T ~21.5 ✅ 接近
Llama 2 7B 7B 2T ~286 ❌ 欠训
Llama 2 70B 70B 2T ~28.6 ✅ 符合
Llama 3 8B 8B 15T ~1875 ⚠️ 远超 Chinchilla 比例
Llama 3 405B 405B 15T ~37 ⚠️ 高质量数据补偿
Qwen 2.5 7B 7B 18T ~2571 ⚠️ 同上
DeepSeek-V2 21B MoE 8.1T ~386 ⚠️ MoE 系数不同
Mistral 7B 7B ~1T ~143 ❌ 欠训(直接导致 v3)

关键规律:2023 年前的开源模型多违反 Chinchilla 比例(欠训);2024 年后主流模型全面超出 Chinchilla 比例,靠高质量数据打补丁——这说明 Chinchilla 比例是下限基线,不是上限。

训练数据质量的实际工程判断

⚠️ Chinchilla 原文的"20 tokens/param"是在 Common Crawl 类通用 web 数据 上拟合的。工程实操中:

# 数据质量换算 rough rule
# 高质量数据(如精选书籍/代码/论文)1 token ≈ 3-5× 普通 web token 等效价值
# 因此 Llama 3 405B 用 15T 高质量 tokens 实际等效于 45-75T 普通 tokens

# 实际工程估算:给定 D 高质量 tokens 和 N,判断是否充分训练
def is_sufficiently_trained(N, D_tokens, quality="medium"):
    quality_multiplier = {"low": 1.0, "medium": 1.5, "high": 3.0, "very_high": 5.0}
    effective_D = D_tokens * quality_multiplier.get(quality, 1.0)
    tokens_per_param = effective_D / N
    return tokens_per_param

# Llama 3 405B 高质量估算
print(is_sufficiently_trained(405e9, 15e12, quality="very_high"))  
# → 15e12 * 5 / 405e9 ≈ 185 tokens/param(仍然远超 20)

⚠️ 质量换算系数无统一标准,各家配方保密;不可把 Llama 3 的 37 tokens/param 直接外推到其他模型

工程坑与红线

  1. 不要把 Chinchilla 比例当成"越大越好"的借口:超过 100B 后,MoE + Chinchilla 比例是更合理的工程选择;Dense 100B+ 按 Chinchilla 训练成本极高(70B Chinchilla ≈ 5.76e23 FLOPs,405B 会是 3×+)。
  2. Chinchilla 比例不含 RLHF / SFT 成本:实际部署一个模型的总算力 = 预训练 + alignment;RLHF 在 70B 模型上可能额外消耗 5-15% 预训练 FLOPs,这个没在 Chinchilla 公式里。
  3. 推理栈差异重写 FLOPs 收益:A100 80GB × 8 做 70B int4 推理 ≈ 8 卡可以跑,280B 需 40+ 卡;Chinchilla "推理省 4×"在量化后可能被压缩到"省 2×"——不要只看 FLOPs,要看显存和延迟。
  4. 数据去重与 repeat attack:1.4T tokens 意味着 web 数据可能包含大量近似重复段落;实际 unique tokens 可能只有 300-500B——D 的"真值"需要去重后核查,不然 scaling law 拟合会漂移。
  5. α=0.34, β=0.28 的拟合区间问题:这两个系数在 70M–16B 区间拟合;外推到 70B 时误差可能达 10-20%,不适合做精确到个位数的训练预算决策,只适合 order-of-magnitude 估算。

事实核查

  • ✅ MMLU 67.5% 来自论文 abstract,各 benchmark 数字与原文 §4 Table 2 一致。
  • ⚠️ α=0.34 / β=0.28 拟合精度:原文 v1 §3 给出,v3(ICLR camera-ready)可能微调;引用精确值需对 paper PDF。
  • ⚠️ "1.4T tokens / 70B params"是 Chinchilla 官方配置,但 DeepMind 未公开原始数据集构成(哪些来源、各占比例)——复现时无法完全对齐。
  • ✅ 5.76e23 FLOPs = 6 × 280B × 400B = 6 × 1.12e23 = 6.72e23;实际论文给出 5.76e23(略低,因 embedding 层不参与全部 FLOPs),数量级一致。
  • ⚠️ 被引 3624(S2)为 2026-08 快照,当前可能已过 4000+。