# 2020 Kaplan et al.

Scaling Laws for Neural Language Models

神经语言模型的缩放定律 (Scaling Laws for Neural Language Models) Jared Kaplan 约翰霍普金斯大学, OpenAI jaredk@jhu.edu Sam McCandlish OpenAI sam@openai.com Tom Henighan OpenAI henighan@openai.com To...

精粹译文

神经语言模型的缩放定律 (Scaling Laws for Neural Language Models)

Jared Kaplan* 约翰霍普金斯大学, OpenAI jaredk@jhu.edu

Sam McCandlish* OpenAI sam@openai.com

Tom Henighan OpenAI henighan@openai.com

Tom B. Brown OpenAI tom@openai.com

Benjamin Chess OpenAI bchess@openai.com

Rewon Child OpenAI rewon@openai.com

Scott Gray OpenAI scott@openai.com

Alec Radford OpenAI alec@openai.com

Jeffrey Wu OpenAI jeffwu@openai.com

Dario Amodei OpenAI damodei@openai.com


摘要

我们研究了语言模型在交叉熵损失(cross-entropy loss)下的经验缩放定律。损失函数随模型大小、数据集大小和训练所用计算量呈幂律(power-law)缩放,某些趋势跨越了七个以上的数量级。其他架构细节(如网络宽度或深度)在很大范围内影响甚微。简单的方程控制了过拟合对模型/数据集大小的依赖性,以及训练速度对模型大小的依赖性。这些关系使我们能够确定固定计算预算下的最优分配。更大的模型具有显著更高的样本效率,因此,最优的计算效率训练涉及在相对适量的数据上训练非常大的模型,并在收敛前显著停止。


同等贡献。

贡献: Jared Kaplan 和 Sam McCandlish 领导了这项研究。Tom Henighan 贡献了 LSTM 实验。Tom Brown、Rewon Child、Scott Gray 和 Alec Radford 开发了优化的 Transformer 实现。Jeff Wu、Benjamin Chess 和 Alec Radford 开发了文本数据集。Dario Amodei 在整个项目过程中提供了指导。


目录

  1. 引言
  2. 背景与方法
  3. 经验结果与基本幂律
  4. 绘制无限数据极限与过拟合
  5. 模型大小与训练时间的缩放定律
  6. 计算预算的最优分配
  7. 相关工作
  8. 讨论 附录 A. 幂律总结 B. 计算效率前沿的经验模型 C. 注意事项 D. 补充图表

1. 引言

语言为人工智能的研究提供了一个自然的领域,因为绝大多数推理任务都可以用语言有效地表达和评估,而世界上的文本为通过生成式建模进行无监督学习提供了丰富的数据。深度学习最近在语言建模方面取得了快速进展,最先进的模型 [RNSS18, DCLT18, YDY+19, LOG+19, RSR+19] 在许多特定任务上接近人类水平的性能 [WPN+19],包括创作连贯的多段落提示文本样本 [RWC+19]。

人们可能预期语言建模性能取决于模型架构、神经模型的大小、用于训练它们的计算能力以及该训练过程可用的数据。在这项工作中,我们将实证研究语言建模损失对所有这些因素的依赖性,重点关注 Transformer 架构 [VSP+17, LSP+18]。语言任务性能的高上限和低下限使我们能够研究跨越七个以上数量级的趋势。

在整个过程中,我们将观察到性能作为训练时间、上下文长度、数据集大小、模型大小和计算预算的函数,呈现出精确的幂律缩放。

1.1 摘要

我们对 Transformer 语言模型的关键发现如下:

图1:随着我们增加模型大小、数据集大小和用于训练的计算量,语言建模性能平滑提高。为了获得最佳性能,这三个因素必须协同缩放。当不受其他两个因素瓶颈限制时,经验性能与每个单独因素呈幂律关系。

注:此处我们展示了使用足够小的批次大小时的预测计算量。有关与纯经验数据的比较,请参见图 13。

性能强烈依赖于规模,弱依赖于模型形状: 模型性能最强烈地依赖于规模,规模由三个因素组成:模型参数数量 NN(不包括嵌入)、数据集大小 DD 以及用于训练的计算量 CC。在合理范围内,性能对深度与宽度等其他架构超参数的依赖非常微弱。(第 3 节)

平滑的幂律: 当不受其他两个因素瓶颈限制时,性能与三个规模因素 N,D,CN, D, C 中的每一个都呈幂律关系,趋势跨越了六个以上的数量级(见图 1)。我们观察到这些趋势在高端没有偏离的迹象,尽管性能在达到零损失之前最终必须趋于平缓。(第 3 节)

过拟合的普遍性: 只要我们协同缩放 NNDD,性能就会可预测地提高;但如果固定 NNDD 而增加另一个,则会进入收益递减的区间。性能惩罚可预测地依赖于比率 N0.74/DN^{0.74}/D,这意味着每次我们将模型大小增加 8 倍,我们只需要增加约 5 倍的数据量即可避免惩罚。(第 4 节)

训练的普遍性: 训练曲线遵循可预测的幂律,其参数大致与模型大小无关。通过外推训练曲线的早期部分,我们可以粗略预测如果训练更长时间将达到的损失。(第 5 节)

迁移随测试性能提高: 当我们在与训练分布不同的文本上评估模型时,结果与训练验证集上的结果强相关,且损失存在大致恒定的偏移——换句话说,迁移到不同的分布会产生恒定的惩罚,但除此之外,其改进大致与训练集上的性能一致。(第 3.2.2 节)

样本效率: 大模型比小模型更具样本效率,以更少的优化步骤(图 2)和更少的数据点(图 4)达到相同的性能水平。

收敛是低效的: 当在固定的计算预算 CC 内工作,但对模型大小 NN 或可用数据 DD 没有其他限制时,我们通过训练非常大的模型并在收敛前显著停止来获得最佳性能(见图 3)。因此,最大计算效率的训练将比基于训练小模型至收敛的预期要高效得多,数据需求随训练计算量的增长非常缓慢,即 DC0.27D \sim C^{0.27}。(第 6 节)

最优批次大小: 训练这些模型的理想批次大小仅大致是损失的幂函数,并且可以通过测量梯度噪声尺度 [MKAT18] 来确定;对于我们能训练的最大模型,在收敛时它大约是 100-200 万个 token。(第 5.1 节)

总而言之,这些结果表明,随着我们适当地扩大模型大小、数据和计算量,语言建模性能会平滑且可预测地提高。我们预计更大的语言模型将比当前模型表现更好,且更具样本效率。


1.2 缩放定律总结

当性能仅受非嵌入参数 NN、数据集大小 DD 或最优分配的计算预算 CminC_{\text{min}} 限制时,训练用于自回归建模语言的 Transformer 的测试损失可以使用幂律进行预测(见图 1):

  1. 对于参数数量有限、在足够大的数据集上训练至收敛的模型: L(N)=(Nc/N)αN;αN0.076,Nc8.8×1013 (非嵌入参数)(1.1)L(N) = (N_c/N)^{\alpha_N} ; \alpha_N \sim 0.076, N_c \sim 8.8 \times 10^{13} \text{ (非嵌入参数)} \quad (1.1)

  2. 对于在有限数据集上训练并进行早停的大模型: L(D)=(Dc/D)αD;αD0.095,Dc5.4×1013 (tokens)(1.2)L(D) = (D_c/D)^{\alpha_D} ; \alpha_D \sim 0.095, D_c \sim 5.4 \times 10^{13} \text{ (tokens)} \quad (1.2)

  3. 当使用有限的计算量、足够大的数据集、最优大小的模型和足够小的批次大小(对计算进行最优利用)进行训练时: L(Cmin)=(Ccmin/Cmin)αCmin;αCmin0.050,Ccmin3.1×108 (PF-days)(1.3)L(C_{\text{min}}) = (C_c^{\text{min}}/C_{\text{min}})^{\alpha_C^{\text{min}}} ; \alpha_C^{\text{min}} \sim 0.050, C_c^{\text{min}} \sim 3.1 \times 10^8 \text{ (PF-days)} \quad (1.3)

