Transformer 解剖:从 Attention 到推理系统

第 11 章 Scaling Laws:Chinchilla 法则与算力配比

作者 杨艺韬 · 4,723 字

第 11 章 Scaling Laws:Chinchilla 法则与算力配比

第二部分到第四部分我们把 Transformer 的「单台机器版」彻底拆开了。这一章升级视角——怎么把它训到 100B、1T 参数?

「大」不是简单放大。把 7B 模型的代码和配置直接乘 100 倍训成 700B,结果几乎一定是:训不动(loss 不降)、训不收敛(spike 频发)、或者训完性能反而比 7B 差。从 7B 到 700B 之间隔着的不是工程量,而是对「N、D、C 三者怎么配比」的科学理解

这门科学叫 Scaling Laws——研究模型规模 N、训练数据量 D、训练算力 C 与模型 loss 之间的定量关系。它从 2020 年 Kaplan 等人提出,到 2022 年 DeepMind 的 Chinchilla 反转,再到今天 Llama 时代的 over-training 取舍,是过去四年里影响最深的工业知识。

读完这章你能:

11.1 三个变量:N、D、C

先把核心变量定下来,本章会反复用到:

这个 C6NDC \approx 6ND 是后面所有推导的基础。它来自简单的 FLOP 计数:每个 token 经过模型时大约要做 2N2N 次 FLOPs(前向);反向传播大约是前向的 2 倍(计算梯度),所以 4N4N FLOPs;合起来 6N6N FLOPs/token。所有 D 个 token 都要扫一遍,总算力 6ND\approx 6ND

flowchart LR
  N[模型参数 N] --> C
  D[训练数据 D] --> C
  C[算力 C ≈ 6ND]
  C --> LOSS[最终 loss L]
  N --> LOSS
  D --> LOSS

研究 Scaling Laws 的核心问题就是:给定预算(任意两个变量固定),第三个变量该怎么选才能让 loss L 最小?

11.2 第一版:Kaplan 2020 的原始 Scaling Law

2020 年 1 月,OpenAI 的 Kaplan、McCandlish 等人在 Scaling Laws for Neural Language Models 论文里给出了第一组系统的实验结果:在 768 维到 1.5B 参数、几百 M 到几十 B token 的范围内,模型 loss 与 N、D、C 之间存在幂律关系

L(N)=(NcN)αN,L(D)=(DcD)αDL(N) = \left(\frac{N_c}{N}\right)^{\alpha_N}, \quad L(D) = \left(\frac{D_c}{D}\right)^{\alpha_D}

其中 αN0.076\alpha_N \approx 0.076αD0.103\alpha_D \approx 0.103NcN_cDcD_c 是常数。

直观意思:loss 随 N 或 D 增大按幂律下降。把一个变量翻 10 倍,loss 下降一个固定的因子;翻 100 倍,再下降同样因子。这个性质在 log-log 图上是一条直线。

log(L)
  ^
  |  *
  |   *
  |    *
  |     *      斜率 ≈ -α
  |      *
  |       *
  +-------------> log(N)

更进一步,给定算力 CC,loss 的下界也是幂律:

L(C)(CcC)αC,αC0.05L(C) \approx \left(\frac{C_c}{C}\right)^{\alpha_C}, \quad \alpha_C \approx 0.05

这套结果意味着两件事:

1. Loss 还有很多「下降空间」。当时 GPT-3 还没出(GPT-2 是 1.5B),按幂律外推,把规模再放大 10 倍 / 100 倍仍然能持续降 loss——这给后续 GPT-3、GPT-4 的研发提供了直接信仰支撑。

2. 给定算力 C,最优如何分配 N 和 D? Kaplan 的实验结论:模型规模 N 比数据 D 重要得多。具体地,他们建议算力翻倍时 N 应该多增加(占大头),D 增加少一些。

这条「N 重于 D」的结论催生了 GPT-3:用 175B 参数 + 0.3T token 训练。从 Kaplan Scaling Law 角度看,这是「算力最优」的配置——175B 参数已经接近当时的训练算力上限,再多 token 不如再大模型。

