Skip to content

Scaling Law 与 Chinchilla 优化

Scaling Law 揭示了语言模型性能与模型规模、数据量和计算量之间的幂律关系,Chinchilla 研究进一步指出训练数据量应与模型参数同步增长,深刻改变了大模型的训练策略。

Scaling Law示意

Kaplan Scaling Law

OpenAI 2020 年的 Scaling Law 研究发现模型性能遵循幂律关系:

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

其中 N 为模型参数量,D 为训练数据量,α ≈ 0.34,β ≈ 0.28。

核心发现:

  1. 参数缩放:增大模型参数持续降低损失
  2. 数据缩放:增加训练数据持续降低损失
  3. 计算预算:给定计算预算,存在最优的模型大小和训练步数
  4. 平滑可预测:小规模实验可以预测大规模性能

Chinchilla 最优训练

DeepMind 的 Chinchilla 研究(2022)修正了 Kaplan 的结论:

关键发现

  • 数据量与参数量应等比例增长:之前 GPT-3 等模型训练不足
  • Chinchilla (70B) 在 1.4T Token 上训练,超越了 Gopher (280B) 在 300B Token 上的表现
  • 计算最优分配:模型参数和训练 Token 数应同时增长
python
# Chinchilla 最优缩放计算
def chinchilla_optimal(compute_budget):
    """给定计算预算,计算最优模型大小和数据量"""
    # Chinchilla 缩放系数
    # N ∝ C^a, D ∝ C^b, a ≈ 0.50, b ≈ 0.50
    a = 0.50  # 模型参数指数
    b = 0.50  # 数据量指数

    # 最优分配
    N_opt = (compute_budget ** a) * 0.3  # 系数根据拟合确定
    D_opt = (compute_budget ** b) * 0.3

    return N_opt, D_opt

# 示例:1e21 FLOPs 计算预算
N, D = chinchilla_optimal(1e21)
print(f"最优模型参数: {N:.2e}")
print(f"最优训练Token: {D:.2e}")

对训练策略的影响

Chinchilla 的发现直接改变了大模型的训练策略:

策略之前(Kaplan)之后(Chinchilla)
模型大小尽可能大与数据量平衡
训练 Epoch多轮训练约 1 个 Epoch
数据需求被低估与参数量等比例
最优模型更大更少训练适中大小充分训练

Llama 验证了 Chinchilla

Llama 系列模型验证了 Chinchilla 的结论:Llama-1 7B 在 1T Token 上训练(约 140 Epoch),而 Llama-2 70B 在 2T Token 上训练。充分训练的较小模型可以匹敌或超越训练不足的更大模型。

超越 Chinchilla

后续研究发现 Chinchilla 的结论在某些情况下需要修正:

  • 数据复用:多轮训练在数据受限时仍然有效
  • MoE 模型:稀疏模型的缩放规律与 Dense 模型不同
  • 微调缩放:微调数据的缩放规律与预训练不同
  • 推理缩放:推理时增加计算也能提升性能

实际应用

Scaling Law 的实际应用:

  1. 训练预算规划:根据 Scaling Law 预测所需计算量
  2. 小规模预实验:用小模型预测大模型性能
  3. 最优模型选择:在给定预算下选择最优的模型大小
  4. 数据收集规划:确定需要多少训练数据

相关资源

最近更新