注:我们在固定批次大小训练时也观察到与训练计算量 CC 的经验幂律趋势(图 1),但应使用与 CminC_{\text{min}} 的趋势来进行预测。它们通过方程 (5.5) 相关联。


图2:我们展示了一系列语言模型训练运行,模型大小范围从 10^3 到 10^9 个参数(不包括嵌入)。

图3:随着更多计算量的可用,我们可以选择分配多少用于训练更大的模型、使用更大的批次以及训练更多的步骤。我们以计算量增加十亿倍为例进行了说明。为了获得最优的计算效率训练,大部分增加的计算量应投入到增加模型大小上。需要少量增加数据以避免重复使用。增加的数据中,大部分可用于通过更大的批次大小来增加并行性,仅需极少增加串行训练时间。


图4:左:早停测试损失 L(N, D) 根据方程 (1.5) 随数据集大小 D 和模型大小 N 可预测地变化。右:经过初始瞬态期后,所有模型大小 N 的学习曲线都可以用方程 (1.6) 拟合,该方程以 S_{\text{min}}(在大批次大小下训练时的步数)为参数(详情见第 5.1 节)。

这些关系在 CminC_{\text{min}} 的八个数量级、NN 的六个数量级以及 DD 的两个以上数量级范围内成立。它们对模型形状和其他 Transformer 超参数(深度、宽度、自注意力头数)的依赖非常微弱,且具有与 Webtext2 训练集 [RWC+19] 相关的特定数值。幂律 αN,αD,αCmin\alpha_N, \alpha_D, \alpha_C^{\text{min}} 指定了我们扩大 N,DN, DCminC_{\text{min}} 时预期的性能改进程度;例如,参数数量加倍会使损失减小 2αN=0.952^{-\alpha_N} = 0.95 倍。Nc,CcminN_c, C_c^{\text{min}}DcD_c 的精确数值取决于词汇表大小和分词,因此没有根本意义。

临界批次大小(决定了数据并行性的速度/效率权衡 [MKAT18])也大致服从损失的幂律: Bcrit(L)=BL1/αB,B2108 tokens,αB0.21(1.4)B_{\text{crit}}(L) = \frac{B_*}{L^{1/\alpha_B}}, B_* \sim 2 \cdot 10^8 \text{ tokens}, \alpha_B \sim 0.21 \quad (1.4)

方程 (1.1) 和 (1.2) 一起表明,随着我们增加模型大小,我们应该根据 DNαN/αDN0.74D \propto N^{\alpha_N/\alpha_D} \sim N^{0.74} 次线性地增加数据集大小。事实上,我们发现有一个单一的方程结合了 (1.1) 和 (1.2),它控制了对 NNDD 的同时依赖性,并控制了过拟合程度: L(N,D)=[(NcN)αN/αD+DcD]αD(1.5)L(N, D) = \left[ \left( \frac{N_c}{N} \right)^{\alpha_N/\alpha_D} + \frac{D_c}{D} \right]^{\alpha_D} \quad (1.5) 拟合结果如图 4 左侧所示。我们推测这种函数形式也可能参数化其他生成式建模任务的训练对数似然。

当在无限数据极限下为有限的参数更新步骤 SS 训练给定模型时,经过初始瞬态期后,学习曲线可以被精确拟合(见图 4 右侧): L(N,S)=[(NcN)αN+(ScSmin(S))αS](1.6)L(N, S) = \left[ \left( \frac{N_c}{N} \right)^{\alpha_N} + \left( \frac{S_c}{S_{\text{min}}(S)} \right)^{\alpha_S} \right] \quad (1.6) 其中 Sc2.1×103S_c \approx 2.1 \times 10^3αS0.76\alpha_S \approx 0.76Smin(S)S_{\text{min}}(S) 是使用方程 (5.4) 估计的最小可能优化步骤(参数更新)。

当在固定计算预算 CC 内训练,但没有其他限制时,方程 (1.6) 导致预测最优模型大小 NN、最优批次大小 BB、最优步骤数 SS 和数据集大小 DD 应增长为: NCminαCmin/αN,BCminαCmin/αB,SCminαCmin/αS,D=BS(1.7)N \propto C_{\text{min}}^{\alpha_C^{\text{min}}/\alpha_N}, B \propto C_{\text{min}}^{\alpha_C^{\text{min}}/\alpha_B}, S \propto C_{\text{min}}^{\alpha_C^{\text{min}}/\alpha_S}, D = B \cdot S \quad (1.7) 其中 αCmin=1/(1/αS+1/αB+1/αN)(1.8)\alpha_C^{\text{min}} = 1/ (1/\alpha_S + 1/\alpha_B + 1/\alpha_N) \quad (1.8) 这与经验最优结果 NCmin0.73,BCmin0.24N \propto C_{\text{min}}^{0.73}, B \propto C_{\text{min}}^{0.24}SCmin0.03S \propto C_{\text{min}}^{0.03} 紧密匹配。随着计算预算 CC 的增加,它应该主要用于更大的模型,而无需大幅增加训练时间或数据集大小(见图 3)。这也意味着随着模型变大,它们变得越来越具有样本效率。在实践中,研究人员通常训练较小的模型比硬件约束下最大计算效率所需的训练时间更长。最优性能取决于总计算量,呈幂律(见方程 (1.3))。

我们为方程 (1.5) 提供了基本的理论动机,分析了学习曲线拟合及其对训练时间的影响,并按 token 分解了我们的结果。我们还对 LSTM 和循环 Transformer [DGV+18] 进行了简要比较。


1.3 符号

我们使用以下符号:

  • LL – 以 nats 为单位的交叉熵损失。通常它是在上下文中的 token 上平均的,但在某些情况下,我们报告上下文中特定 token 的损失。
  • NN – 模型参数数量,不包括所有词汇表和位置嵌入。
  • C6NBSC \approx 6NBS – 总非嵌入训练计算量的估计,其中 BB 是批次大小,SS 是训练步骤数(即参数更新)。我们以 PF-days 为单位引用数值,其中 1 PF-day = 1015×24×3600=8.64×101910^{15} \times 24 \times 3600 = 8.64 \times 10^{19} 次浮点运算。
  • DD – 以 token 为单位的数据集大小。
  • BcritB_{\text{crit}} – 临界批次大小 [MKAT18],在第 5.1 节中定义和讨论。在临界批次大小下训练提供了时间与计算效率之间大致最优的折衷。
  • CminC_{\text{min}} – 达到给定损失值所需的非嵌入计算量的估计。这是如果模型在远小于临界批次大小的批次大小下训练时所使用的训练计算量。
  • SminS_{\text{min}} – 达到给定损失值所需的最小训练步骤数的估计。这也是如果模型在远大于临界批次大小的批次大小下训练时所使用的训练步骤数。
  • αX\alpha_X – 损失缩放的幂律指数,即 L(X)1/XαXL(X) \propto 1/X^{\alpha_X},其中 XX 可以是 N,D,C,S,B,CminN, D, C, S, B, C_{\text{min}} 中的任何一个。

