2023年4月12日

缩放定律 — 参数 / 数据 / 算力(Chinchilla 及后续)

缩放定律揭示了 LLM 性能与模型参数量、训练数据量和计算预算之间的幂律关系,指导我们在有限算力下如何最优分配资源。

知识库大模型训练与对齐llmpretrainingscalingchinchillacompute

先说结论

缩放定律揭示了 LLM 性能与模型参数量、训练数据量和计算预算之间的幂律关系,指导我们在有限算力下如何最优分配资源。

为什么我会单独记这一篇

训练一个 LLM 需要做三个关键决策:模型多大(参数量 N)、数据多少(token 数 D)、花多少算力(FLOPs C)。这三个变量相互制约——更大的模型需要更多数据,两者都需要更多算力。缩放定律回答的核心问题是:给定固定算力预算,模型应该多大、数据应该多少,才能达到最优性能?

这个问题极其重要,因为:

  1. 训练一个 70B 模型一次的成本以百万美元计,试错空间极小
  2. 错误的 N/D 配比意味着白烧了算力,性能还不如更小但配比正确的模型
  3. 缩放定律让我们可以在小规模上做实验,然后外推到大规模

先把核心脉络捋清楚

Kaplan Scaling Laws(Kaplan et al., 2020)

  • OpenAI 早期工作
  • 发现损失 L 与参数量 N 和数据量 D 之间存在幂律关系
  • 关键结论:模型大小应该比数据量增长更快
  • 具体而言:N_opt ∝ C^0.73, D_opt ∝ C^0.27
  • 影响:GPT-3 的设计(175B 参数但只有 300B tokens 训练数据)

Chinchilla Scaling Laws(Hoffmann et al., 2022)

  • DeepMind 的工作,标题为 "Training Compute-Optimal Large Language Models"
  • 修正了 Kaplan 的结论:模型大小和数据量应该等比增长
  • 核心关系:C ≈ 6ND(Transformer 的 FLOPs 近似)
  • 最优配比:
    • N_opt ∝ C^0.50
    • D_opt ∝ C^0.50
  • 经验法则:训练 token 数应约为参数量的 20 倍
    • 1B 参数 → 20B tokens
    • 7B 参数 → 140B tokens
    • 70B 参数 → 1.4T tokens

损失函数的数学形式

L(N, D) = E + A/N^α + B/D^β
  • E:不可约损失(自然语言的熵),是性能的理论下界
  • A/N^α:模型容量不足导致的损失
  • B/D^β:数据不足导致的损失
  • 拟合参数:α ≈ 0.34, β ≈ 0.28(Chinchilla 值)

Overtraining(过度训练)

LLaMA 系列的革命性实践

模型 参数 Chinchilla 最优 tokens 实际 tokens 倍数
LLaMA 1 7B 7B ~140B 1T ~7x
LLaMA 2 7B 7B ~140B 2T ~14x
LLaMA 3 8B 8B ~160B 15T ~94x

为什么故意违反 Chinchilla 最优?

  • Chinchilla 优化的是训练效率(给定算力达到最低损失)
  • 但在生产中,推理成本往往远超训练成本
  • 一个 7B 模型训练 2T tokens 的推理成本仅为 70B 模型的 ~1/10
  • 关键洞察:更小但训练更久的模型在相同性能下推理更便宜

数据受限场景(Data-Constrained Scaling)

  • Muennighoff et al. (2023) 研究了当数据量不足时如何 scaling
  • 核心发现:在数据受限时,训练多个 epoch 比不重复要好,但收益递减
  • 4 个 epoch 的数据大致相当于 1 个 epoch 的 2 倍数据(收益打折)
  • 多语言数据可以缓解单一语言的数据瓶颈

Scaling Law 的涌现能力视角

  • Wei et al. (2022) 发现某些能力在模型达到一定规模后"涌现"
  • 但后续研究(Schaeffer et al., 2023)质疑:很多"涌现"可能是评估指标的人工产物
  • 用连续指标替代离散指标后,性能改善通常是平滑的而非突然跳变

原理拆开看

幂律的直觉

缩放定律背后的幂律关系可以类比物理学中的相变和临界现象。核心直觉是:模型的损失可以分解为不可约部分和可约部分。可约部分随 N 和 D 的增加按幂律衰减,且 N 和 D 的贡献是可分离的(乘性分解)。

C ≈ 6ND 的推导:对于一个 Transformer 层,每个 token 的前向传播 FLOPs 约为 6N(权重乘法 + 激活计算),训练还需要反向传播(约 2 倍前向),总计约 6N FLOPs/token。对于 D 个 token,总 FLOPs ≈ 6ND

为什么 Chinchilla 纠正了 Kaplan?

Kaplan 的实验设置有两个问题:

  1. 学习率调度不同:不同大小的模型用了不同的 lr schedule,引入了混淆变量
  2. 训练不充分:很多实验没有训练到收敛,导致大模型看起来"不需要那么多数据"