这个结论是错的——只是 2 年后才被发现。

11.3 反转:Chinchilla 2022

2022 年 3 月,DeepMind 发布了 Training Compute-Optimal Large Language Models,提出了著名的 Chinchilla 法则

DeepMind 的实验范围更宽——他们训了 400 多个不同 N、D 组合的模型,从 70M 到 16B 参数、1B 到 500B token。结果颠覆了 Kaplan 的结论:

结论:在固定算力 C 下,最优的 N 和 D 应该大致同步增加——具体地,

Nopt(C)C0.5,Dopt(C)C0.5N_{\text{opt}}(C) \propto C^{0.5}, \quad D_{\text{opt}}(C) \propto C^{0.5}

下面这张图把 Kaplan 幂律和 Chinchilla 1:20 法则画在一起,并把主流模型在 (N, D) 平面上的位置标出来:

Scaling Laws:幂律 + 主流模型在 (N, D) 平面

右图特别值得停下来看——GPT-3 175B 远低于 Chinchilla 对角线(D/N=1.7,理论应该 D/N=20,欠训 12 倍);Llama-2/3 系列远高于对角线(Llama-3 8B 的 D/N=1875,over-train 94 倍)。这两端的偏离都不是失误,而是反映两个不同时代对「训练 vs 推理算力」权重的不同判断。

而 Kaplan 的结论是 NC0.73,DC0.27N \propto C^{0.73}, D \propto C^{0.27}——N 增长率远高于 D。

Chinchilla 给出的具体配比:算力最优时 N : D ≈ 1 : 20,即每参数对应大约 20 token 训练数据

N(参数量) Chinchilla-optimal D 备注
1B 20B token
7B 140B token
13B 260B token
70B 1.4T token DeepMind 实测
175B 3.5T token GPT-3 实际只训 0.3T,严重欠训
500B 10T token
1T 20T token

按这个公式,GPT-3 是严重欠训的——175B 参数对应 0.3T token 训练,只有 Chinchilla-optimal 的 1/12。这意味着 GPT-3 的算力没有被充分用来「挖掘」175B 参数的潜力——同样的算力换成 70B + 1.4T 才是最优配置。

Chinchilla 70B 在论文里的实验证实:用相同算力下的 Chinchilla 配置(70B + 1.4T)训出来的模型在多项基准上击败 GPT-3 175B——参数量只有 40%,但更优的训练分配让它强得多。

flowchart TB
  subgraph "Kaplan 2020 (错误)"
    K1["N >> D"]
    K2["GPT-3: 175B + 0.3T"]
    K1 --> K2
  end
  subgraph "Chinchilla 2022 (正确)"
    C1["N ~ D"]
    C2["最优比例 N:D = 1:20"]
    C1 --> C2
    C2 --> C3["Chinchilla 70B + 1.4T<br/>击败 GPT-3 175B"]
  end
  K2 -.推翻.-> C1

11.4 为什么 Kaplan 错了

回头看 Kaplan 的实验,错误来自一个工程细节:他们的学习率 schedule 没有跟随训练 step 数自适应调整

Kaplan 用了固定的 cosine schedule——无论训多少步,schedule 都从 lr_max 衰减到 lr_min。但他们做的实验是「同一个模型大小,喂不同量的数据」——结果就是当数据量大时,cosine schedule 在中间就把 lr 衰减到很低,最后几亿 token 几乎是用极小 lr 在「微调」,loss 降得慢。

Chinchilla 的实验修正了这点:每个实验配置都用专属的 schedule——schedule 长度匹配该实验的 token 总数,让 lr 在最后才降到底。结果显示数据量的边际效益比 Kaplan 算的大得多。

这个修正听起来很小,但它重新定义了大模型工业的训练取向——所有 2022 年之后的大模型都按 Chinchilla 法则配置 N 和 D,Kaplan 的「N 重于 D」原则被废止

11.5 第三版:Llama 的 over-training