2. 背景与方法

我们在 WebText2 上训练语言模型,这是 WebText [RWC+19] 数据集的扩展版本,使用字节对编码 [SHB15] 进行分词,词汇表大小 nvocab=50257n_{\text{vocab}} = 50257。我们优化在 1024-token 上下文上平均的自回归对数似然(即交叉熵损失),这也是我们的主要性能指标。我们记录了 WebText2 测试分布以及其他文本分布选择上的损失。我们主要训练仅解码器 [LSP+18, RNSS18] Transformer [VSP+17] 模型,尽管我们也训练了 LSTM 模型和通用 Transformer [DGV+18] 进行比较。

2.1 Transformer 的参数与计算缩放

我们使用超参数 nlayern_{\text{layer}}(层数)、dmodeld_{\text{model}}(残差流维度)、dffd_{\text{ff}}(中间前馈层维度)、dattnd_{\text{attn}}(注意力输出维度)和 nheadsn_{\text{heads}}(每层注意力头数)来参数化 Transformer 架构。我们包含 nctxn_{\text{ctx}} 个 token 在输入上下文中,除另有说明外,nctx=1024n_{\text{ctx}} = 1024

我们使用 NN 表示模型大小,定义为非嵌入参数的数量: N2dmodelnlayer(2dattn+dff)=12nlayerdmodel2,标准情况下 dattn=dff/4=dmodel(2.1)N \approx 2d_{\text{model}}n_{\text{layer}} (2d_{\text{attn}} + d_{\text{ff}}) = 12n_{\text{layer}}d_{\text{model}}^2 \text{,标准情况下 } d_{\text{attn}} = d_{\text{ff}}/4 = d_{\text{model}} \quad (2.1) 其中我们排除了偏置和其他次要项。我们的模型在嵌入矩阵中也有 nvocabdmodeln_{\text{vocab}}d_{\text{model}} 个参数,并使用 nctxdmodeln_{\text{ctx}}d_{\text{model}} 个参数进行位置嵌入,但在讨论“模型大小” NN 时我们不包括这些;我们将看到这会产生显著更清晰的缩放定律。

评估 Transformer 的前向传递涉及大约 Cforward2N+2nlayernctxdmodel(2.2)C_{\text{forward}} \approx 2N + 2n_{\text{layer}}n_{\text{ctx}}d_{\text{model}} \quad (2.2) 次加乘运算,其中因子 2 来自矩阵乘法中使用的乘加运算。表 1 中包含了更详细的每操作参数和计算计数。


操作参数每个 Token 的 FLOPs
Embed(nvocab+nctx)dmodel(n_{\text{vocab}} + n_{\text{ctx}}) d_{\text{model}}4dmodel4d_{\text{model}}
Attention: QKVnlayerdmodel3dattnn_{\text{layer}}d_{\text{model}}3d_{\text{attn}}2nlayerdmodel3dattn2n_{\text{layer}}d_{\text{model}}3d_{\text{attn}}
Attention: Mask2nlayernctxdattn2n_{\text{layer}}n_{\text{ctx}}d_{\text{attn}}
Attention: Projectnlayerdattndmodeln_{\text{layer}}d_{\text{attn}}d_{\text{model}}2nlayerdattndembd2n_{\text{layer}}d_{\text{attn}}d_{\text{embd}}
Feedforwardnlayer2dmodeldffn_{\text{layer}}2d_{\text{model}}d_{\text{ff}}2nlayer2dmodeldff2n_{\text{layer}}2d_{\text{model}}d_{\text{ff}}
De-embed2dmodelnvocab2d_{\text{model}}n_{\text{vocab}}
Total (Non-Embedding)N=2dmodelnlayer(2dattn+dff)N = 2d_{\text{model}}n_{\text{layer}} (2d_{\text{attn}} + d_{\text{ff}})Cforward=2N+2nlayernctxdattnC_{\text{forward}} = 2N + 2n_{\text{layer}}n_{\text{ctx}}d_{\text{attn}}

表 1: Transformer 模型的参数计数和计算(前向传递)估计。省略了非线性、偏置和层归一化等次要项。

对于 dmodel>nctx/12d_{\text{model}} > n_{\text{ctx}}/12 的上下文和模型,每个 token 的上下文相关计算成本是总计算量的一小部分。由于我们主要研究 dmodelnctx/12d_{\text{model}} \gg n_{\text{ctx}}/12 的模型,因此我们在训练计算量估计中不包括上下文相关项。考虑到反向传递(大约是前向传递计算量的两倍),我们将估计的非嵌入计算量定义为每个训练 token C6NC \approx 6N 次浮点运算。

2.2 训练程序

除非另有说明,我们使用 Adam 优化器 [KB14] 训练模型,固定 2.5×1052.5 \times 10^5 步,批次大小为 512 个序列,每个序列 1024 个 token。由于内存限制,我们最大的模型(超过 1B 参数)使用 Adafactor [SS18] 进行训练。我们尝试了各种学习率和调度,如附录 D.6 中所讨论。我们发现收敛时的结果在很大程度上与学习率调度无关。除非另有说明,我们数据中包含的所有训练运行都使用了带有 3000 步线性预热后跟余弦衰减至零的学习率调度。

2.3 数据集

我们在 [RWC+19] 中描述的 WebText 数据集的扩展版本上训练我们的模型。原始 WebText 数据集是截至 2017 年 12 月从 Reddit 抓取的获得至少 3 个 karma 的外链。在第二个版本 WebText2 中,我们添加了 2018 年 1 月至 10 月期间的 Reddit 外链,同样要求至少 3 个 karma。Karma 阈值作为人们是否认为链接有趣或有用的启发式方法。新链接的文本使用 Newspaper3k python 库提取。总共,该数据集包含 20.3M 个文档,包含 96 GB 文本和 1.62×10101.62 \times 10^{10} 个单词(由 wc 定义)。然后我们应用 [RWC+19] 中描述的可逆分词器,产生 2.29×10102.29 \times 10^{10} 个 token。我们保留其中的 6.6×1086.6 \times 10^8 个 token 作为测试集,并且我们还在类似准备的 Books Corpus [ZKZ+15]、Common Crawl [Fou]、英语维基百科和公开可用的互联网书籍集合的样本上进行测试。


3. 经验结果与基本幂律

为了表征语言模型缩放,我们训练了多种模型,改变了许多因素,包括:

  • 模型大小(范围从 768 到 15 亿个非嵌入参数)
  • 数据集大小(范围从 2200 万到 230 亿个 token)
  • 形状(包括深度、宽度、注意力头数和前馈维度)
  • 上下文长度(大多数运行为 1024,尽管我们也尝试了更短的上下文)
  • 批次大小(大多数运行为 2192^{19},但我们也改变它以测量临界批次大小)

图5:当总非嵌入参数 N 固定时,性能对模型形状的依赖非常温和。损失在很宽的形状范围内仅变化几个百分点。参数计数的小差异通过使用 L(N) 的拟合作为基线来补偿。特别是纵横比可以变化 40 倍而仅轻微影响性能;一个 (n_{\text{layer}}, d_{\text{model}}) = (6, 4288) 的模型达到了 [RWC+19] 中使用的 (48, 1600) 模型 3% 以内的损失。

图6:左:当我们包含嵌入参数时,性能似乎强烈依赖于层数以及参数数量。右:当我们排除嵌入参数时,不同深度的模型性能收敛到单一趋势。只有少于 2 层或具有极端深度-宽度比的模型才会显著偏离该趋势。

