在人工智能的世界里,大型语言模型 (LLM) 似乎是一种现代炼金术。我们将海量数据集、庞大的神经网络和惊人数量的计算资源混合在一起——然后就诞生了能够写诗、调试代码和解释复杂主题的模型。
但这一切为什么会起作用?如果我们拥有十倍的资源,我们能让它进步多少?这背后是否有章可循,还是只是碰运气?
2020年,来自 OpenAI 和约翰斯·霍普金斯大学的一组研究人员发表了里程碑式的论文《神经语言模型的缩放定律》 (Scaling Laws for Neural Language Models) ,为这个混沌的领域带来了非凡的清晰度。他们发现,语言模型的性能一点也不随机,相反,它遵循着简单、可预测的数学规律——具体来说,是幂律——并且这种规律在跨越惊人的七个数量级时都成立。
这篇论文提供了一份类似构建 LLM 的速查表: 它告诉我们如何扩展模型、需要多少数据,以及如何最优分配固定的计算预算。这些见解不仅实用,而且深刻,暗示着人工智能能力的质变可能源于平滑、可预测的量的扩展。
在本文中,我们将解析论文的核心发现,并探索支配着我们时代最复杂技术之一的简单定律。
背景: 衡量模型的“好坏”
在深入探讨之前,让我们先统一一些基本概念。本研究中的模型主要是 Transformer——这种神经网络架构为几乎所有现代 LLM 提供了动力。它们的训练任务很直接: 预测文本序列中的下一个词 (更准确地说是下一个词元) 。
我们如何衡量模型执行该任务的好坏呢?这里的主要指标是**交叉熵损失 **(cross-entropy loss) ——可以把它看作是惊讶程度的量度。
- 如果模型在看到“the big blue …”后强烈预测下一个词是“sky”,而实际的词确实是“sky”,那么损失就很低。
- 如果实际的下一个词是“house”,模型会感到惊讶,损失就会高。
损失越低意味着预测越好,这与更强的语言理解能力相关。训练的目标始终是尽可能降低损失。
研究人员训练了数百个 Transformer 模型,调整了许多因素:
- 参数数量
- 训练数据量
- 训练时长
- 甚至模型的形状 (深度与宽度)
然后,他们测量最终的测试损失,来探究最关键的影响因素。
规模化的三大支柱: 模型大小、数据和算力
该论文的核心发现是,语言模型的性能主要由三个因素决定:
- 模型大小 (N): 网络中可训练的非嵌入参数数量。
- 数据集大小 (D): 模型在训练中看到的词元总数量。
- 算力 (C): 用于训练的总计算量。
至关重要的是,损失与这些因素之间的关系遵循幂律。简单来说,当你增加 N、D 或 C 时,损失会沿着一条平滑、可预测的曲线下降。这一点在该论文的主要总结图中有清楚的展示:
图 1: 随着模型大小、数据集大小和算力的提升,语言建模性能平滑改善。当不受另外两个因素的瓶颈限制时,每一个因素与测试损失均呈现幂律关系。
在对数–对数坐标系中绘制时,结果会呈现令人惊讶的直线——这是幂律关系的标志。这种可预测性十分强大: 它意味着我们可以先训练较小模型,观察其性能,然后推算出更大模型在训练前就能达到的表现。
这些缩放关系的简化版本为:
受模型大小 (N) 限制:
\[ L(N) = \left( \frac{N_c}{N} \right)^{\alpha_N} \]受数据集大小 (D) 限制:
\[ L(D) = \left( \frac{D_{\rm c}}{D} \right)^{\alpha_D} \]受算力 (C) 限制:
\[ L(C_{\min}) = \left( \frac{C_{\rm c}^{\min}}{C_{\min}} \right)^{\alpha_{\rm c}^{\min}} \]
这里,\(\alpha\) 是对数–对数空间中直线的斜率,而 \(N_c, D_c, C_c\) 是与数据集有关的常数。关键洞见是: 这种关系的形式是普适的。
重要的是大小,而非形状
一个令人惊讶的发现: 什么不那么重要。你应该构建一个深而窄的 Transformer,还是一个浅而宽的 Transformer?在合理范围内,只要总参数数量 \(N\) 相同,这对性能影响甚微。
图 5: 对于固定的非嵌入参数数量,模型性能在架构 (宽高比、前馈比率等) 大幅变化的情况下,仅有几个百分点的波动。
这极大地简化了模型设计。研究人员无需耗费大量精力调节诸如层数或注意力头数等超参数,而只需专注于一件事: 增加总参数数量。
一个关键细节: 只计算非嵌入参数
一个重要的改进是意识到,决定性作用的“模型大小” \(N\) 应只包括非嵌入参数——即 Transformer 层中的参数,而不是词元嵌入中的参数。
一个语言模型包含:
- 核心模型: 处理输入并学习模式的 Transformer 层。
- 嵌入矩阵: 将每个词/词元映射到一个向量表示。
将嵌入参数计入 \(N\) 会混淆缩放规律。而只统计非嵌入参数可以得到更清晰、更普遍的趋势。
图 6: 左图: 包含嵌入参数时,性能依赖于深度和大小。右图: 排除嵌入参数后,趋势收敛到一条与深度无关的曲线。
实际意义: 减少嵌入矩阵的大小可以在不损害核心性能的前提下提高效率。
数据瓶颈: 多少才够?
模型大小与数据集大小之间的缩放定律提出了一个关键问题: 随着模型变大,我们需要多少额外数据?如果数据集大小固定而模型增大,模型最终会过拟合,性能出现平台期。
论文提出了一个结合 \(N\) 和 \(D\) 的统一公式:
\[ L(N,D) = \left[ \left( \frac{N_c}{N} \right)^{\frac{\alpha_N}{\alpha_D}} + \frac{D_c}{D} \right]^{\alpha_D} \]图 9: 左图: 当数据集 D 足够大时,性能随 N 平滑提升。右图: 对于较小的 D,过拟合导致增益趋于平缓,且过拟合与 \(N^{\alpha_N / \alpha_D} / D\) 高度相关。
由此,作者们提炼出一个避免数据瓶颈的优雅经验法则:
\[ D \propto N^{0.74} \]意味着: 模型大小每增加 10 倍,数据量只需增加约 5.5 倍即可避免过拟合。数据需求的增长速度远慢于模型大小——对实践者而言是个好消息。
效率之谜: 更大的模型学得更快
另一个关键发现涉及**样本效率 **(sample efficiency) ——即模型从数据中学习速度的快慢。更大的模型在样本效率上显著高于小模型。
图 2: 大模型比小模型在处理的词元数和算力消耗上更快达到低损失,因此样本效率更高。
一个十亿参数的模型可能仅用几十亿个词元就能达到 4.0 的损失;而一个微型模型无论训练多久,可能永远达不到这个水平。
最优策略: 训练巨型模型,提前停止
当算力预算 \(C\) 固定时,我们该如何分配?
选项:
- 将小模型训练至收敛。
- 将中等模型训练适中时长。
- 将巨型模型训练较短时间。
缩放定律揭示了一个反直觉的真相:** 最优策略是训练你能负担的最大模型,并在远未完全收敛时就停止训练**。
图 3: 大部分额外算力应投向更大的模型。只需稍微增加数据/批次大小,训练步数几乎不变。
在最优分配下:
\[ N \propto C^{0.73}, \quad S \propto C^{0.03} \]图 14: 左图: 算力每增加 10 倍,最优模型大小增长约 5 倍。右图: 最优训练步数几乎不变。
这意味着随着算力预算增加,几乎所有额外资源都应该用于扩大模型,而非延长训练时间。
展望未来: 一个矛盾与一个猜想
幂律在不同尺度上都成立——但它们不可能永远持续。语言有固有的熵,因此损失不可能降到零;曲线最终必然趋于平缓。
作者们外推后发现了一个矛盾: 算力高效训练预测的性能提升,最终会超过在数据使用缓慢增长 (\(D \propto C^{0.27}\)) 情况下所能达到的极限。
图 15: 基于算力的扩展将超过数据集增长所能带来的性能。在此之后,缩放定律必将失效。
这一交叉点——约在 \(10^{12}\) 参数规模——可能意味着 Transformer 已经从文本中提取了绝大部分可预测信息。此时的损失 (约 1.7 nats/token) 可能接近自然语言的不可约熵。
结论: 人工智能的未来蓝图
《神经语言模型的缩放定律》这篇论文将该领域从经验技艺转变为科学。它用可预测的、实证的规律替代了猜测,揭示了规模化下支配语言模型性能的法则。
核心要点:
- 性能可预测: 模型损失随模型大小、数据集与算力呈幂律缩放——可用于预测更大模型的表现。
- 规模胜于形状: 非嵌入参数数量主导性能,在合理范围内深度/宽度影响很小。
- 越大越好 (也越快) : 大模型能更充分地利用相同数据。
- 训练大模型,提前停止: 在算力预算内尽量扩大模型,即使无法完全收敛。
这些原则奠定了 GPT-3 及后续模型的设计基础,也增强了我们推动规模边界、构建更强大系统的信心。
这些定律描述的平滑量变,可能暗藏能力上的巨大质变——正如物理学家 P.W. Anderson 恰当地指出的: *“量变引起质变” *(More is different) 。这篇论文为我们绘制了探索未来之路的地图,去探究事物究竟能变得多么不同。