如果 Chinchilla 法则就是终点,那 Llama 不应该出现——Llama-2 7B 用 2T token 训练,严重超过 Chinchilla-optimal 的 140B;Llama-3 8B 用 15T token,超 Chinchilla-optimal 100 倍

为什么?因为 Chinchilla 法则只优化「训练算力」,没有考虑「推理成本」。

flowchart LR
  TC[训练算力] --> CHIN[Chinchilla optimal]
  IC[推理成本] --> LLAMA[Llama over-training]
  CHIN -.训练优化.-> M1["70B + 1.4T (例)<br/>训练效率最高<br/>但部署贵"]
  LLAMA -.部署优化.-> M2["7B + 15T (例)<br/>训练投入更多<br/>但模型小,部署便宜"]

Meta 的工程师 reason 是:模型一旦训完,要部署给亿级用户用很多年。训练算力是一次性投入,推理算力是持续投入

举个数字:

如果模型要给 1 亿用户用 1 年(10^11 次调用),推理成本主导一切——前者训完开支远超后者。

更关键的是:继续 over-train 的边际收益虽然递减,但不为零。Llama-3 8B 在 15T token 上仍然能持续降 loss,比 1T token 的同样 8B 模型显著强。这是 Chinchilla 法则没覆盖的「饱和点之外」的区域——模型已经饱和(参数都被填满),但额外数据仍然能带来质量提升(数据广度补充模型记忆容量)。

主流模型的 N : D 比例:

模型 N D D/N 比 备注
GPT-3 175B 0.3T 1.7 严重欠训(Kaplan 时代)
Chinchilla 70B 1.4T 20 Compute-optimal
Llama-2 7B 7B 2T 286 over-train 14×
Llama-2 70B 70B 2T 28 接近 Chinchilla
Llama-3 8B 8B 15T 1875 over-train 94×
Llama-3 70B 70B 15T 214 over-train 11×
DeepSeek-V3 671B(37B activated) 14.8T 22 activated parameters 维度接近 Chinchilla

可以看到 2024 之后的趋势是:普通规模模型(7B、70B 这一档)严重 over-train,因为它们要承担推理负担;超大模型(500B+)接近 Chinchilla,因为它们主要是训练投入

11.6 估算训练成本

有了 C6NDC \approx 6ND 这个公式,我们可以估算实际训练所需的算力。

例 1:Llama-3 70B

C6×70×109×15×1012=6.3×1024 FLOPsC \approx 6 \times 70 \times 10^9 \times 15 \times 10^{12} = 6.3 \times 10^{24} \text{ FLOPs}

H100 GPU 的 BF16 算力是 989 TFLOPs/s(理论峰值),但实际利用率(MFU, Model FLOPs Utilization)只有 30-50%。取 40% 利用率:

有效算力=989×1012×0.4=3.96×1014 FLOPs/s\text{有效算力} = 989 \times 10^{12} \times 0.4 = 3.96 \times 10^{14} \text{ FLOPs/s}

总 GPU·秒:

6.3×10243.96×10141.59×1010 GPU⋅s4.4×106 GPU⋅hours\frac{6.3 \times 10^{24}}{3.96 \times 10^{14}} \approx 1.59 \times 10^{10} \text{ GPU·s} \approx 4.4 \times 10^6 \text{ GPU·hours}

按市场价 H100 租约 2.5/hour,训练成本约2.5/hour,训练成本约 11M(千万美元量级)。Meta 实际报告 Llama-3 70B 训练用了 6.4M GPU·hours——和我们估算的同一量级。

例 2:你的小公司想训一个 7B 模型

按 Chinchilla 法则,7B 对应 140B token:

C6×7×109×140×109=5.88×1021C \approx 6 \times 7 \times 10^9 \times 140 \times 10^9 = 5.88 \times 10^{21}

40% MFU 下需要 H100 GPU·hours:

5.88×10213.96×1014×36004100 GPU⋅hours\frac{5.88 \times 10^{21}}{3.96 \times 10^{14} \times 3600} \approx 4100 \text{ GPU·hours}

也就是 8 张 H100 跑 21 天,或 64 张 H100 跑 2.5 天。按市场价约 10K 10K~15K——这是 Chinchilla-optimal 的最低门槛。