在本节中,我们将展示数据以及经验驱动的拟合,将理论分析推迟到后面的章节。

3.1 近似 Transformer 形状和超参数独立性

当我们固定总非嵌入参数计数 NN 时,Transformer 性能对形状参数 nlayer,nheadsn_{\text{layer}}, n_{\text{heads}}dffd_{\text{ff}} 的依赖非常微弱。为了建立这些结果,我们训练了大小固定但改变单个超参数的模型。这对于 nheadsn_{\text{heads}} 的情况最简单。在改变 nlayern_{\text{layer}} 时,我们同时改变 dmodeld_{\text{model}},同时保持 N12nlayerdmodel2N \approx 12n_{\text{layer}}d_{\text{model}}^2 固定。类似地,为了在固定模型大小时改变 dffd_{\text{ff}},我们也同时改变了 dmodeld_{\text{model}} 参数,如表 1 中的参数计数所要求。如果更深的 Transformer 有效地表现为较浅模型的集成(正如 ResNets [VWB16] 所建议的那样),那么 nlayersn_{\text{layers}} 的独立性就会随之而来。结果如图 5 所示。

3.2 具有非嵌入参数计数 NN 的性能

在图 6 中,我们展示了各种模型的性能,范围从形状为 (nlayer,dmodel)=(2,128)(n_{\text{layer}}, d_{\text{model}}) = (2, 128) 的小模型到十亿参数模型,形状范围从 (6,4288)(6, 4288)(207,768)(207, 768)。在这里,我们已经在完整的 WebText2 数据集上训练至接近收敛,并且没有观察到过拟合(除了可能对于非常大的模型)。

如图 1 所示,我们发现与非嵌入参数计数 NN 有稳定的趋势,可以拟合到方程 (1.5) 的第一项,因此 L(N)(NcN)αN(3.1)L(N) \approx \left( \frac{N_c}{N} \right)^{\alpha_N} \quad (3.1)


图7:Transformers 由于改进了对长上下文的使用,渐近地优于 LSTMs。

要观察这些趋势,研究性能作为 NN 的函数至关重要;如果我们改为使用总参数计数(包括嵌入参数),趋势会有些模糊(见图 6)。这表明嵌入矩阵可以做得更小而不影响性能,正如最近的工作 [LCG+19] 所见。

尽管这些模型是在 WebText2 数据集上训练的,但它们在各种其他数据集上的测试损失也是 NN 的幂律,且幂次几乎相同,如图 8 所示。

3.2.1 与 LSTM 和通用 Transformer 的比较

在图 7 中,我们比较了 LSTM 和 Transformer 性能作为非嵌入参数计数 NN 的函数。LSTM 是在相同的数据集和上下文长度下训练的。我们从这些图中看到,LSTM 在上下文中早期出现的 token 上表现得与 Transformer 一样好,但无法匹配 Transformer 在后期 token 上的性能。我们在附录 D.5 中展示了性能与上下文位置之间的幂律关系,其中较大模型越来越大的幂次表明了快速识别模式的能力有所提高。

我们还在附录图 17 中比较了标准 Transformer 与循环 Transformer [DGV+18] 的性能。这些模型重用参数,因此作为 NN 的函数表现略好,代价是每个参数的额外计算量。

3.2.2 数据分布间的泛化

我们还在一组额外的数据分布上测试了我们的模型。这些数据集上的测试损失作为模型大小的函数如图 8 所示;在所有情况下,模型仅在 WebText2 数据集上训练。我们看到这些其他数据分布上的损失随模型大小平滑提高,与 WebText2 上的改进直接平行。我们发现泛化几乎完全取决于分布内验证损失,而不取决于训练持续时间或收敛的接近程度。我们还观察到对模型深度没有依赖性(见附录 D.8)。

3.3 数据集大小和计算量的性能

我们在图 1 中展示了测试损失作为数据集大小 DD(以 token 为单位)和训练计算量 CC 的函数的经验趋势。

对于 DD 的趋势,我们在 WebText2 数据集的固定子集上训练了一个 (nlayer,nembd)=(36,1280)(n_{\text{layer}}, n_{\text{embd}}) = (36, 1280) 的模型。一旦测试损失停止下降,我们就停止训练。我们看到由此产生的测试损失可以用简单的幂律拟合 L(D)(DcD)αD(3.2)L(D) \approx \left( \frac{D_c}{D} \right)^{\alpha_D} \quad (3.2) 在数据集大小方面。数据和拟合出现在图 1 中。

训练期间使用的非嵌入计算总量可估计为 C=6NBSC = 6NBS,其中 BB 是批次大小,SS 是参数更新次数,因子 6 考虑了前向和反向传递。因此,对于给定的 CC 值,我们可以扫描所有具有不同 NN 的模型,以找到在步骤 S=C6BSS = \frac{C}{6BS} 上具有最佳性能的模型。注意,在这些结果中,批次大小 BB 对所有模型保持固定,这意味着这些经验结果并非真正最优。我们将在后面的章节中使用调整后的 CminC_{\text{min}} 来产生更清晰的趋势。


图8:左:对其他数据分布的泛化性能随模型大小平滑提高,与 WebText2 训练分布的偏移很小且增长非常缓慢。右:泛化性能仅取决于训练分布性能,而不取决于训练阶段。我们比较了收敛模型(点)与单个大模型(虚线曲线)在训练时的泛化。

结果出现在图 1 左侧图上的粗黑线上。它可以拟合为 L(C)(CcC)αC(3.3)L(C) \approx \left( \frac{C_c}{C} \right)^{\alpha_C} \quad (3.3)

该图还包括单个学习曲线的图像,以阐明单个模型何时最优。我们将在后面更仔细地研究计算的最优分配。数据强烈表明样本效率随模型大小提高,我们也直接在附录图 19 中进行了说明。

4. 绘制无限数据极限与过拟合

在第 3 节中,我们发现了许多语言建模性能的基本缩放定律。在这里,我们将研究在 DD 个 token 的数据集上训练的 NN 大小模型的性能,同时改变 NNDD。我们将经验证明最优训练的测试损失符合方程 (1.5) 的缩放定律。这为我们在保持过拟合受控的同时训练更大模型所需的数据量提供了指导。

4.1 提出的 L(N,D)L(N, D) 方程

我们选择了参数化 (1.5)(为方便起见在此重复): L(N,D)=[(NcN)αN/αD+DcD]αD(4.1)L(N, D) = \left[ \left( \frac{N_c}{N} \right)^{\alpha_N/\alpha_D} + \frac{D_c}{D} \right]^{\alpha_D} \quad (4.1) 使用三个原则:

  1. 词汇表大小或分词的变化预计会按整体因子重新缩放损失。L(N,D)L(N, D) 的参数化(以及所有损失模型)必须自然地允许这种重新缩放。
  2. 固定 DD 并令 NN \to \infty,总损失应接近 L(D)L(D)。相反,固定 NN 并令 DD \to \infty,损失必须接近 L(N)L(N)
  3. L(N,D)L(N, D)D=D = \infty 时应是解析的,因此它具有 1/D1/D 的整数幂级数展开。该原则的理论支持明显弱于前两个。

我们对 L(N,D)L(N, D) 的选择满足第一个要求,因为我们可以随着词汇表的变化重新缩放 Nc,DcN_c, D_c。这也意味着 Nc,DcN_c, D_c 的值没有根本意义。