Chinchilla 统一了训练设置,并训练到收敛,得出了更准确的结论。

放到工程里怎么落

如何在实际项目中应用 Scaling Law

  1. 确定算力预算:C = 可用 GPU 数量 × 训练时间 × 单 GPU FLOPs
  2. C = 6ND 确定参数-数据组合
    • Chinchilla 最优:N = (C/6)^{1/2} × (β/(α+β))^{1/(α+β)}, 类似求 D
    • 简化:N ≈ D/20
  3. 决定是否 overtrain
    • 如果推理成本主导 → 选更小模型 + 更多数据(overtrain)
    • 如果训练成本主导 → 用 Chinchilla 最优
    • 如果追求最强性能 → 更大模型 + 更多数据(两者都增加)
  4. 用小模型验证:在 1B-3B 模型上测试不同 N/D 配比,用 scaling law 外推到目标规模

计算示例

假设有 1000 张 A100(312 TFLOPS),训练 30 天:

  • 总 FLOPs ≈ 1000 × 312e12 × 30 × 86400 ≈ 8.1e23 FLOPs
  • Chinchilla 最优:N ≈ 13B, D ≈ 260B tokens
  • 如果 overtrain 5x:N ≈ 6B, D ≈ 1.3T tokens

与相邻概念的区别

概念 区别
数据工程 数据工程关注数据质量,scaling law 关注数据数量
预训练目标 预训练目标决定学习信号的形式,scaling law 决定资源分配
基座与指令模型 Scaling law 主要适用于 pretraining 阶段

设计时真正要权衡什么

取舍 分析
Chinchilla 最优 vs Overtrain 最优训练效率 vs 最优推理效率
更大模型 vs 更多数据 更大模型天花板更高但训练和推理都更贵
数据 epoch 数 1 epoch 理想但数据可能不够;多 epoch 有效但收益递减
是否相信 scaling law 的外推 外推到 10x 以外越来越不可靠

容易踩的坑

  1. 盲目用 Chinchilla 最优:Chinchilla 不考虑推理成本,生产场景应 overtrain
  2. 用 Scaling Law 外推太远:从 100M 参数外推到 100B 参数,误差极大
  3. 忽略数据质量:Scaling Law 假设数据质量恒定,低质量数据会打破幂律关系
  4. 不区分训练和推理成本:训练只发生一次,推理持续发生——全生命周期成本分析才合理
  5. 只看 loss 不看下游任务:Loss 下降不一定意味着所有能力都在提升

工程落地时我会怎么做

  1. 用 IsoFLOP 分析:在多个 N-D 组合上实际训练小模型,拟合自己的 scaling law
  2. 生产模型倾向 overtrain:7B 模型训练 2T+ tokens 是当前最佳实践
  3. Scaling Law 是指南针不是地图:用它做初步规划,用实验验证
  4. 追踪 loss vs compute 的曲线:确保训练在预期的 scaling 轨道上
  5. 注意 Chinchilla 的前提条件:数据质量足够好、模型架构一致、训练充分

如果要对外讲,可以怎么概括

Scaling Law 揭示了 LLM 性能与参数量、数据量和算力之间的幂律关系。Kaplan 最早发现这个规律但低估了数据的重要性。Chinchilla(DeepMind 2022)纠正了这一点:模型和数据应该等比增长,约 20 tokens/参数。但 LLaMA 系列证明了一个重要的实践洞见:故意 overtrain 小模型(训练远超 Chinchilla 最优的 token 数)可以在保持性能的同时大幅降低推理成本。关键 trade-off 是训练效率 vs 推理效率。

最后记几条

  1. Chinchilla 法则C ≈ 6ND,最优约 20 tokens/参数
  2. LLaMA 革命:overtrain 小模型以换取推理效率,LLaMA 3 8B 训练了 15T tokens
  3. 损失分解L(N,D) = E + A/N^α + B/D^β,不可约损失是理论下界
  4. 数据受限时多 epoch 有效但递减:4 epoch ≈ 2x 独特数据
  5. Scaling Law 用于规划,不用于替代实验——外推有风险

延伸阅读

参考资料

  • Kaplan et al., "Scaling Laws for Neural Language Models" (2020)
  • Hoffmann et al., "Training Compute-Optimal Large Language Models" (Chinchilla, 2022)
  • Touvron et al., "LLaMA: Open and Efficient Foundation Language Models" (2023)
  • Touvron et al., "Llama 3: Open Foundation Models" (2024)
  • Muennighoff et al., "Scaling Data-Constrained Language Models" (NeurIPS 2023)
  • Wei et al., "Emergent Abilities of Large Language Models" (2022)
  • Schaeffer et al., "Are Emergent Abilities of Large Language Models a Mirage?" (2023)

---