如果你想 over-train(比如 Llama 风格 7B + 2T token),算力翻 14 倍,约 $150K——已经能让一个百万美元的实验室出一个相当不错的中等模型。

估算的实际意义

这套估算让你看到:

这就是为什么开源大模型生态在 7B-70B 这一档百花齐放,1T 量级几乎被 OpenAI/Anthropic/Google/Meta/DeepSeek 等几家大公司垄断——成本曲线决定了谁能玩。

11.7 涌现能力:Scaling 的「幻觉」与「真实」

Scaling Laws 告诉我们 loss 会随 N、D 平滑下降。但有些具体能力——in-context learning、reasoning、tool use、复杂指令理解——并不平滑出现,而是在某个规模阈值之后突然涌现

Wei et al.(Google,2022)的论文 Emergent Abilities of Large Language Models 系统刻画了这一现象。比如:

flowchart LR
  X[模型规模] --> Y[能力]
  Y -.平滑.-> S1["loss / 标准 benchmark<br/>渐进改善"]
  Y -.阈值跳变.-> S2["三位数加法<br/>多步推理<br/>ICL<br/>tool use"]

这给「Scaling 信仰」加了一条:不只 loss 会降,还会涌现新能力——这是 OpenAI / Anthropic 投入数十亿美元继续放大模型的核心论点。

但这件事也有争议。Schaeffer et al.(Stanford,2023)在论文 Are Emergent Abilities of Large Language Models a Mirage? 提出反驳:所谓「涌现」很大程度上是评测指标的不连续性导致的视觉错觉。比如「三位数加法是否完全正确」这个二值指标会突然跳变,但如果你看「数字误差的对数」这种连续指标,曲线其实是平滑的。

两种观点并存。我个人倾向认为:有些能力是真的涌现,有些是评测错觉,但模型规模带来的能力提升是真实的——这一点工业界的产品化数据支撑得很充分(GPT-4 / Claude 3.5 / Gemini 1.5 比早一代模型在所有维度都质变)。

11.8 Scaling 的瓶颈

到了 2024-2025,Scaling 曲线开始遇到几堵墙。

墙一:高质量数据耗尽

Llama-3 用 15T token,DeepSeek-V3 用 14.8T——这已经接近互联网公开高质量文本的上限。Common Crawl 等大数据集去重、去噪、过滤后,剩下的高质量内容大约在 10T-30T 量级。

继续扩 10 倍数据到 100T+?除非:

合成数据是当前最热的方向但也最有争议——用 AI 生成的内容训 AI,可能引入 model collapse(Shumailov et al., 2023):模型逐渐学到自己的偏见,分布越来越窄。这个问题至今没完全解决。

墙二:算力 / 资金

训练 GPT-4(估计 1T+ 参数,30T token)的成本约 100M100M-200M。下一代 GPT-5 / Claude 4 / Gemini 2 估计 500M500M-1B。这个成本曲线让玩家越来越少——只有顶级头部能继续玩。

而且即使有钱,单机房供电也有上限——一个 1 GW 的数据中心已经接近现代电网的极限(相当于一个中等城市的居民用电)。GPT-5 / Claude 4 据说要建专用核电支持,门槛达到了「国家工程」级别。

墙三:训练稳定性

模型越大越不稳定。loss spike(突然上升不降)、gradient explosion(梯度爆炸)、attention collapse(attention 退化为单峰)等问题在 100B+ 规模上频发。解决这些问题需要:

这些工程经验大厂内部积累深厚,是开源模型很难快速追赶的「软实力」。

墙四:边际收益递减

幂律的本质就是「边际递减」——每翻一倍 N 或 D,loss 只下降固定百分比,能力提升越来越微弱。从 GPT-3.5 到 GPT-4 是 10 倍参数 + 5 倍数据,能力提升明显;从 GPT-4 到 GPT-5 估计也是 10 倍参数 + 数倍数据,但能力提升比 3.5→4 已经小很多——边际效益逐渐摸到天花板。

