CS336 · Lecture 1 · 图解 01

Scaling Laws:算力该花在「更大的模型」还是「更多的数据」?

给定算力预算 C = 6ND,Kaplan 说造大模型、早点停;Chinchilla 推翻它——模型和数据要等比例涨(D ≈ 20N)。从 IsoFLOP 的 U 形曲线,到用小实验预测大模型的 scaling recipe。

讲者:Percy Liang & Tatsunori Hashimoto Stanford CS336 · 2026 原始讲义 ↗

核心问题:固定预算怎么分

训练一个语言模型花多少算力,大致正比于 6 × 参数量 N × token 数 D。预算 C 是固定的(你的 GPU·小时有限),于是只剩一个问题:把这笔预算分给更大的模型,还是更多的数据

固定的算力预算 C = 6 · N · D,两种花法 固定的算力预算 C Kaplan (OpenAI, 2020) 花在模型 N(大) D 小 「造大模型、少喂数据、提前停止」 → 更大模型更 sample-efficient 结论:N 增长远快于 D Chinchilla (DeepMind, 2022) 模型 N 数据 D 「模型和数据等比例扩展」 → D ≈ 20N 结论:N、D 同速增长
Figure 1. 同一笔算力预算,两种分法。Kaplan 偏向大模型,Chinchilla 主张均衡——分歧的根源在于谁的实验更严谨。

分歧:谁的曲线更可信

两项工作画出两条不同的「最优」路线。把真实模型画到「参数量 N × 训练 token D」的对数图上,谁对一目了然——GPT-3 和 PaLM 都明显落在 Chinchilla 最优线的下方,意味着模型太大、数据没喂够,即「欠训练」。

参数量 N × 训练 token D(均为对数坐标) 1B 10B 100B 1T 模型参数量 N → 10T 1T 100B 10B 训练 token 数 D → Kaplan D 增长慢 Chinchilla 最优 D ≈ 20N Chinchilla 70B 1.4T tokens GPT-3 175B 300B tokens PaLM 540B 780B tokens ↑ 这片区域 = 模型太大、数据不够 = 欠训练
Figure 2. GPT-3 和 PaLM 都明显在 Chinchilla 最优线(D ≈ 20N)下方——给它们的算力大多砸在了「更大的模型」上,数据却没喂够。

为什么 Chinchilla 更可信?因为 Kaplan 偷了个懒——没有为每个模型大小单独调学习率。Chinchilla 把这一步补上,并用三种独立方法交叉验证,得到同一个结论。

改进点Kaplan (2020)Chinchilla (2022)
调学习率❌ 每个规模共用✅ 为每个计算预算单独调优
验证方法单一幂律拟合三种独立方法(见下节)
核心结论大模型优先、提前停止,N 增长远快于 D模型与数据等比例扩展,D ≈ 20N
现实含义——GPT-3、PaLM 都「训亏了」(欠训练)

IsoFLOP:为什么是 U 形曲线

Chinchilla 最有说服力的一张图:固定一个算力预算 C(即 6ND = 常数),画出 loss 随模型大小 N 的变化——它是一条 U 形曲线。两端都差,只有底部最优。

每个算力预算 C 一条 U 形曲线,底部是该预算的最优 N 模型参数量 N →(对数) 最终 loss(越低越好)→ C₁(小预算) C₂ C₃(大预算) 最优 N 随 C 增大而增大 小模型 欠拟合 ↑ 大模型 欠训练 ↑
Figure 3. U 形的两端解释了一切:左端模型太小、容量不够(欠拟合);右端模型太大、数据喂不饱(欠训练)。把每条曲线的最低点连起来,在对数坐标下是一条直线——即幂律,推导出 N 和 D 应等比例增长。
读这张图的方法

横轴模型参数量 N,纵轴最终 loss(越低越好)。每条曲线是一个固定的算力预算 C。曲线最低点 = 该预算下最优的模型大小。预算越大,最优 N 越大、能达到的最低 loss 越低——但无论哪条曲线,把模型做得太大都会撞上右端的欠训练墙

Chinchilla 的三种方法:殊途同归

为避免单一方法的偏差,Chinchilla 用三种独立方法估计最优比例,三者得到同一个答案——这是结论可信的关键。

三种方法 × 同一个结论:D ≈ 20N (a) Lower Envelope 每模型大小跑 4 个 LR 取每个规模的最佳 LR 连成下包络 (b) IsoFLOP 每模型大小跑 9 个预算 每条等 FLOPs 曲线 取末点(最低 loss) (c) 参数化拟合 拟合 L(N, D) 整体 L = E + A/N^α + B/D^β 对全部数据点回归 三种方法 → 同一个结论:D ≈ 20N
Figure 4. 三种独立方法从不同角度逼近同一个最优比例,交叉验证让 D ≈ 20N 这个结论站得住脚。

Scaling Recipe:用小实验预测大模型

Scaling laws 最大的实用价值不是「该训多大」,而是可预测性——在小规模上花很少的钱做实验,就能可靠预测大规模训练的 loss。Lec1 原话:「Predictability is at least as important as optimality!」

Scaling Recipe:小规模拟合 → 外推预测 → 大规模验证 1. 小规模实验 ~1e21–1e22 FLOPs 多个数据点 (便宜) 2. 拟合幂律 数据点 → loss 幂律曲线 3. 外推预测 目标规模 1e23+ FLOPs 的 loss 是多少? 「preregistered loss」 4. 验证 跑大规模训练 实际 loss 是否 命中预测? 计算量 C(FLOPs,对数)→ loss 实际数据点 外推预测(虚线)
Figure 5. 像科学实验一样「先写好假设再跑」:训练前就基于 scaling law 预测目标 loss(preregistered),训练完成再验证。Marin 项目用这种方式成功预测了大规模训练的效果。
收束:Bitter Lesson 的正确读法

Sutton 的「苦涩的教训」常被误读成「scale 就是一切、算法不重要」。CS336 的正确读法是:能 scale 的算法才是重要的。落到一个贯穿全课的公式——

accuracy = efficiency × resources

规模越大,效率越重要(浪费的绝对成本更高)。Scaling laws 正是「认真对待 scaling」的思维工具:它让你在花大钱之前,就能预测这笔钱花得值不值。

一个重要 caveat

Chinchilla 的最优比例 没有考虑推理成本。如果你要部署一个会被调用几十亿次的模型,你可能更想要一个更小、训得更透的模型——那样每次推理更便宜,即使训练时多花点数据算力也划算。现实里的「最优」取决于训练 + 推理的总账。

来源:CS336 Lecture 1: Language Modeling From Scratch — Percy Liang & Tatsunori Hashimoto, Stanford, 2026(Scaling Laws / Assignment 3 单元)

参考文献:Kaplan et al. 2020《Scaling Laws for Neural Language Models》;Hoffmann et al. 2022《Training Compute-Optimal LLMs》(Chinchilla)