图9:早停测试损失 L(N, D) 根据方程 (1.5) 随数据集大小 D 和模型大小 N 可预测地变化。左:对于大的 D,性能是 N 的直线幂律。对于较小的固定 D,性能随着 N 的增加停止提高,模型开始过拟合。(反之亦然,见图 4)。右:过拟合的程度主要取决于比率 N^{\alpha_N/\alpha_D}/D,如方程 (4.3) 所预测。直线是我们对该方程的拟合。

由于我们在测试损失停止提高时尽早停止训练并以相同方式优化所有模型,我们预期更大的模型应该总是比更小的模型表现更好。但对于固定的有限 DD,我们也不预期任何模型能够接近最佳可能的损失(即文本的熵)。类似地,具有固定大小的模型将受到容量限制。这些考虑因素激发了我们的第二个原则。注意,在无限 DD 下的 L(N)L(N) 和在无限 NN 下的 L(D)L(D) 的知识完全确定了 L(N,D)L(N, D) 中的所有参数。

第三个原则更具推测性。有一个简单且普遍的原因,人们可能预期过拟合在非常大的 DD 时按 1/D\propto 1/D 缩放。过拟合应该与数据集的方差或信噪比有关 [AS17],这按 1/D1/D 缩放。这种预期应该适用于任何平滑的损失函数,因为我们预期能够围绕 DD \to \infty 极限展开损失。然而,该论点假设 1/D1/D 校正主导了其他方差来源,例如有限的批次大小和优化效率的其他限制。没有经验确认,我们不会对其适用性非常有信心。

我们的第三个原则解释了 NNDD 在方程 (1.5) 中角色的不对称性。非常相似的对称表达式是可能的,但它们不会具有带整数幂的 1/D1/D 展开,并且需要引入额外的参数。

无论如何,我们将看到我们的 L(N,D)L(N, D) 方程很好地拟合了数据,这是我们 L(N,D)L(N, D) 假设的最重要理由。

4.2 结果

我们用 10% 的 dropout 对所有模型进行正则化,并通过跟踪测试损失并在其不再下降时停止。结果显示在图 9 中,包括对方程 (1.5) 中四个参数 αN,αD,Nc,Dc\alpha_N, \alpha_D, N_c, D_c 的拟合:

参数αN\alpha_NαD\alpha_DNcN_cDcD_c
0.0760.1036.4×10136.4 \times 10^{13}1.8×10131.8 \times 10^{13}

表 2:L(N,D)L(N, D) 的拟合

我们获得了极好的拟合,除了数据集减少了 1024 倍至约 2×1072 \times 10^7 个 token 的运行。对于如此小的数据集,一个 epoch 仅包含 40 次参数更新。也许如此微小的数据集代表了语言建模的不同区间,因为过拟合在训练早期就发生了(见图 16)。还要注意,参数与第 3 节中获得的参数略有不同,因为这里我们拟合的是完整的 L(N,D)L(N, D) 而不仅仅是 L(N,)L(N, \infty)L(,D)L(\infty, D)

为了绘制无限数据极限的边界,我们可以直接研究过拟合的程度。对于除最大模型之外的所有模型,在使用完整的 22B token WebText2 数据集训练时,我们没有看到过拟合的迹象,因此我们可以将其视为 D=D = \infty 的代表。因此我们可以通过定义 δL(N,D)L(N,D)L(N,)1(4.2)\delta L(N, D) \equiv \frac{L(N, D)}{L(N, \infty)} - 1 \quad (4.2) 并将其作为 N,DN, D 的函数进行研究,从而将有限 DD 与无限数据极限进行比较。事实上,我们经验性地看到 δL\delta L 仅取决于 NNDD 的特定组合,如图 16 所示。这遵循方程 (1.5) 的缩放定律,这意味着 δL(1+(NNc)αN/αDDcD)αD1(4.3)\delta L \approx \left( 1 + \left( \frac{N}{N_c} \right)^{\alpha_N/\alpha_D} \frac{D_c}{D} \right)^{\alpha_D} - 1 \quad (4.3) 注意,在大的 DD 时,该公式也具有 1/D1/D 幂次的级数展开。

我们估计不同随机种子下损失的变化约为 0.02,这意味着为了在训练至收敛阈值内时避免过拟合,我们需要 D(5×103)N0.74(4.4)D \gtrsim (5 \times 10^3) N^{0.74} \quad (4.4) 利用此关系,小于 10910^9 参数的模型可以在 22B token 的 WebText2 数据集上以最小的过拟合进行训练,但我们最大的模型将遇到一些轻微的过拟合。更一般地,该关系表明数据集大小可以随模型大小次线性增长,同时避免过拟合。然而,请注意,这通常不代表最大计算效率的训练。我们还应强调,在改变数据集和模型大小时,我们并未优化正则化(例如 dropout 概率)。


图 10:临界批次大小 B_{\text{crit}} 随性能提高而遵循损失的幂律,且不直接依赖于模型大小。我们发现临界批次大小在损失每降低 13% 时大约翻倍。B_{\text{crit}} 是从图 18 所示数据中经验测量的,但它也大致由梯度噪声尺度预测,如 [MKAT18] 中所述。

5. 模型大小与训练时间的缩放定律

在本节中,我们将证明一个简单的缩放定律为损失作为模型大小 NN 和训练时间的函数提供了很好的描述。首先,我们将解释如何使用 [MKAT18] 的结果来定义一个通用的训练步数 SminS_{\text{min}},它解释了我们大多数模型并非在最优批次大小下训练的事实。然后,我们将证明我们可以使用方程 (1.6) 拟合损失对模型大小和训练时间的依赖性。稍后,我们将使用这些结果来预测训练计算量在模型大小和训练时间之间的最优分配,并确认该预测。

5.1 针对 Bcrit(L)B_{\text{crit}}(L) 的训练调整

[MKAT18](参见 [SLA+18, ZLN+19])开发了一种简单的训练批次大小依赖性的经验理论。有人认为存在一个训练的临界批次大小 BcritB_{\text{crit}};对于 BBcritB \le B_{\text{crit}},批次大小可以在计算效率极小退化的情况下增加,而对于 B>BcritB > B_{\text{crit}},增加 BB 会导致收益递减。还有人认为梯度噪声尺度提供了一个简单的预测,用于 BcritB_{\text{crit}},且除了通过已达到的损失值外,它并不直接依赖于模型大小。这些结果可用于预测训练时间和计算量将如何随批次大小变化。为了尽可能有效地利用训练时间和计算量,最好以 BBcritB \approx B_{\text{crit}} 的批次大小进行训练。以 BBcritB \ll B_{\text{crit}} 训练可最小化训练步数,而以 BBcritB \gg B_{\text{crit}} 训练可最小化计算量的使用。

更具体地说,已证明对于各种神经网络任务,训练步数 SS 和处理的数据示例数 E=BSE = BS 满足简单关系 (SSmin1)(EEmin1)=1(5.1)\left( \frac{S}{S_{\text{min}}} - 1 \right) \left( \frac{E}{E_{\text{min}}} - 1 \right) = 1 \quad (5.1) 当训练至损失 LL 的任何固定值时。这里 SminS_{\text{min}} 是达到 LL 所需的最小步数,而 EminE_{\text{min}} 是必须处理的最小数据示例数。

我们在附录图 18 中展示了 Transformer 的关系 (5.1)。该关系定义了临界批次大小 Bcrit(L)EminSmin(5.2)B_{\text{crit}}(L) \equiv \frac{E_{\text{min}}}{S_{\text{min}}} \quad (5.2) 它是损失目标值的函数。在临界批次大小下训练可实现大致最优的时间/计算折衷,需要 2Smin2S_{\text{min}} 训练步数并处理 E=2EminE = 2E_{\text{min}} 个数据示例。

