Scaling Laws for Neural Language Models
基本信息
- 标题:Scaling Laws for Neural Language Models
- 作者:Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei
- 发表:arXiv:2001.08361
- 日期:2020-01
- 代码/数据:WebText2
- 相关主题:Scaling Law、Model Data and Compute、Compute Optimal
研究对象与实验范围
- 研究对象:decoder-only Transformer language model
- 核心指标:token-level cross-entropy loss
研究问题
模型规模、数据规模与 compute 如何共同决定 loss
对 autoregressive language model 而言,训练目标是根据前面的 token 预测下一个 token。论文关注的主要性能指标是平均 token-level cross-entropy loss:
论文希望回答:
- 增加 non-embedding parameters ,loss 如何变化?
- 增加 dataset tokens ,loss 如何变化?
- 增加 training compute ,loss 如何变化?
- 这三者是否可以用统一的经验函数描述?
- 当 和 同时增加时,什么时候会出现 data-limited 或 model-limited?
固定 compute 时,应该选择更大的模型还是更多的数据
训练计算可以粗略表示为:
其中 是以 token 计的 batch size, 是 parameter update steps。固定 后,扩大模型会减少每一步能够处理的 token 数,增加数据则可能需要选择更小的模型。论文试图在这条约束下寻找 loss 最低的 model size、batch size、training steps 和 dataset size。
这使问题从“模型越大是否越好”变成了一个资源分配问题:参数、数据、串行训练步数和并行 batch 之间的边际收益如何平衡?
如何区分规模收益与训练配置收益
如果不同实验同时改变模型形状、tokenizer、learning-rate schedule、batch size 或 optimizer,那么 loss 差异不能直接归因于参数量或 compute。因此,论文还考察:
- model shape 在固定参数量下是否重要;
- training horizon 和 learning-rate schedule 是否会改变比较结果;
- batch size 是否应该随 loss 动态变化;
- 在训练分布之外,loss 是否仍然随模型规模改善。
核心主张
论文的主要结论可以压缩为以下几组经验规律。
- Loss 随模型规模、数据规模和 compute 近似按 power law 改善。 这些趋势跨越多个数量级,在论文实验范围内没有明显拐点。
- Model scale 比 model shape 更重要。 在固定 non-embedding parameter count 的合理范围内,改变 depth、width、attention heads 和 feed-forward ratio,loss 只发生较小变化;极浅或极端 depth-to-width ratio 的模型会偏离这一趋势。
- Overfitting 主要由 model size 与 dataset size 的组合决定。 论文拟合的 overfitting penalty 主要取决于 。模型扩大 8 倍时,数据量增加约 5 倍,才大致能保持相近的 overfitting 水平。
- 大模型具有更高的 sample efficiency。 在达到相同 loss 时,大模型需要更少的 optimization steps 和更少的 data examples。
- Critical batch size 主要随当前 loss 变化,而不是直接随模型参数量变化。 当 loss 降低、gradient noise scale 增大时,适合的 batch size 也应增大。
- Compute-efficient training 倾向于更大的模型、较少的串行 steps 和较大的 batch。 Kaplan-style 拟合得到 、、,即更多 compute 主要投入模型规模,而不是显著延长训练时间。
- 跨数据分布的 transfer loss 与训练分布 loss 高度相关。 在论文测试的数据分布上,分布外 loss 大致等于训练分布 loss 加上相对稳定的 offset。
这些结论都属于特定模型族、数据集、tokenizer 和 optimization regime 下的经验拟合,不应被当作脱离条件的物理定律。尤其是 compute-optimal 分配,后来被 Chinchilla 在不同训练设计下重新估计。
记号与计算口径
论文使用以下记号:
| 记号 | 含义 | 论文中的口径 |
|---|---|---|
| cross-entropy loss | 以 nats 计,通常对 context 中 token 平均 | |
| model size | non-embedding parameters,不计 vocabulary 和 positional embeddings | |
| dataset size | tokenizer 后的 training tokens | |
| training compute | non-embedding training compute,近似为 | |
| batch size | 每个 parameter update 处理的 token 数 | |
| training steps | parameter update 次数 | |
| critical batch size | 在 compute efficiency 与 step efficiency 之间折中的 batch | |
| minimum compute | 用足够小的 batch 达到目标 loss 所需的最小 compute | |
| minimum steps | 用足够大的 batch 达到目标 loss 所需的最少串行 steps |
论文中的 PF-day 指 FLOPs/s 持续运行一天,即:
需要注意的是, 只是 dense Transformer 的高层估算。论文在附录中拆解了 embedding、attention、feed-forward、logits 和 backward pass 的计算,发现主实验范围内该近似足够好;但长 context、MoE、通信、optimizer update 和 activation memory 都可能使真实训练成本偏离这一估算。
方法与实验设计
数据集与 tokenizer
论文使用 WebText2,这是对 WebText 的扩展版本。数据来自截至 2018 年 10 月、被 Reddit 用户以至少 3 karma 评价过的 outbound links。
- 文档数:约 20.3M;
- 原始文本:约 96GB;
wc统计的词数:约 ;- BPE tokenizer 后 token 数:约 ;
- 保留测试集:约 tokens;
- vocabulary size:50,257;
- 常规 context length:1024 tokens。
此外,论文还在 Books Corpus、Common Crawl、English Wikipedia 和 Internet Books 等分布上测试 transfer。所有这些数量都依赖具体 tokenizer,不能直接与其他论文的 raw text size 或 token count 混用。
Transformer 参数化
模型使用 decoder-only Transformer,并用以下超参数描述结构:
- :layer 数;
- :residual stream 维度;
- :feed-forward intermediate dimension;
- :attention output dimension;
- :attention heads 数;
- :context length。
non-embedding parameter count 近似为:
标准设置取 ,因此:
论文特意将 embedding parameters 排除在 之外。原因是 vocabulary embedding 的规模通常随 vocabulary size 和 变化,但它对主体 Transformer capacity 的贡献方式不同;排除后,不同 depth 的模型更容易落在同一条 scaling trend 上。
Compute 估算
一个 token 的 Transformer forward compute 可近似写成:
当 相对于 context length 足够大时,context-dependent 的 attention 项在主实验中相对较小。forward、backward 和 gradient 计算合起来约为 forward 的三倍,因此论文采用:
这个口径用于比较模型规模、batch 和训练步数,不等价于实际 wall-clock time。真实训练还要加入 pipeline / tensor parallel communication、checkpoint、data loading、evaluation 和系统利用率等成本。
训练设置
除非另有说明,论文采用:
- Adam optimizer;
- 250,000 training steps;
- batch size 为 512 条、每条 1024 tokens 的 sequence;
- 大于 1B parameters 的模型因 memory constraints 使用 Adafactor;
- 3,000-step linear warmup;
- warmup 后 cosine decay 到 0;
- 主要指标为 WebText2 test distribution 上的平均 cross-entropy loss。
论文还改变 model size、dataset size、shape、context length 和 batch size,分别研究各变量对 loss 的影响。不同实验并非全部采用同一个训练 regime,因此比较时需要区分主实验设置和专门的消融设置。
Scaling Law 结果
Model size scaling
在数据足够大、模型训练接近 convergence、没有明显 data bottleneck 时,loss 随 non-embedding parameters 按 power law 变化:
经验拟合约为:
这里 是与 tokenization 和 loss normalization 相关的尺度常数,不具有普适的物理意义。指数的直观含义是:在该实验范围内,参数量翻倍,loss 大约乘以 。收益是递减的,但在实验上仍然平滑。
论文实验的 non-embedding parameter range 约为 768 到 1.5B。这个范围远小于今天的大模型规模,因此不能把拟合曲线机械外推到任意数量级。
Dataset size scaling
在模型足够大、训练因数据规模受限并采用 early stopping 时,loss 随 dataset tokens 变化为:
拟合约为:
这个关系描述的是 data-limited regime。若模型本身太小,继续增加数据会撞上 model capacity bottleneck;若模型足够大但训练步数或 schedule 不合适,也不能把 loss 改善完全归因于新增数据。
Compute scaling
当 dataset 足够大、model size 和 batch size 适合当前 compute budget 时,论文定义 optimally allocated compute ,并拟合:
其中:
论文也展示了固定 batch size 下的经验 ,但认为为了比较真正的 compute efficiency,应先校正 batch size 带来的 step / sample trade-off,再使用 。
Model shape 的影响
在保持 non-embedding parameter count 相近的条件下,论文分别改变 depth、width、attention heads 和 feed-forward ratio。主要结果是:
- 在合理范围内,多种 shape 的 test loss 很接近;
- depth-to-width aspect ratio 可以变化约 40 倍,但 loss 只增加几个百分点;
- 极浅模型、少于两层的模型或极端 depth-to-width ratio 会明显偏离;
- 排除 embedding parameters 后,不同 depth 的模型更接近同一条 scaling curve。
这并不意味着 architecture 不重要。它只说明,在该模型族和实验范围内,总的 non-embedding scale 是更强的第一阶解释变量;当模型进入极端 shape、不同 context regime、不同稀疏结构或不同任务目标时,这一结论未必成立。
Context length 与 token position
论文按 context 中的 token position 分析 loss,发现 Transformer 能够在整个 1024-token context 中持续利用较后位置的信息。作为对照,LSTM 在较早位置表现接近 Transformer,但随着 context position 增加,其 loss 改善趋于停滞;Transformer 则继续改善。
这一结果支持两个判断:
- context length 不是只改变输入格式,它会改变模型可以利用的条件信息范围;
- 对长上下文任务,平均 loss 可能掩盖不同位置的学习差异,应该额外观察 position-wise loss 和长距离依赖能力。
论文还比较了 recurrent Transformer,发现参数复用可以带来一定 parameter efficiency,但会增加每个参数的 compute。由此可见,model size、depth、context length 和 per-token compute 之间不能只看一个数字。
Transfer scaling
模型只在 WebText2 上训练,却在 Books、Wikipedia、Common Crawl 和 Internet Books 等其他数据分布上测试。结果显示:
- 分布外 test loss 也随模型规模平滑下降;
- 不同分布上的 loss 与 WebText2 validation loss 高度相关;
- 主要差异近似表现为相对稳定的 additive offset;
- transfer performance 更依赖模型在训练分布上的 loss,而不是是否已经训练到 convergence 或训练了多久;
- 论文没有观察到明显的 depth-specific transfer advantage。
这可以理解为:在这些实验分布之间,模型规模带来的基础语言建模能力提升能够迁移,但不同分布仍然保留不可忽略的 domain gap。它不意味着一个 in-distribution loss 很好的模型会自动具备所有领域能力,更不能替代 domain-specific validation。
Model-Data Trade-off 与 Overfitting
联合 loss 拟合
仅分别拟合 和 还不能回答模型和数据同时变化时的表现。论文提出联合形式:
该形式满足三个边界条件:
- 当 时,退化为模型规模 scaling law;
- 当 时,退化为数据规模 scaling law;
- 在大 区域,对 具有整数次幂展开的形式。
对联合数据拟合得到:
这些数值与分别拟合 、 所得结果略有差异,这是因为联合拟合同时覆盖了完整的 model-data surface。
Overfitting ratio
论文定义相对于无限数据极限的 overfitting penalty:
由联合 scaling law 可得,它主要取决于:
这意味着数据量不需要与参数量线性增长,才能避免明显 overfitting;在该实验范围内,数据需求相对模型规模是 sublinear 的。
论文估计不同 random seed 带来的 loss variation 约为 0.02。若希望 overfitting penalty 不超过这一量级,经验条件约为:
按这一估计,参数量小于 的模型可以在 22B-token WebText2 上以很小的 overfitting 训练,而更大的模型会出现轻微 overfitting。这个结论没有优化 dropout 等 regularization,因此只能作为该实验设置下的经验边界。
如何理解这条规律
这组结果揭示的是两个不同问题:
- capacity scaling:增加模型参数可以降低模型表示不足造成的误差;
- data scaling:增加训练 token 可以降低数据不足和有限样本带来的误差。
如果只扩大 而不扩大 ,模型会进入 data-limited regime;如果只扩大 而不扩大 ,模型会进入 model-limited regime。总 token 数也不是有效数据量的充分代理:tokenizer、重复、数据质量和 domain composition 都会改变实际收益。
Training Time、Batch Size 与 Critical Batch Size
Training curve
在 infinite-data limit 下,论文用模型规模 和 batch-adjusted training steps 拟合 learning curve:
拟合值约为:
其中第一项表示有限模型规模带来的 loss floor,第二项表示训练 steps 不足带来的 optimization / training-time error。论文认为,在 warmup 之后的稳定训练区间,这个简单 power-law 对 learning curves 有相当好的描述;但在非常早期的 transient period,拟合会变差。
论文还提出,可以用早期 training curve 粗略外推更长训练后的 loss。这类外推必须建立在训练已经进入稳定 power-law 区间的前提上,不能把 warmup 或初始不稳定阶段直接拿去拟合。
Critical batch size
论文沿用 gradient noise scale 相关的 batch-size 理论,把达到某个目标 loss 所需的 steps 与处理样本数 联系起来:
据此定义:
在 时,增大 batch 可以减少串行 steps,但不会显著损害 compute efficiency;当 后,继续增大 batch 的收益变小。取 ,大约需要 steps 和 examples,是 step efficiency 与 compute efficiency 的折中点。
论文拟合的 critical batch size 为:
实验上, 对当前 loss 的依赖明显,而对 model size 没有直接依赖。论文观察到,在最大的实验模型接近 convergence 时,合适的 batch size 大约在 1-2M tokens 量级;同时,loss 下降会使 gradient noise scale 增大,因此训练后期适合使用更大的 batch。
Early stopping 与 data-limited training
把 finite-data learning curve 与 infinite-data learning curve 对齐,可以得到 data-limited regime 下 early stopping step 的下界:
它不是精确的 stopping rule,而是说明:数据越有限,模型到达最佳 test loss 的时间点越受 overfitting dynamics 影响;直接复用无限数据下的训练步数可能并不合适。
Compute-efficient Allocation
Kaplan-style 结论
论文把前面的 learning curve、critical batch size 和 compute 估算结合起来,研究固定 时的最优分配。经验结果为:
由此进一步得到:
这组 exponent 表达了一个很强的资源分配倾向:在该论文的拟合 regime 中,compute 增加时,大部分预算应该用于扩大模型;batch size 随之增加,而串行 optimizer steps 几乎不增加。论文将这种方案描述为“large models trained on a relatively modest amount of data and stopped before convergence”。
为什么会得到“大模型、短训练”
原因不是大模型在每个方面都更优,而是论文估计大模型具有更高的 sample efficiency:
- 大模型每个 optimization step 的 compute 更贵;
- 但达到同一 loss 所需的 steps 更少;
- 通过增大 batch,可以把更多数据处理转成并行度,而不显著增加串行时间;
- 在固定 compute 下,模型容量收益在论文实验范围内被认为比延长训练的收益更强。
论文的理论推导基于:
进而预测:
与经验拟合的 0.73 接近。
Efficient 与接近 convergence 的训练
论文进一步比较了 compute-efficient training 与通常“训练到看起来接近 convergence”的方案。在其模型中,compute-efficient 方案达到的 loss 大约比 converged loss 高 10%;如果把这个差异压到 2%,则需要:
- 约 2.7 倍的参数量才能达到相同 loss;
- 约 7.7 倍的 parameter updates;
- 约 2.9 倍的 compute,或反过来说 compute-efficient 方案约少用 65% compute。
这个比较描述的是论文拟合曲线中的理想化 trade-off。实际训练是否接受更高的 pretraining loss,要看数据复用、推理成本、后续适配计划和目标能力,而不能仅由 average loss 决定。
最优模型尺寸不是尖锐的点
论文估计,在达到同一目标 loss 时,使用约 到 最优参数量的模型,compute 增加约 20% 以内。也就是说,compute-optimal frontier 附近存在一定宽容区:
- 更小的模型可能有更低的 inference cost;
- 更大的模型可能需要略多 compute,但串行 steps 更少,适合有足够并行资源的训练系统;
- 真实选型还应纳入 serving cost、显存、并行效率和后续训练空间。
Scaling law 自身的矛盾与边界
论文注意到,compute-efficient allocation 得到的 data growth 速度较慢:
但为了控制 overfitting,根据 和 ,数据似乎需要按约 增长。两者最终会发生冲突:即使不重复数据,compute-efficient regime 也会逐渐遇到 data bottleneck。
论文估计这个交叉点大约在:
但作者明确认为这些数值不确定性很大,可能相差一个数量级;更合理的解读是:scaling law 必须在远超实验范围之前发生修正,而不是把交叉点当成自然语言能力的精确上限。
证据如何支持这些结论
多变量、跨数量级实验
论文不是只比较少数几个最终模型,而是分别改变:
- model size:约 768 到 1.5B non-embedding parameters;
- dataset size:约 22M 到 23B tokens;
- model shape:depth、width、heads 和 feed-forward dimension;
- context length;
- batch size;
- training steps 和 compute budget。
这种实验设计让作者能够把单变量 scaling、联合 model-data scaling、learning curve 和 compute allocation 连接起来。
拟合值并非跨设置通用
论文中不同章节的 exponent 和 scale constant 会有轻微差异。例如,单独拟合 与联合拟合 得到的 分别约为 0.095 和 0.103;training compute 的 naive curve 与 batch-adjusted curve 也不同。这不是矛盾,而是说明:
- 拟合对象不同;
- 是否校正 batch size 不同;
- 是否同时覆盖 model-data surface 不同;
- 数值常数依赖 tokenization、数据集和 loss 定义。
实际使用 scaling law 时,应保留拟合口径,不要只摘一个 exponent。
Learning-rate schedule 是比较条件的一部分
论文在附录中指出,training horizon 与 cosine schedule 的 cycle length 需要匹配。若 schedule 的 cycle length 比实际训练目标长超过约 25%,性能会明显下降;因此不能把为较长训练设计的 schedule 中途 loss,直接当成一个独立短训练 run 的最终 loss。
这点对 scaling 实验尤其重要:如果不同模型的训练时长和 schedule 没有同步调整,模型间差异可能混入 optimization schedule 的影响。Scaling law pilot runs 至少应固定 tokenizer、数据配方、optimizer、batch 口径、warmup、decay schedule 和 checkpoint 评测方式。
与 Chinchilla 的关系
两组结论的直接差异
这篇论文给出的 Kaplan-style compute allocation 是:
后来 Hoffmann 等人的 Chinchilla 研究在不同的实验设计下得到更均衡的分配,约为:
常见的简化经验是 dense LM 约使用 20 training tokens per parameter。
为什么不能简单理解成谁对谁错
两篇论文并不是只在同一个实验上给出相反答案:
- Kaplan 主要使用 WebText2 和相对较小规模的模型,结合 learning curve 与 critical batch size 推导 compute-efficient allocation;
- Chinchilla 使用更大范围、更多不同 training horizon 的 Transformer 实验,并强调 model size、training tokens 和 learning-rate schedule 应一起重新估计;
- 数据配方、模型族、优化器、batch 策略、训练时长和拟合方式均不完全相同;
- 早期的“大模型、短训练”结论可能在当时的实验范围内有效,但不能自动推广到后来的更大训练规模。
因此,当前更稳妥的知识框架是:把 Kaplan 作为早期 scaling law 与 compute allocation 基线,把 Chinchilla 作为对 model-data frontier 的后续修正。真正的训练项目仍应通过 pilot runs 在自己的 tokenizer、data mix、模型族和目标 loss / capability 上重新估计。
对当前训练设计的启发
Scaling experiment 应先固定实验语境
论文给当前训练规划的第一条启发,不是直接套用某个 exponent,而是把 scaling law 视为实验语境内的经验模型。若要为新的模型训练做外推,至少需要固定或显式记录:
- tokenizer 与 vocabulary;
- model parameter count 的统计口径;
- data mix、数据质量和重复次数;
- context length 与 packing 方式;
- optimizer、precision、global batch tokens;
- learning-rate warmup 和 decay schedule;
- validation split、domain validation loss 和 checkpoint 评估时点。
否则,拟合曲线可能把数据质量、schedule 或实现效率差异错误地解释成 scale effect。
不能用 average NTP loss 直接代替能力评测
论文证明了 loss scaling 很稳定,但作者自己也指出,平滑的 aggregate loss 变化可能隐藏 qualitative capability change。迁移到复杂训练任务时,应把以下指标分开看:
- 总 validation loss;
- code、math、academic、中文或其他目标 domain loss;
- 长上下文的 position-wise loss;
- task-level accuracy / success rate;
- 数据污染、重复和安全相关指标。
对于 Agent 或工具增强任务,平均 NTP loss 可以作为训练稳定性和分布拟合的信号,但不能单独证明模型学会了规划、工具选择、状态跟踪或错误恢复。
长轨迹数据需要区分 nominal tokens 与 effective supervision
如果训练语料包含很长的 environment observation、工具输出和重复上下文,token 数 的增加不必然等价于同量的新能力信息。论文中 的 scaling 结论建立在相对一致的 language modeling 数据分布之上;对于长轨迹,应至少额外统计:
- nominal tokens;
- assistant reasoning / action tokens;
- observation 与 tool-result tokens;
- unique information、重复率和数据质量;
- 不同 workflow / domain 的有效覆盖。
这不是对 NTP objective 的否定,而是对 effective data scaling 的细化:同样的 token budget,信息密度、时序结构和目标能力分布不同,带来的收益可能不同。
Pilot runs 应同时看 loss curve 与能力 curve
一个可操作的实验方式是:在目标模型和全量训练之前,构造多组较小规模 pilot,分别改变 、、training horizon 或数据 mixture,拟合:
training / validation loss
-> domain validation loss
-> target capability quick eval
-> longer-horizon or post-training validation如果总 loss 的 scaling 正常但目标能力不随之改善,说明该能力可能不是平均 token prediction 的充分统计量;如果某个 domain loss 恶化,则应优先检查 data mix 和数据配比,而不是继续扩大总 compute。
局限与疑问
缺少统一理论解释
论文明确承认,目前没有足够成熟的理论解释所有 scaling relation,尤其是 model size 和 compute scaling。power law 是对实验数据的高质量拟合,但还不是从数据分布、优化动力学和模型表示能力中严格推导出的定律。
外推范围有限
论文的主要模型规模、数据规模和 context length 都明显小于后续大模型训练。模型结构、tokenizer、数据质量、训练 precision 和优化器发生变化后,指数和常数都可能改变。论文自己也通过 compute-efficient data growth 与 overfitting growth 的冲突说明,当前 power law 必然需要在更大规模上修正。
目标是 language modeling loss,不是所有能力
论文主要优化和评估 cross-entropy loss。loss 与下游任务通常相关,但并不保证:
- 所有稀有能力都随平均 loss 同步提升;
- discrete benchmark 的阈值现象都是真实机制转变;
- transfer 到新的任务、交互协议或环境时仍保持相同 offset;
- post-training、tool use 和 agent success 可以用同一条曲线预测。
数据和正则化控制不充分
overfitting 实验没有对 dropout 等 regularization 做联合优化。大模型部分使用 Adafactor,而其他模型主要使用 Adam;不同 optimizer 可能引入额外差异。作者也指出,数据污染、训练集与测试集 overlap 以及 natural language entropy 的真实下限都限制了外推。
Compute 估算不是系统成本
主要描述 dense Transformer 的 arithmetic FLOPs。它没有直接反映:
- tensor / pipeline parallel communication;
- activation memory 和 checkpointing;
- data loading 与 I/O;
- hardware utilization;
- optimizer state 和 checkpoint storage;
- serving 与 inference cost。
因此 compute-optimal 不等于 wall-clock-optimal、memory-optimal 或 deployment-optimal。
关键结论
这篇论文可以沉淀为四个层次的认识:
- 经验规律层:在一致实验语境下,language model loss 随 、 和 呈现平滑的 power-law scaling。
- 诊断层:model-limited、data-limited、training-time-limited 和 batch-inefficient 是不同瓶颈,不能只用总参数量或总 token 数判断。
- 规划层:固定 compute 时,必须同时考虑 model size、data、batch 和串行 steps;Kaplan-style 早期拟合倾向大模型短训练,但这一分配后来被 Chinchilla 重新估计。
- 迁移层:loss scaling 可以作为训练外推和快速诊断工具,但对于新数据分布、长轨迹、Agent workflow 和离散能力,必须补充 domain-specific 与 task-level evaluation。