flowchart LR
  G2["GPT-2 (2019)<br/>1.5B / 40B"] --> G3["GPT-3 (2020)<br/>175B / 0.3T<br/>能力跳变"]
  G3 --> G4["GPT-4 (2023)<br/>~1T / 30T<br/>能力提升明显"]
  G4 --> G5["GPT-5? (2025)<br/>~10T / 100T<br/>边际递减<br/>成本爆炸"]

11.9 新方向:Test-Time Compute Scaling

到了 2024 下半年,Scaling 的方向开始变化。OpenAI 的 o1 模型、DeepSeek 的 R1 提出了新的思路:不再无限放大模型,而是让模型在推理时『多花时间思考』来提升能力

这叫 test-time compute scaling(推理时算力 scaling):

flowchart LR
  Q[复杂问题] --> M[中等大小模型]
  M --> THINK[生成 长 reasoning trace<br/>5000+ tokens]
  THINK --> ANS[最终答案]
  
  CMP1[传统模型<br/>直接答<br/>100 token<br/>容易错] -.对比.-> CMP2[O1 / R1 风格<br/>先思考<br/>多次自检<br/>5000 token<br/>更准]

这里的 trade-off 变了:训练成本不变(30B 模型训练成本远低于 1T),但推理成本上升——同一个 query 要生成 50 倍的 token。但人类对「精度高」的需求往往愿意为此付费——如果回答从 70% 准确率提升到 95%,多花 50 倍 token 是值得的。

这条路把 Scaling 的视角从「训练时算力」推到了「推理时算力」——一个全新的维度,还有大量空间可以挖。

11.10 这一章的实战意义

理论讲到这里,转一些工程视角的 takeaway:

1. 给一个新模型时,先估算 Chinchilla-optimal。这是「最低限度训练量」——少于这个就是欠训,浪费参数。

2. 如果模型要部署给大量用户,over-train 是合理的。Llama 路线(7B + 15T)在「推理成本主导」时显著优于 Chinchilla 配置。

3. 不要试图自己训 100B+ 模型——除非你有几亿美元预算和几个月的工程团队。开源 Llama / Qwen / DeepSeek 是更便宜的起点。

4. 关注 emergent abilities 阈值。如果你的应用需要 reasoning 能力,必须用 30B+ 模型;只需要分类、简单问答的话 7B 够用。

5. 推理时 scaling 是新机会。在中等规模模型上做 RL / 思维链训练,能在不放大参数的情况下显著提升能力。这是 2025-2026 的工业热点。

本章小结

  1. 三个变量 N、D、C:参数量、数据量、算力。简单关系 C6NDC \approx 6ND
  2. Kaplan 2020 原始 Scaling Law:loss 随 N、D 幂律下降,但「N 重于 D」结论是错的(来自实验设计的瑕疵)。
  3. Chinchilla 2022 反转:N : D ≈ 1 : 20(每参数对应 20 token 训练数据)才是 compute-optimal。Chinchilla 70B 击败 GPT-3 175B 证明了这点。
  4. Llama 时代的 over-training:Chinchilla 优化的是训练成本,但忽略了推理成本。Llama 把 D / N 推到 200-1000,用更多训练投入换更小推理成本。
  5. 训练成本估算:用 C6NDC \approx 6ND + GPU FLOPs + MFU,可以从 N、D 估出钱和时间。
  6. Emergent abilities 让 Scaling 信仰多了一层——某些能力在阈值后突然出现(in-context learning、reasoning、tool use)。
  7. Scaling 遇到四堵墙:高质量数据耗尽、算力 / 资金、训练稳定性、边际收益递减。
  8. 新方向:Test-time compute scaling——o1 / R1 路线把算力从训练时挪到推理时,让中等模型靠「多想」打出新能力。

下一章我们具体看一种突破规模化天花板的关键技术——Mixture of Experts (MoE)。MoE 让你能训 671B 总参数但每次只激活 37B 的模型(DeepSeek-V3),用「激活参数 ≠ 总参数」绕开了密集模型的算力瓶颈。

延伸阅读