在图 10 中,我们绘制了临界批次大小和梯度噪声尺度作为两个不同模型训练损失的函数。我们看到 Bcrit(L)B_{\text{crit}}(L) 与模型大小无关,仅取决于损失 LL。因此,[MKAT18] 的预测继续适用于 Transformer 语言模型。临界批次大小可以用损失的幂律拟合 Bcrit(L)BL1/αB(5.3)B_{\text{crit}}(L) \approx \frac{B_*}{L^{1/\alpha_B}} \quad (5.3) 其中 B2×108B_* \approx 2 \times 10^8αB0.21\alpha_B \approx 0.21

我们为 Bcrit(L)B_{\text{crit}}(L) 选择了这种参数化,因为随着损失接近其最小值 LminL_{\text{min}},梯度噪声尺度预计会发散,并且我们预期 BcritB_{\text{crit}} 会跟踪该噪声尺度。我们不知道 LminL_{\text{min}},因为我们没有看到我们的模型正在接近它的迹象,但 Lmin>0L_{\text{min}} > 0,因为自然语言的熵是非零的。由于 LminL_{\text{min}} 显然远小于我们已经达到的 LL 值,我们使用了 BcritB_{\text{crit}}L0L \to 0 发散的参数化。

我们将使用 Bcrit(L)B_{\text{crit}}(L) 来估计在批次大小 B=219B = 2^{19} token 下训练时的训练步数 SS 与在 BBcritB \gg B_{\text{crit}} 下训练时的训练步数之间的关系。这很简单 Smin(S)S1+Bcrit(L)/B(最小步数,在 BBcrit 时)(5.4)S_{\text{min}}(S) \equiv \frac{S}{1 + B_{\text{crit}}(L)/B} \quad (\text{最小步数,在 } B \gg B_{\text{crit}} \text{ 时}) \quad (5.4) 对于损失的任何给定目标值 LL。这也定义了如果我们在 BBcrit(L)B \gg B_{\text{crit}}(L) 下训练,用大小为 NN 的模型训练至 LL 所需计算量的临界值。这是 Cmin(C)C1+B/Bcrit(L)(最小计算量,在 BBcrit 时)(5.5)C_{\text{min}}(C) \equiv \frac{C}{1 + B/B_{\text{crit}}(L)} \quad (\text{最小计算量,在 } B \ll B_{\text{crit}} \text{ 时}) \quad (5.5) 其中 C=6NBSC = 6NBS 估计了在批次大小 BB 下使用的(非嵌入)计算量。

5.2 L(N,Smin)L(N, S_{\text{min}}) 的结果以及模型大小和计算量的性能

现在我们将使用方程 (5.4) 中定义的 SminS_{\text{min}} 来获得损失对无限数据极限下模型大小和训练时间依赖性的简单且通用的拟合。我们将使用方程 (1.6) 拟合稳定的、Adam 优化的训练运行,为方便起见在此重复: L(N,Smin)=(NcN)αN+(ScSmin)αS(5.6)L(N, S_{\text{min}}) = \left( \frac{N_c}{N} \right)^{\alpha_N} + \left( \frac{S_c}{S_{\text{min}}} \right)^{\alpha_S} \quad (5.6) 对于损失。我们包括学习率调度预热期之后的所有训练步数,并找到具有以下参数的数据拟合:

图 11:当我们固定总计算量或训练步数时,性能遵循方程 (5.6) 中的 L(N, S)。每个计算预算值都有一个相关的最优模型大小,可最大化性能。在小 S 时的平庸拟合并不令人惊讶,因为学习曲线的幂律方程在训练早期就失效了。

参数αN\alpha_NαS\alpha_SNcN_cScS_c
0.0770.766.5×10136.5 \times 10^{13}2.1×1032.1 \times 10^3

表 3:L(N,S)L(N, S) 的拟合

利用这些参数,我们获得了图 4 中的学习曲线拟合。虽然拟合并不完美,但考虑到方程 (5.6) 的简单性,我们认为它们非常令人信服。

数据和拟合可以以一种不同且更有趣的方式可视化,如图 11 所示。在那里,我们研究了测试损失作为模型大小的函数,同时固定训练中使用的总非嵌入计算量 CC 或步数 SS。对于拟合,我们使用方程 (5.5) 和 (5.4) 以及上述参数和方程 (5.6)。

损失对 SminS_{\text{min}} 的幂律依赖性反映了优化器动力学和损失景观之间的相互作用。由于拟合在训练后期最好,此时损失可能近似为二次型,因此幂律应该提供关于损失 Hessian 谱的信息。它的普遍性表明 Hessian 特征值密度大致与模型大小无关。

5.3 早停步数的下界

L(N,Smin)L(N, S_{\text{min}}) 的结果可用于推导数据受限时应发生早停的步数的下界(和粗略估计)。它的动机是这样的想法:对于给定的模型,有限和无限 DD 的学习曲线在达到 SminSstopS_{\text{min}} \approx S_{\text{stop}} 之前将非常相似。因此,过拟合应该与仅仅在 SstopS_{\text{stop}} 结束训练的校正成正比。这将低估 SstopS_{\text{stop}},因为实际上当我们有有限的 DD 时,测试损失会下降得更慢,因此我们将需要更多的训练步数才能达到有限 DD 下的最优测试损失。这种推理导致了不等式 Sstop(N,D)Sc[L(N,D)L(N,)]1/αS(5.7)S_{\text{stop}}(N, D) \gtrsim \frac{S_c}{[L(N, D) - L(N, \infty)]^{1/\alpha_S}} \quad (5.7) 其中 L(N,)L(N, \infty) 是收敛损失,用无限可用数据评估。该不等式及其与经验数据的比较显示在附录图 16 中。在该图中,SstopS_{\text{stop}}L(N,D)L(N, D) 的值是经验性的(尽管 SstopS_{\text{stop}} 经过调整以模拟 BBcritB \gg B_{\text{crit}} 下的训练),而 L(N,)L(N, \infty) 是根据在 D=D = \infty 下评估的 L(N,D)L(N, D) 拟合计算得出的。

6. 计算预算的最优分配

我们在图 1 右上角展示了性能作为训练期间所用计算量的函数的经验趋势。然而,该结果涉及在固定批次大小 BB 下进行训练,而我们知道


图 12:左:给定固定的计算预算,特定的模型大小是最优的,尽管稍大或稍小的模型可以用极小的额外计算量进行训练。右:比计算效率大小更大的模型需要更少的步数来训练,如果可能进行足够的额外并行化,则允许更快的训练。注意,该方程不应被信任用于非常大的模型,因为它仅在学习曲线的幂律区域内有效,在初始瞬态效应之后。

图 13:当调整性能以模拟远低于临界批次大小的训练时,与完全经验结果相比,我们发现 L(C_{\text{min}}) 的幂律有所改变。在 10^{-5} PF-days 处的明显凸起标志着从 1 层到 2 层网络的过渡;我们在幂律拟合中排除了 1 层网络。正是 L(C_{\text{min}}) 趋势,我们预期它能为更大的计算量提供可靠的外推。

事实上,我们可以通过以第 5.1 节中讨论的批次大小 BcritB_{\text{crit}} 进行训练来更有效地训练。损失的大值和小值本可以分别通过更少的样本或更少的步数实现,通过标准化到临界批次大小来纠正这种低效性,从而产生更清晰、更可预测的趋势。

