
从规模到能力:Scaling Law 与涌现
“大语言模型不断扩大参数、数据和训练算力,整体性能也随之提高。但“规模更大所以更强”只描述了结果,没有说明这种提升是否存在稳定规律,也没有回答算力应该分给模型还是数据。 Scaling Law(规模定律)描述规模变化与 Loss 之间的关系;Emergent Abilities(涌现能力)关注的则是另一层现象:平均 Loss 可以平滑下降,具体任务的能力却可能在某个规模区间迅速上升。两者放在一起,刚好对应“大模型怎样持续变强”和“为什么有些能力看起来突然出现”这两个问题。”
— 次阅读
目录
1.Scaling Law
大语言模型的预训练通常建立在 Next Token Prediction(下一词元预测) 上。给定前面的 token,模型需要预测下一个 token 的概率分布。
假设真实 token 被模型赋予的概率为 p,它对应的损失可以简单写成:
真实 token 的概率越高,Loss 越低。训练过程不断调整模型参数,本质上就是让真实 token 获得更高的预测概率。
于是可以把模型训练效果压缩成一个比较统一的指标:Cross Entropy Loss(交叉熵损失)。
有了这个指标以后,模型规模就不再只能靠“跑几个任务看看效果”来比较。可以直接观察参数量、数据量和训练计算量增加时,Loss 会怎样变化。
2020 年 OpenAI 的论文 Scaling Laws for Neural Language Models 系统研究了这个问题。论文主要关注三个量:模型参数量 N、训练数据量 D,以及训练计算量 C。这里的 D 通常按训练 token 数计算。
实验中,一个很重要的现象是:Loss 与这些规模变量之间通常近似服从 Power Law(幂律关系)。
幂律
只增加训练数据时,可以近似写成:
Kaplan 的实验中:
数据增加,Loss 会下降,但这个指数并不大。数据扩大 10 倍,并不会让 Loss 也下降 10 倍。
参数量同样有类似规律:
其中:
训练计算量也可以得到近似的幂律关系:
实验中:
三条曲线都表现出 边际收益递减:继续扩大规模通常仍能降低 Loss,但获得同样幅度的改善,需要投入越来越多的资源。
Scaling Law 的价值不在于给出某个固定的“最佳参数量”,而在于把模型性能和资源投入之间的关系变成一条可以拟合、可以外推的经验规律。
2. 训练算力
讨论 Scaling Law 时,经常会看到 Compute,但 Compute 并不只是 GPU 数量。
对于经典 Dense Transformer 的训练,可以粗略写成:
其中 B 表示 Batch Size,S 表示训练步数。训练 token 数 D 大致满足:
因此常见的近似形式是:
训练成本同时取决于模型参数量和处理过的 token 数。模型扩大一倍,如果训练数据量不变,Compute 会随之增加;模型不变但训练更多 token,同样需要额外计算。
因此固定 Compute 时,参数规模和训练数据会直接竞争同一份预算。
Batch 与步数
Batch Size 表示一次参数更新中参与梯度计算的数据量。
Batch 太小时,梯度估计中的噪声更大,参数更新方向容易波动。增大 Batch 可以让梯度更稳定,同时更适合并行计算,但这种收益不会一直持续。
当 Batch 超过 Critical Batch Size(临界批大小) 后,继续放大 Batch 的收益会明显下降。计算资源仍然在增加,但优化效率不再按原来的速度改善。
Training Steps 也有类似的边际收益。训练更久一般会继续降低 Loss:
但训练越靠后,Loss 下降往往越慢。单纯给同一个模型无限增加训练步数,并不是高效使用算力的方式。
算力本身只是一种预算,训练效率取决于这份预算被怎样分配。
3. 模型与数据
如果训练数据固定,只不断扩大模型参数,前期通常能看到明显收益。模型继续变大后,提升会逐渐减弱。
原因并不复杂。模型容量增加了,但训练数据能够提供的信息没有同步增加,最终会形成 Data Bottleneck(数据瓶颈)。参数很多,却没有足够的数据把这些容量训练出来。
反过来也一样。模型很小,即使给它大量数据,模型本身的容量也可能不足以吸收这些信息。这属于 Model Bottleneck(模型瓶颈)。
因此参数量和数据量不能完全分开考虑。更大的模型容量需要更多训练数据与之匹配,真正困难的是两者应该按什么比例增长。
4. Kaplan 的分配
Kaplan 的工作除了描述 Scaling Law,还研究了 Compute-Optimal(计算最优) 问题:给定一笔固定的训练计算预算,怎样选择参数量和数据量,才能把 Loss 压得更低。
论文得到的近似关系是:
这里两个指数差异很大。随着 Compute 增加,最优参数规模增长得更快,而数据量增长相对慢。
这种结果自然会把训练策略推向“大模型”:有更多算力以后,优先把更多资源放到参数规模上。
后来很多大型语言模型都沿着类似方向快速扩大参数量。但两年以后,Chinchilla 对这个结论做了一次很重要的修正。
5. Chinchilla 的修正
2022 年 DeepMind 的 Training Compute-Optimal Large Language Models 重新研究了固定 Compute 下的模型与数据分配。
它指出,当时不少大型模型其实处于 Undertrained(训练不足) 状态:参数已经很大,但用于训练的 token 不够多,很多模型容量没有被充分利用。
Chinchilla 得到的近似关系更接近:
参数量和数据量应该以接近的速度增长。
如果 Compute 增加 100 倍,可以粗略理解为:
而不是把大部分新增算力都拿去继续堆参数。
我最开始容易把 Chinchilla 理解成对 Kaplan 的否定,真正区分以后才发现,两者争论的并不是 Scaling 是否成立。它们都承认扩大规模可以持续降低 Loss,差别在于 固定训练预算下,Compute 应该分给参数还是数据。
| 对比项 | Kaplan | Chinchilla |
|---|---|---|
| 时间 | 2020 | 2022 |
| 关注点 | 模型扩大时 Loss 的缩放规律 | 固定 Compute 下参数与数据怎样搭配 |
| 参数规模 | 随 Compute 约按 0.74 次幂增长 | 随 Compute 约按 0.5 次幂增长 |
| 数据规模 | 随 Compute 约按 0.27 次幂增长 | 随 Compute 约按 0.5 次幂增长 |
| 训练倾向 | 更多算力优先扩大模型 | 参数和数据同步扩大 |
这种修正把“大模型训练”从单纯追求参数规模,进一步拉向了 Compute-Optimal Training(计算最优训练)。
验证方法
Chinchilla 并不是只训练一个模型再拟合一条曲线,而是从不同角度重复寻找固定算力下的最优组合。
Training Curve Envelope(训练曲线包络) 的思路是训练大量不同大小的模型,记录它们的 Loss 与 Compute。在 10¹⁸、10¹⁹、10²⁰ FLOPs 等不同预算位置,分别找 Loss 最低的模型。
这些最优点连起来形成 Efficient Frontier / Envelope(效率前沿 / 包络线),再观察最优模型规模和最优数据量分别怎样随计算预算变化。
IsoFLOP 则把 Compute 直接固定下来。
因为:
当计算预算固定时,模型参数量和训练 token 数会互相挤占预算。模型越大,能训练的 token 就越少;模型越小,则可以在更多数据上训练。
实际结果通常会形成一条 U 型曲线:一侧是模型太小导致容量不足,另一侧是模型太大但训练数据不足,中间存在一个 Loss 更低的组合。
第三种方式是直接把 Loss 写成参数量和数据量的函数:
这个式子把 Loss 拆成三部分:E 是难以继续消除的误差;第二项随模型参数 N 增大而减小,表示模型容量不足带来的损失;第三项随数据量 D 增大而减小,表示训练数据不足带来的损失。
再加上计算预算约束 C ≈ 6ND 后,问题就变成了:在固定计算预算里,怎样选择 N 和 D,才能让 Loss 最低。
三种方法得到的具体指数并不完全相同,但都支持一个相近的结果:参数规模和数据规模需要更均衡地增长。
6. Scaling 的边界
Scaling Law 经常被概括成参数、数据和算力三个变量,但真实训练过程当然比三个字母复杂。
学习率
Learning Rate(学习率) 决定每次参数更新的步长。学习率太大容易导致训练不稳定,太小又会让收敛速度变慢。
Batch Size 增大以后,梯度估计通常更稳定,因此往往可以配合更大的学习率。Batch 和 Learning Rate 并不是彼此独立的超参数。
架构
Kaplan 等经典实验主要建立在 Dense Transformer 上。在固定参数量时,网络深度、宽度和 Attention Head 数量的变化,对整体 Scaling 趋势的影响相对有限。
这个结论不能直接套到现代所有模型上。MoE(Mixture of Experts,混合专家)、GQA(Grouped Query Attention)和 MQA(Multi-Query Attention)都会改变计算效率和参数使用方式,因此也会改变“同样参数量”或“同样 Compute”真正代表的东西。
上下文
预测一个 token 时,可用的前文越多,模型通常越容易判断它应该是什么。经典实验里,上下文增加时 Loss 往往会下降。
序列开头的 token 几乎没有上下文,而靠后的 token 可以利用前面更多信息。更大的模型通常也更善于利用这些上下文信息。
7. 分布偏移
训练数据和测试数据并不总来自同一个分布。例如模型在 WebText2 上训练,却在 Books、Wikipedia 或 Common Crawl 上测试。这类情况属于 Out-of-Distribution(OOD,域外分布) 测试。
换到 OOD 数据后,Loss 通常会上升,因为模型面对的数据分布已经发生变化。但实验里仍能观察到一个值得注意的现象:随着参数规模增加,Loss 下降的 Scaling 趋势大体还在。
这说明 Scaling Law 在一定程度上具有跨分布稳定性,但不能把它理解成“大模型自动解决分布偏移”。如果训练数据本身缺失某类知识,或者测试分布变化非常严重,仅仅增加参数量并不能保证问题消失。
8. 涌现能力
Scaling Law 主要观察的是 Cross Entropy Loss。它随模型规模扩大时,通常是一条相对平滑的曲线。
但后来一些工作把关注点从平均 Loss 转向具体任务,发现了另一类现象:小模型在某些任务上几乎和随机猜测差不多,规模达到某个区域后,任务性能突然明显上升。
这种现象被称为 Emergent Abilities(涌现能力)。
曾经出现过类似表现的任务包括:
- Modular Arithmetic(模运算)
- IPA Transliteration(音标转写)
- Word Unscramble(单词重排)
- Persian QA(波斯语问答)
这里的“涌现”描述的是任务曲线的形状,并不意味着已经证明模型内部发生了某种瞬间的结构性变化。
Few-shot 与 ICL
涌现研究里经常涉及 Few-shot Prompting,因为一些能力并不需要重新训练模型,而是在上下文中给出少量示例后表现出来。
例如:
Review: This movie sucks.
Sentiment: negative.
Review: I love this movie.
Sentiment:
模型如果输出 positive,说明它根据 Prompt 中已有的示例理解了当前任务。
这类方式通常称为 Few-shot Prompting(少样本提示)。更广义地说,模型利用当前上下文中的示例、指令或模式完成任务,可以放在 In-context Learning(上下文学习,ICL) 的框架下理解。Few-shot Prompting 可以看作 ICL 的一种典型形式;它和 Fine-tuning 最直接的区别,是推理时不会修改模型参数。
推理与指令
一些增强推理或指令能力的方法也曾表现出类似的规模效应。
Chain-of-Thought(思维链提示,CoT) 通过中间推理步骤帮助模型处理复杂问题。较小模型使用 CoT 时可能收益很有限,而更大的模型能够明显从中受益,因此 CoT 的有效性也曾被描述为具有涌现特征。
Instruction Tuning(指令微调) 让模型在总结、翻译、问答、推理、代码生成等自然语言指令上进行训练。一些实验中,小模型获得的收益有限,规模更大后提升更加明显。
Scratchpad(草稿推理) 的思路相近:先保留中间计算过程,再得到最终结果。在复杂算术和多步推理任务里,大模型往往更能利用这些中间步骤。
这些现象共同指向一个问题:底层能力如果是连续提高的,为什么任务准确率看起来会突然跳起来?
9. 涌现能力为什么看起来突然
一种常见解释来自多步任务。
假设一个任务需要连续完成 L 个步骤,每一步的正确率都是 p。如果必须所有步骤都正确,最终成功概率可以粗略写成:
对于一个需要 10 步的任务:
单步正确率从 80% 提高到 97% 是连续变化,但最终任务成功率从约 10.7% 上升到了 73.7%。底层能力没有发生明显断点,上层任务指标却可以表现得非常陡。
这并不能解释所有涌现现象,但说明了一种可能性:底层能力保持连续增长,多步组合本身就足以让最终任务曲线变得很陡,不需要额外假设模型在某个规模点突然发生了质变。
10. 评测争议
Emergent Abilities 后来存在不少争议,其中一个重要原因是 Evaluation Metric(评测指标)。
Exact Match 是最典型的例子。答案完全正确记为 1,只要有一点错误就记为 0。
假设模型能力实际上在持续改善,答案质量可以粗略表示为:
20 → 40 → 60 → 80 → 100
Exact Match 却可能只记录成:
0 → 0 → 0 → 0 → 1
最终画出的曲线看起来像是模型在最后一个规模点“突然获得了能力”,但这种突变有一部分可能来自离散的评测方式,而不是模型内部真正发生了不连续变化。
因此对 Emergence 更稳妥的理解是:某些任务确实会随着规模扩大出现非常陡峭的性能提升,但这种现象是否代表严格意义上的“不连续能力涌现”,需要结合具体任务和评测方法判断。
11. Scaling 与涌现
Scaling Law 和 Emergence 观察的是不同层次。前者主要研究平均 Cross Entropy Loss,后者关心具体任务是否能够完成。
模型规模扩大后,Loss 可以平滑地从 3.0 → 2.9 → 2.8 → 2.7 → 2.6。复杂任务却往往同时依赖语言理解、知识记忆、上下文处理、逻辑推理和数学能力,只要其中一个环节仍然不足,最终任务就可能失败。
随着这些底层能力分别改善,多个环节可能在相近的规模区间里同时达到“足以完成任务”的水平。于是平均 Loss 仍沿着 Scaling Law 平滑下降,具体任务的准确率却可以迅速上升。两种曲线并不矛盾,只是描述了模型能力的不同侧面。
12. 知识总结
- Scaling Law 描述模型规模与 Loss 之间的经验规律。参数量、训练数据和计算量扩大时,Loss 通常按幂律下降,但收益会逐渐递减。
- 训练计算量可以粗略理解为
C ≈ 6ND。N 是模型参数量,D 是训练 token 数,因此参数规模和数据规模会共同消耗计算预算。 - Compute-Optimal 关注的不是“模型越大越好”,而是在固定 Compute 下怎样分配参数量和训练数据,才能得到更低的 Loss。
- Kaplan 的结果更倾向于把新增算力分给模型参数;Chinchilla 则发现许多早期大模型训练不足,更强调参数量和训练 token 同步增长。
- Scaling Law 不是只由 N、D、C 决定。Batch Size、Learning Rate、模型架构、上下文长度和数据分布都会影响实际训练表现。
- Emergent Abilities 描述的是某些具体任务随规模扩大出现陡峭性能提升的现象。它不等于已经证明模型内部在某个规模点发生了突然的“质变”。
- 平滑的底层能力经过多步组合,再叠加 Exact Match 这类离散评测指标,就可能表现出类似“突然涌现”的曲线。因此 Scaling Law 与 Emergence 并不矛盾:前者主要观察平均 Loss,后者观察具体任务表现。
13. 参考
- Jared Kaplan et al., 2020. Scaling Laws for Neural Language Models
- Jordan Hoffmann et al., 2022. Training Compute-Optimal Large Language Models
- Jason Wei et al., 2022. Emergent Abilities of Large Language Models
- Rylan Schaeffer, Brando Miranda, Sanmi Koyejo, 2023. Are Emergent Abilities of Large Language Models a Mirage?
- ZOIMI https://github.com/Infrasys-AI/AIInfra/blob/main/00Summary/02StandardScaling.md

评论
欢迎交流想法,也欢迎留下问题。
正在加载评论…
无需登录,昵称和邮箱为必填项。邮箱不会公开,仅用于身份区分与回复通知;服务端会保留必要的请求时间、IP 和设备信息,用于反垃圾、限流、封禁与安全审计。