在本节中,我们将针对这一疏忽进行调整。更重要的是,我们将使用第 5 节的结果来确定模型大小 NN 与训练期间处理的数据量(即 2BcritSmin2B_{\text{crit}}S_{\text{min}})之间的最优计算分配。我们将通过使用 L(N,Smin)L(N, S_{\text{min}}) 的方程,从经验和理论上确定这种分配,并将证明这些方法是一致的。

6.1 最优性能与分配

让我们首先研究损失作为方程 (5.5) 中最优分配计算量的函数。结果绘制在图 13 中,并附有幂律拟合。我们看到,与图 1 的计算量图相比,新的 CminC_{\text{min}} 拟合有所改进。

给定 L(Cmin)L(C_{\text{min}}),自然会问在给定训练计算量下提供最小损失的最优模型大小 N(Cmin)N(C_{\text{min}}) 是多少。最优模型大小如图 14 所示。我们观察到 N(Cmin)N(C_{\text{min}})


图 14:左:每个计算预算 C_{\text{min}} 的值都有一个相关的最优模型大小 N。最优模型大小随 C_{\text{min}} 增长非常迅速,计算量每增加 10 倍,大小增加 5 倍。处理的数据示例数量构成了增加的其余部分,增长相对适中,仅为 2 倍。右:批次调整后的优化步数增长也非常缓慢,甚至不增长,这意味着处理的数据示例的大部分增长可用于增加批次大小。

可以用幂律很好地拟合 N(Cmin)(Cmin)0.73(6.1)N(C_{\text{min}}) \propto (C_{\text{min}})^{0.73} \quad (6.1)

在图 12 中,我们展示了次优大小模型训练的效果(见附录 B.4)。 根据定义 Cmin6NBcritSC_{\text{min}} \equiv 6NB_{\text{crit}}S,因此我们可以使用 N(Cmin)N(C_{\text{min}}) 来提取进一步的结果。特别是,由于先前的拟合显示 BL4.8B \propto L^{-4.8}LCmin0.05L \propto C_{\text{min}}^{-0.05},我们可以得出结论 BcritCmin0.24B_{\text{crit}} \propto C_{\text{min}}^{0.24}。这导致我们得出结论,最优步数只会随计算量增长得非常缓慢,即 Smin(Cmin)0.03(6.2)S_{\text{min}} \propto (C_{\text{min}})^{0.03} \quad (6.2) 这与图 14 中的经验结果相匹配。事实上,测得的指数足够小,以至于我们的结果甚至可能与零指数一致。

因此,我们得出结论,随着我们以最优计算分配扩大语言建模,我们应该主要增加模型大小 NN,同时通过 BBcritB \propto B_{\text{crit}} 扩大批次大小,而串行步数增加可忽略不计。由于计算效率高的训练使用相对较少的优化步骤,因此可能需要额外的工作来加速早期训练动力学。

6.2 来自 L(N,Smin)L(N, S_{\text{min}}) 的预测

L(Cmin)L(C_{\text{min}}) 的结果和分配可以从第 5 节中获得的 L(N,Smin)L(N, S_{\text{min}}) 方程中预测。给定我们的 L(N,Smin)L(N, S_{\text{min}}) 方程,我们可以代入 Smin=Cmin6NBS_{\text{min}} = \frac{C_{\text{min}}}{6NB},然后在固定训练计算量的情况下找到损失作为 NN 的函数的最小值。我们在附录 B 中详细执行了此过程,并在其中提供了一些额外的预测。

对于作为训练计算量函数的损失,我们预测 L(Cmin)=(CcminCmin)αCmin(6.3)L(C_{\text{min}}) = \left( \frac{C_c^{\text{min}}}{C_{\text{min}}} \right)^{\alpha_C^{\text{min}}} \quad (6.3) 其中 αCmin11/αS+1/αB+1/αN0.054(6.4)\alpha_C^{\text{min}} \equiv \frac{1}{1/\alpha_S + 1/\alpha_B + 1/\alpha_N} \approx 0.054 \quad (6.4) 与图 13 的指数非常一致。我们还预测 N(Cmin)(Cmin)αCmin/αN(Cmin)0.71(6.5)N(C_{\text{min}}) \propto (C_{\text{min}})^{\alpha_C^{\text{min}}/\alpha_N} \approx (C_{\text{min}})^{0.71} \quad (6.5) 这也与图 14 的缩放比例在几个百分点内相匹配。我们的缩放定律为语言建模的性能提供了一个预测框架。


图 15:远远超出我们经验研究的模型大小,我们发现我们的 L(C_{\text{min}}) 和 L(D) 方程之间存在矛盾,这是由于计算效率训练所需的数据增长缓慢所致。交点标志着我们预期预测失效的点。该点的位置对我们幂律拟合的精确指数高度敏感。

6.3 矛盾与猜想

我们观察到在大的计算量、数据或模型大小值下,直线幂律趋势没有偏离的迹象。尽管如此,我们的趋势最终必须趋于平缓,因为自然语言具有非零熵。

事实上,本节中描述的计算效率训练趋势已经包含了一个明显的矛盾。在比此处记录的规模大几个数量级的规模上,由 L(Cmin)L(C_{\text{min}}) 缩放定律预测的性能下降到低于给定计算量下训练数据增长缓慢所应有的可能水平。这意味着我们的缩放定律必须在此点之前失效,但我们推测交点具有更深层的含义:它提供了 Transformer 语言模型达到最大性能点的估计。

由于计算效率训练使用的数据量随计算预算增长缓慢,由 L(Cmin)L(C_{\text{min}}) 预测的性能最终会触及由 L(D)L(D) 幂律设定的下界(见图 15)。让我们更详细地计算一下。

为了保持过拟合受控,第 4 节的结果意味着我们应该将数据集大小缩放为 DN0.74Cmin0.54(6.6)D \propto N^{0.74} \propto C_{\text{min}}^{0.54} \quad (6.6) 其中我们使用了图 14 中的计算效率 N(Cmin)N(C_{\text{min}})

让我们将其与计算效率训练的数据需求进行比较。如果我们以临界批次大小(即 C=2CminC = 2C_{\text{min}})进行训练,并且在训练期间从不重复使用数据,我们发现数据使用量随计算量增长为 D(Cmin)=2Cmin6N(Cmin)(4×1010 tokens)(Cmin/PF-Day)0.26(6.7)D(C_{\text{min}}) = \frac{2C_{\text{min}}}{6N(C_{\text{min}})} \approx \left( 4 \times 10^{10} \text{ tokens} \right) (C_{\text{min}}/\text{PF-Day})^{0.26} \quad (6.7) 这是数据集大小随计算量有效增长的最大速率,因为它意味着我们只进行单 epoch 训练。但它使数据集的增长比方程 (6.6) 中要慢得多。这似乎意味着计算效率训练最终会遇到过拟合问题,即使训练过程从不重复使用任何数据!

根据图 1,我们预期当我们受到数据集大小(即过拟合)的瓶颈限制时,损失应按 L(D)D0.095L(D) \propto D^{-0.095} 缩放。这意味着一旦我们受到数据限制,损失将随计算量按 L(D(Cmin))Cmin0.03L(D(C_{\text{min}})) \propto C_{\text{min}}^{-0.03} 缩放。再一次,我们遇到了矛盾,因为这将最终与我们从图 13 中对 L(Cmin)L(C_{\text{min}}) 的预测相交,我们在那里发现缩放 L(Cmin)Cmin0.050L(C_{\text{min}}) \propto C_{\text{min}}^{-0.050}

L(D(Cmin))L(D(C_{\text{min}}))L(Cmin)L(C_{\text{min}}) 的交点发生在 C104 PF-Days,N1012 参数,D1012 tokens,L1.7 nats/token(6.8)C^* \sim 10^4 \text{ PF-Days}, N^* \sim 10^{12} \text{ 参数}, D^* \sim 10^{12} \text{ tokens}, L^* \sim 1.7 \text{ nats/token} \quad (6.8) 尽管数值高度不确定,根据幂律拟合的指数精确值,在任一方向上变化一个数量级。最明显的解释是我们的缩放定律在达到这一点时或之前失效,这在计算量和模型大小方面仍然相差许多数量级。


人们可能还会推测这个交点具有更深层的含义。如果我们不能在不产生质上不同的数据需求的情况下将模型大小增加到 NN^* 以上,也许这意味着一旦我们达到 CminC_{\text{min}}^*NN^*,我们就已经提取了自然语言数据中可用的所有可靠信息。在这种解释中,LL^* 将为自然语言的每 token 熵提供一个粗略估计。在这种情况下,我们预期损失趋势会在 LL^* 处或之前趋于平缓。

我们可以通过考虑带有添加噪声的训练数据集版本,来猜测 L(Cmin)L(C_{\text{min}}) 在趋于平缓时的函数形式。例如,我们可以将随机 token 字符串附加到模型看到的每个上下文中,以通过恒定的加性因子人为地提高损失。那么,距离噪声底限 LLnoiseL - L_{\text{noise}} 将是一个更有意义的性能指标,即使该距离的微小减少也可能代表定性性能的显著提升。由于人工噪声会同样影响我们所有的趋势,6.8 的临界点将不会改变(除了 LL^* 的绝对值),并且即使它发生在趋于平缓之后,也可能是有意义的。

7. 相关工作

幂律可以来自各种各样的来源 [THK18]。密度估计 [Was06] 和随机森林模型 [Bia12] 中随模型和数据集大小的幂律缩放可能与我们的结果相关。这些模型表明幂律指数可能对数据中相关特征数量的倒数有一个非常粗略的解释。

一些早期 [BB01, Goo01] 的工作发现了性能与数据集大小之间的幂律缩放。最近的工作 [HNA+17, HAD19] 也研究了模型大小与数据大小之间的缩放;他们的工作可能是文献中与我们最接近的。然而,请注意,[HNA+17] 发现了数据集大小随模型大小的超线性缩放,而我们发现了次线性缩放。我们在计算最优分配方面的发现与 [Kom19] 之间存在一些相似之处,包括幂律学习曲线。EfficientNets [TL19] 也似乎服从准确率与模型大小之间的近似幂律关系。非常近期的工作 [RRBS19b] 研究了随数据集大小和模型大小的缩放,并拟合了类似于我们的 ansatz。

EfficientNet [TL19] 主张指数级缩放深度和宽度(具有不同的系数)以获得图像模型的最优性能,从而导致宽度作为深度函数的幂律缩放。我们发现对于语言模型,在扩大规模时,该幂次应该大致为 1(因为宽度/深度应该保持固定)。但更重要的是,我们发现精确的架构超参数与语言模型的整体规模相比并不重要。在 [VWB16] 中,有人认为深度模型可以作为较浅模型的集成发挥作用,这可能解释了这一发现。早期的工作 [ZK16] 比较了宽度和深度,发现宽 ResNets 在图像分类上可以优于深 ResNets。一些研究固定了每个数据示例的计算量,这往往与模型参数数量成比例缩放,而我们研究了随模型大小和训练计算量数量的缩放。

各种工作 [AS17, BHMM18] 研究了高度过参数化模型中的泛化,当模型大小达到数据集大小(这可能需要训练比典型实践多许多数量级,特别是没有使用早停)时,发现了“干扰转变” [GJS+19]。我们没有观察到这种转变,并发现必要的训练数据随模型大小次线性缩放。模型大小的展开,特别是在大宽度下 [JGH18, LXS+19],可能为思考我们的一些缩放关系提供了一个有用的框架。我们在优化方面的结果,例如学习曲线的形状,很可能可以使用噪声二次模型来解释,该模型可以在现实设置中提供相当准确的预测 [ZLN+19]。使这种联系定量化将需要表征 Hessian 谱 [Pap18, GKX19, GARD18]。

8. 讨论

我们观察到了语言模型对数似然损失随非嵌入参数计数 NN、数据集大小 DD 和优化训练计算量 CminC_{\text{min}} 的一致缩放,如方程 (1.5) 和 (1.6) 所封装。相反,我们发现对许多架构和优化超参数的依赖非常微弱。由于随 N,D,CminN, D, C_{\text{min}} 的缩放是幂律,因此随着规模的增加存在收益递减。

我们能够精确地模拟损失对 NNDD 的依赖性,或者在这些参数同时变化时对 NNSS 的依赖性。我们使用这些关系推导了训练大语言模型时的计算缩放、过拟合程度、早停步数和数据需求。因此,我们的缩放关系超越了单纯的观察,提供了一个预测框架。人们可以将这些关系解释为理想气体定律的类似物,它以一种通用的方式关联气体的宏观性质,独立于其微观成分的大多数细节。

自然地推测缩放关系将适用于具有最大似然损失的其他生成式建模任务,也许也适用于其他设置。为此,在其他领域(如图像、音频和视频模型,也许还有随机网络蒸馏)测试这些关系将是很有趣的。在这一点上,我们不知道我们的哪些结果取决于自然语言数据的结构,哪些是通用的。找到一个可以推导出缩放关系的理论框架也将是令人兴奋的:我们所观察到的“热力学”背后的“统计力学”。这样的理论可能使推导其他更精确的预测成为可能,并提供对缩放定律局限性的系统理解。

在自然语言领域,研究损失的持续改进是否转化为相关语言任务的改进将非常重要。平滑的定量变化可以掩盖重大的定性改进:“多即不同”。例如,经济的平滑总量增长并没有提供支撑它的特定技术发展的迹象。同样,语言模型损失的平滑改进可能掩盖了看似定性的能力变化。

我们的结果强烈表明,更大的模型将继续表现更好,并且也将比以前所认识到的更具样本效率。大模型可能比大数据更重要。在这种背景下,进一步研究模型并行化是必要的。深度模型可以使用流水线 [HCC+18] 进行训练,它在设备之间深度拆分参数,但最终随着更多设备的使用需要增加批次大小。另一方面,宽网络更易于并行化 [SCP+18],因为大层可以在多个工作节点之间拆分,且串行依赖性更小。稀疏性 [CGRS19, GRK17] 或分支(例如 [KSH12])可能通过增加模型并行化允许更快地训练大网络。并且使用像 [WRH17, WYL19] 这样的方法,在训练时增长网络,可能在整个训练运行中保持在计算效率前沿。

致谢

我们要感谢 Shan Carter、Paul Christiano、Jack Clark、Ajeya Cotra、Ethan Dyer、Jason Eisner、Danny Hernandez、Jacob Hilton、Brice Menard、Chris Olah 和 Ilya Sutskever 的讨论以及对本工作草稿的反馈。

硬核测试

正确率:0 / 5
1

根据该论文,语言模型的性能主要取决于哪些因素?

2

当模型大小(N)增加8倍时,为了避免过拟合惩罚,数据集大小(D)大约需要增加多少倍?

3

在固定计算预算(C)的情况下,为了获得最优的计算效率,研究建议采取什么策略?

4

关于模型架构超参数(如深度、宽度、注意力头数)对性能的影响,论文得出的结论是?

5

根据方程 (1.5),当同时考虑模型大小(N)和数据集大小(D)时,损失函数(L)的缩放趋势表现为?