返回介绍

数学基础

统计学习

深度学习

工具

Scala

四十三、Scaling Laws for Neural Language Models [2020]

发布于 2023-07-17 23:38:25 字数 190028 浏览 0 评论 0 收藏 0

  1. language 为人工智能的研究提供了一个天然的领域,因为绝大多数的 reasoning task 都可以用语言有效地表达和评估,而且世界上的文本通过 generative modeling 为无监督学习提供了大量的数据。最近,深度学习在 language modeling 方面取得了快速进展, SOTA 模型在许多特定任务上的表现接近人类水平。

    人们可能预期语言建模的性能取决于模型结构、神经模型的规模、用于训练模型的算力、以及用于训练模型的数据。在论文 《Scaling Laws for Neural Language Models》 中,作者将实证研究 language modeling loss 对所有这些因素的依赖性,重点是 Transformer 架构。通过在语言任务上的性能的上限和下限,使作者能够研究 scale 中超过七个数量级的趋势。

    在整个过程中,作者将观察到性能的精确的 power-law scaling ,其中性能作为训练时间、上下文长度、数据集大小、模型大小、compute budget 的函数。

  2. 相关工作:

    • 幂律(power-law )可以从各种来源产生。在密度估计(density estimation ) 模型和随机森林模型中,随模型规模和数据集大小有关的 power-law scaling 可能与我们的结果有关。这些模型表明,幂律指数可能有一个非常粗糙的解释,即数据中相关特征数量的倒数。

    • 最近的工作 《Deep learning scaling is predictable,empirically》《Beyond human-level accuracy: Computational challenges in deep learning》 也研究了模型大小和数据大小之间的 scaling ;他们的工作可能是文献中最接近我们的工作。然而,请注意, 《Deep learning scaling is predictable,empirically》 发现数据集大小与模型大小的超线性 scaling ,而我们发现的是亚线性 scaling

      • 我们关于计算量的 optimal allocation 的发现和 《One epoch is all you need》 之间有一些相似之处,包括 power-law learning curve

      • EfficientNet 似乎也服从于准确率和模型大小之间的近似的幂律关系。

      • 最近的工作 《A constructive prediction of the generalization error across scales》研究了各种数据集的数据集大小和模型大小的 scaling ,并符合与我们类似的分析方法。

    • EfficientNet 主张以指数方式 scale 模型的深度和宽度,以获得图像模型的最佳性能,导致宽度作为深度的函数出现 power-law scaling 。我们发现,对于语言模型来说,这个幂律在 scaling up 时应该是大致为 1 (即, width/depth 的比例应该保持固定)。但更重要的是,我们发现,与语言模型的 overall scale 相比,精确的架构超参数并不重要。

      • 《Residual networks behave like ensembles of relatively shallow networks》 中,有人认为 deep 的模型可以作为较浅的模型的 ensemble ,这有可能解释这一发现。

      • 早期的工作 《Wide residual networks》 比较了宽度和深度,发现 wide ResNet 在图像分类上可以胜过 deep ResNet

      • 一些研究固定了每个数据样本的计算量(计算量往往与模型参数的数量成正比,固定这个值意味着固定模型大小),而我们研究的是与模型大小和 training computationscaling

    • 许多研究(《High-dimensional dynamics of generalization error inneural networks》《Reconciling modern machine learning and the bias-variance trade-off》对高度过参数化的模型(highly overparameterized model)的泛化进行了研究,发现当模型规模达到数据集规模时,会出现 "jamming transition"《Scaling description of generalization with number of parameters in deep learning》)(这可能需要超出典型实践许多数量级的 training ,尤其是不使用早停)。我们没有观察到这样的 transition ,并发现所需的训练数据在模型大小上呈亚线性 scaling 。模型规模的扩展,特别是在 large width 上的扩展,可能为思考我们的一些 scaling 关系提供了一个有用的框架。

      我们关于 optimization 的结果(如学习曲线的形状),很可能可以用一个 noisy 的二次模型来解释,它可以在现实环境中提供相当准确的预测(《Which algorithmic choices matter at which batch sizes? insights from a noisy quadratic model》)。定量评估这种联系将需要海森谱( Hessian spectrum) 的特性。

这篇论文直接看结论部分即可,剩余的大多数都是实验报告。

43.1 背景和模型

  1. 符号:

    • L$ L $ :交叉熵损失。通常情况下,它将是一个上下文中所有 token 的交叉熵损失的平均值,但在某些情况下,我们会报告上下文中特定位置处的 token 的损失。

    • N$ N $ :模型参数的数量,不包括所有 vocabulary embeddingpositional embedding

    • C6NBS$ C\simeq 6NBS $ :是对 non-embeddingtraining 总计算量的估计,其中B$ B $ 是 batch sizeS$ S $ 是 training steps 数量(即 parameter updates )。我们引入 PF-days 为单位,其中一个 PF-days 表示1015×24×3600=8.64×1019$ 10^{15}\times 24 \times 3600 = 8.64\times 10^{19} $ 次浮点运算。

    • D$ D $ :数据集的大小,单位为 token

    • Bcrit$ B_\text{crit} $ :critical batch size,在后续内容中定义和讨论。使用 critical batch size 的训练提供了训练时间和计算效率之间的大致上的最佳 trade-off

    • Cmin$ C_\min $ :对达到给定 loss 的最小 non-embedding compute 的估计。这是在模型以远小于 critical batch sizebatch size 进行训练时将使用的 training compute

      较小的 batch size 可以实现较小的计算量、但是需要较大的训练时间。

    • Smin$ S_\min $ :达到给定 loss 所需的最小 training steps 数的估计。这也是如果模型在batch size 远大于 critical batch size 的情况下所使用的 training steps 数量。

      较大的 batch size 可以实现较小的训练时间、但是需要较大的计算量。

    • αX$ \alpha_X $ :对 loss 缩放的幂率函数的指数,其中L(X)(1/X)αX$ L(X)\propto \left(1/X\right)^{\alpha_X} $ ,X$ X $ 可以为N,D,C,S,B,Cmin$ N,D,C,S, B,C_\min $ 中的任意一种。

    注,这里的 loss 函数是 test loss,而不是 train loss

  2. 我们在 WebText2 上训练语言模型,这是 WebText数据集的扩展版本,使用 byte-pair encoding: BPE 进行 tokenizevocabulary sizenvocab=50257$ n_\text{vocab} = 50257 $ 。我们优化 autoregressive log-likelihood (即交叉熵损失),在 1024-token 的上下文中取平均,这也是我们的主要性能指标。我们在 WebText2 测试集、以及其它一些测试集上记录 loss 。我们主要训练 decoder-only Transformer 模型,尽管我们也训练 LSTM 模型和 Universal Transformer 以进行比较。

    模型的性能评估指标是测试集上的交叉熵损失。

a. Transformer 的参数 scaling 和计算量 scaling

  1. 我们使用超参数nlayer$ n_\text{layer} $ (层数)、dmodel$ d_\text{model} $ (residual stream 的维度)、dff$ d_\text{ff} $ (中间 feed-forward layer 的维度)、dattn$ d_\text{attn} $ ( attention output 的维度)和nheads$ n_\text{heads} $ (每层 attention head 的数量)对Transformer 架构进行参数化。我们在输入上下文中包括nctx$ n_\text{ctx} $ 个 token ,除另有说明外否则默认采用nctx=1024$ n_\text{ctx}=1024 $ 。

    我们用N$ N $ 来表示模型大小,我们把它定义为 non-embedding parameters 的数量(推导过程参考Table 1 ):

    (1)N2dmodel×nlayer×(2dattn+dff)=12nlayerdmodel2with the standarddattn=dff/4=dmodel

    其中,我们排除了 bias 项和其他次要的项。我们的模型在 embedding 矩阵中也有nvocab×dmodel$ n_\text{vocab}\times d_\text{model} $ 个参数,并使用nctx×dmodel$ n_\text{ctx}\times d_\text{model} $ 个参数进行 positional embedding ,但我们在讨论 "模型大小"N$ N $ 时不包括这些参数。我们将看到,这产生了明显更干净的 scaling law

    评估 Transformer 的前向传播大致上包括Cforward2N+2nlayer×nctx×dmodel$ C_\text{forward}\simeq 2N + 2n_\text{layer}\times n_\text{ctx}\times d_\text{model} $ 个乘加操作(add-multiply operation ),其中系数 2 来自于矩阵乘法中使用的 multiply-accumulate operation 。下表中包含了更详细的每个操作的参数数量和计算次数。

  2. 对于dmodel>nctx/12$ d_\text{model} > n_\text{ctx}/12 $ 的上下文和模型,每个 tokencontext-dependent 的计算成本是总计算量的一个相对较小的部分。由于我们主要研究dmodelnctx/12$ d_\text{model} \gg n_\text{ctx}/12 $ 的模型,我们的 training compute 的估计中不包括 context-dependent 项。考虑到反向传播(大约是前向传播计算量的两倍),我们为每个 training token 将估计的 non-embedding compute 定义C6N$ C\simeq 6N $ 个浮点运算。

    对于 GPT-3 175Bdmodel=12288$ d_\text{model} = 12288 $ ,nlayer=96$ n_\text{layer} = 96 $ ,dattn=dmodel$ d_\text{attn} = d_\text{model} $ ,dff=4×dmodel$ d_\text{ff} = 4\times d_\text{model} $ 。因此只需要nctx<147456$ n_\text{ctx} \lt 147456 $ 即可满足上述条件。

b. 训练过程

  1. 除非另有说明,我们用 Adam 优化器训练模型,其中训练了固定的2.5×105$ 2.5\times 10^5 $ 步, batch size512 个序列,每个序列包含 1024 tokens

    • 由于内存限制,我们最大的模型(超过 1B 个参数)是用 Adafactor 训练的。

    • 我们试验了各种学习率和 schedules 。我们发现,收敛的结果在很大程度上与 learning rate schedule 无关。除非另有说明,我们的数据中包括的所有 training runs 都使用了同一个 learning rate schedule ,即:3000 步的线性预热,然后是余弦衰减学习率到零。

  2. 我们用各种学习率和 schedule 进行了实验。下图显示了一个小型语言模型的一系列 schedules 和测试结果。我们的结论是,只要 total summed learning rate 足够大,而且 schedule 包括一个预热期、以及最后衰减到接近零的学习率,那么 learning rate schedule 的选择基本上是不重要的。schedules 之间的方差似乎是统计学上的噪音,并为不同 training runs 之间的方差的 scale 提供一个粗略的衡量标准。在较大的模型上的实验表明,对于不同的模型大小,不同的随机种子之间的 final test loss 的方差的幅度是大致不变的。

    我们发现,较大的模型需要一个较小的学习率来防止发散,而较小的模型可以容忍较大的学习率。为了实现这一点,在大多数 runs 中使用了以下经验法则:

    (2)LR(N)0.003239±0.0001395×log(N)

    我们期望这个公式可以被改进。

    可能存在对 network width 的依赖性,可能是由 initialization scale 设定的。对于N>1010$ N>10^{10} $ 个参数,该公式也会被打破。尽管如此,我们发现它对我们所考虑的模型有足够的作用。

c. 数据集

  1. 我们在 GPT2中描述的 WebText 数据集的扩展版本上训练我们的模型。最初的 WebText 数据集是对 Reddit201712 月的外链(包含 Reddit 用户的至少三个点赞)的网络爬取。在第二个版本中(即,WebText2 ),我们增加了 20181 月至 10 月期间的 Reddit 外链,也是至少有 3 个点赞的。karma 阈值(即,点赞的数量阈值)作为一种启发式方法,用于判断人们是否认为该链接有趣或有用。新链接的文本是用 Newspaper3k python library 提取的。

    总的来说,该数据集由 20.3M 篇文档组成,包含 96GB 的文本和1.62×1010$ 1.62\times 10^{10} $ 个单词。然后我们应用 GPT2 中描述的可逆的 tokenizer ,产生2.29×1010$ 2.29\times 10^{10} $ 个 token 。我们保留了其中的6.6×108$ 6.6\times 10^8 $ 个 token 作为测试集,并且我们还在类似的 Books CorpusCommon CrawlEnglish Wikipedia 、以及公开的 Internet Books 集合中进行测试。

43.2 实验结果和 Basic Power Laws

  1. 为了刻画 language model scaling ,我们训练了各种各样的模型,其中改变了一些因子,包括:

    • 模型大小:从 7681.5Bnon-embedding 参数。

    • 数据集大小:从 22M230Btoken

    • 模型shape:包括 depthwidthattention head、以及 feed-forward dimension

    • 上下文长度:大多数 runs 设置为 1024,但我们也尝试使用较短的上下文。

    • batch size: 大多数 runs 设置为219$ 2^{19} $ ,但我们也改变 batch size 从而测量 critical batch size

43.2.1 Transformer Shape

  1. 当我们固定 non-embedding 参数总数N$ N $ 时, Transformer 的性能对 shape 参数nlayer,nheads,dff$ n_\text{layer}, n_\text{heads}, d_\text{ff} $ 的依赖非常弱。

    为了确定这些结果,我们用固定的模型大小来训练模型,同时改变一个超参数。

    • 这对于nheads$ n_\text{heads} $ 的情况是最简单的:改变nheads$ n_\text{heads} $ 同时改变每个 head 的维度,使得dmodel$ d_\text{model} $ 保持不变。

      右图中,每条曲线对应于固定的dmodel$ d_\text{model} $ 同时改变nheads$ n_\text{heads} $ 。

    • 当改变nlayer$ n_\text{layer} $ 时,我们同时改变dmodel$ d_\text{model} $ ,同时保持N12nlayerdmodel2$ N\simeq 12n_\text{layer} d_\text{model}^2 $ 固定。

      中间图中,每条曲线对应于固定的参数量同时改变nlayer$ n_\text{layer} $ 和dmodel$ d_\text{model} $ 。

    • 同样地,为了在固定的模型大小下改变dff$ d_\text{ff} $ ,我们也同时改变dmodel$ d_\text{model} $ 参数,这是由 Table 1 中的参数数量所要求的。

      左图中,每条曲线对应于固定的参数量同时改变dff$ d_\text{ff} $ 和dmodel$ d_\text{model} $ 。

    如果 deeper Transformer 有效地表现为 shallower modelensembles,那么就会导致nlayer$ n_\text{layer} $ 的独立性,正如对 ResNet 的建议(《Residual networks behave like ensembles of relatively shallow networks》)。结果显示在下图中。

    下图中,不同的模型形状,得到的 test loss 差异很小,差异基本上都在 10% 以内。

43.2.2 non-embedding 参数数量 N

a. 实验结果

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

    Figure 1 右图所示,我们发现关于 non-embedding 参数数量N$ N $ 的一个稳定的趋势,即:

    (3)L(N)(NcN)αN

    要观察这些趋势,关键是要研究模型性能与N$ N $ 的关系。如果我们改用总的参数数量(包括 embedding 参数),趋势就有些模糊了(如下左图所示)。这表明,embedding matrix 可以做得更小而不影响性能,这在最近的工作中已经看到了(《Albert: A lite bert for self-supervised learning of language representations》)。

    ALBertembedding matrix 分解为两个低维矩阵的乘积,这等价于降低了 embedding matrix 的大小。

  2. 尽管这些模型是在 WebText2 数据集上训练的,但它们在其他各种数据集上的 test loss 也是N$ N $ 的幂律,指数几乎相同,如下左图所示。

    左图、右图的详细说明参考 “数据分布之间的泛化” 章节。

b. 与 LSTM 和 Universal Transformer的比较

  1. 在下图中,我们比较了 LSTMTransformer 的性能与 non-embedding 参数数量N$ N $ 的关系。LSTM 是用与 Transformer 相同的数据集和上下文长度来训练的。从右图中我们可以看出,LSTM 对于上下文位置中头部出现的 token 表现得和 Transformer 一样好,但是对于上下文位置中尾部出现的 token 则无法与 Transformer 的表现相媲美。

    红色曲线为 LSTM,蓝色曲线为 Transformer

  2. 下图中给出了模型性能与上下文位置之间的幂律关系,其中,除了第一个 token 之外(最上面的一条曲线),都显示了随着模型大小的增加而稳定地改善,表明快速识别模式的能力有所提高。

    我们还包括用很小的nctx=8$ n_\text{ctx}=8 $ 上下文来训练的模型,以便与我们的更长的上下文模型进行比较(即,nctx=1024$ n_\text{ctx} = 1024 $ )。即使是在nctx=8$ n_\text{ctx}=8 $ 的情况下训练的规模不大的模型也能在非常早期的 token 上超越我们最大的nctx=1024$ n_\text{ctx}=1024 $ 模型。这也表明,在大的上下文下训练的更大的模型应该可以有进一步的改进。

    因为对于nctr=1024$ n_\text{ctr} = 1024 $ 的模型,它看到的上下文信息更多,理论上应该表现更好。

  3. 在固定模型大小的情况下, loss scale 似乎与上下文中的位置T$ T $ 成幂律关系,如下图所示。这可能是语言中潜在的 power-law correlation 的结果,或者是模型结构和 optimization 的一个更普遍的特征。它为在更大的上下文中训练的潜在好处(或潜在不足)提供了一些建议。不仅较大的模型在T=1024$ T=1024 $ 时收敛到较好的性能,而且在 early tokens 时也改善得更快,这表明较大的模型在检测 less contextual information 的模式时更有效率。

    在右边的图中,我们显示了对于一个固定的模型, per-token 性能是如何作为 training steps 的函数而变化的。early tokens 在训练过程中更快地被学好,而末尾的 tokens 在训练的后期才能训练好。

    左图:每条曲线对应一个模型(不同模型大小)的 per-token test loss ,在模型训练结束后。

    右图:每条曲线对应一个 token index 的学习曲线,在模型训练过程中,固定的模型。

  4. 我们还在下图中比较了标准 Transformerrecurrent Transformer《Universal transformers》)的性能。 recurrent Transformer 模型复用参数,因此表现得略好(右图),但代价是每个参数的额外计算量。

    左图把 reuse 的参数也认为是全新的,因此参数规模会变大。

c. 数据分布之间的泛化

  1. 我们还在一组额外的文本数据分布上测试了我们的模型。下图显示了这些数据集上的 test loss 与模型大小的关系。在所有情况下,模型都只在 WebText2 数据集上训练过。

    • 从左图中我们看到,在这些其他数据分布上的 loss 随着模型规模的增加而平滑地改善,直接地平行于 WebText2test loss 曲线。

    • 从右图中我们发现,泛化性几乎完全取决于 in-distribution validation loss ,而不取决于训练的持续时间、或接近于收敛的程度。

      虚线表示单个大型模型在它训练过程中,所得到的 test loss;圆点表示很多收敛的模型对应的 test loss

  2. 我们还观察到对模型深度没有依赖性(在固定模型大小的条件下)。

d. 性能与数据集大小和计算量的关系

  1. 我们在下图中显示了 test loss 作为数据集大小D$ D $ (以 token 数量为单位)和训练计算量C$ C $ 的函数的经验趋势。

    • 对于D$ D $ 上的趋势,我们在 WebText2 数据集的固定子集上训练了一个(nlayer,nembd)=(36,1280)$ (n_\text{layer},n_\text{embd}) = (36, 1280) $ 的模型。一旦 test loss 不再减少,我们就停止训练。我们看到,所产生的 test loss 可以用数据集大小D$ D $ 的简单的幂律来拟合:

      (4)L(D)(DcD)αD

      Figure 1 中间的图所示。

    • 训练过程中使用的 non-embedding 计算总量可以估计为C=6NBS$ C = 6NBS $ ,其中B$ B $ 是 batch sizeS$ S $ 是 parameter updates 的数量,系数 6 代表了同时包含前向传播和反向传播。因此,对于一个给定的C$ C $ 值,我们可以扫描所有具有不同N$ N $ 的模型,找到在 step 数量S=C6BS$ S = \frac{C}{6BS} $ 上具有最佳性能的模型。

      请注意,在这些结果中,batch sizeB$ B $ 对所有模型都是固定的,这意味着这些经验结果不是真正的最优。我们将在后面的章节中使用调整后的Cmin$ C_{\min} $ 来说明这一点,以产生更清晰的趋势。

      这个结果如Figure 1 左图的加粗黑线所示。它可以用如下的方程来拟合:

      (5)L(C)(CcC)αC

      此外,在左图中还包括每个模型的学习曲线,从而展示每个模型何时达到最优。

  2. 我们将在后面更仔细地研究计算量的最佳分配问题。数据强烈表明,sample efficiency 随着模型的大小增加而提高,如右图所示,对于给定的 test loss,模型越大所需要的样本数越少。

    • 左图:每条曲线表示在给定的 test loss (不同曲线采用不同的值)的条件下,最短的训练时间(由 minimum steps 衡量)和模型大小的关系。通常而言,模型参数越大,训练时间越短。

    • 右图:每条曲线表示在给定的 test loss (不同曲线采用不同的值)的条件下,最少的训练过程中看过的样本(E=B×S$ E = B\times S $ )和模型大小的关系。通常而言,模型参数越大,所需要的样本数越少。

43.3 Infinite Data Limit 和过拟合

  1. 在前面的内容中,我们发现了针对语言建模性能的一些 basic scaling laws 。这里,我们将研究在具有D$ D $ 个 tokens 的数据集上训练的大小为N$ N $ 的模型,并同时改变N$ N $ 和D$ D $ 时模型的性能。我们将从经验上证明最佳的 test loss 符合公式L(N,D)$ L(N,D) $ 的 scaling law 。这为我们需要多少数据来训练规模不断扩大的模型、并同时控制过拟合提供了指导。

43.3.1 L(N, D) 公式

  1. 我们选择参数化L(N,D)$ L(N,D) $ 为:

    (6)L(N,D)=[(NcN)αN/αD+DcD]αD

    其中,这个公式基于三个原则:

    • 词表大小或 tokenization 的变化有望通过一个整体因子来 rescale 损失函数。L(N,D)$ L(N,D) $ 的参数化(以及所有 loss 的建模)自然必须考虑到这种 rescaling

    • 固定D$ D $ 并选择N$ N\rightarrow \infty $ ,那么 overall loss 应该接近L(D)$ L(D) $ 。相反地,固定N$ N $ 并选择D$ D\rightarrow \infty $ ,那么 overall loss 应该接近L(N)$ L(N) $ 。

    • L(N,D)$ L(N,D) $ 应该在D=$ D=\infty $ 处是 analytic 的,因此它在1/D$ 1/D $ 处具有整数幂次的级数展开(series expansion)。对这一原则的理论支持明显弱于前两者。

      即,对于无限的训练数据,模型应该能够收敛。

    我们选择的L(N,D)$ L(N, D) $ 满足第一个要求,因为我们可以通过改变词表来 rescaleNc,Dc$ N_c, D_c $ 。这也暗示了Nc,Dc$ N_c, D_c $ 的具体取值没有根本意义。

    因为当 test loss 停止改善时我们提前结束训练,并且我们以相同方式优化所有模型,所以我们期望较大的模型应该总是比较小的模型表现得更好。但是对于固定的、有限的D$ D $ ,我们也不期望任何模型能够接近最佳的 possible loss 。类似地,具有固定大小的模型将是容量有限的。这些考虑激发了我们的第二个原则。注意,关于在D$ D $ 无穷大时的L(N)$ L(N) $ 、以及在N$ N $ 无穷大时的L(D)$ L(D) $ 的知识,完全决定了L(N,D)$ L(N,D) $ 中的参数。

    第三个原则更加是推测性的。一个简单而普遍的原因是,在非常大的D$ D $ 时,人们可能会过拟合到scale1/D$ \text{scale }\propto 1/D $ 。过拟合应该与数据集的方差或信噪比有关(《High-dimensional dynamics of generalization error in neural networks》),这与1/D$ 1/D $ 成比例。这一预期应该适用于任何平滑的损失函数,因为我们希望能够将 loss 扩展到D$ D\rightarrow \infty $ 的极限。然而,这种观点假设1/D$ 1/D $ correction 在其他方差来源中占主导地位,例如有限的 batch sizeefficacy of optimization 的其他限制。没有经验的证实,我们对它的适用性没有信心。

    我们的第三个原则解释了公式L(N,D)$ L(N,D) $ 中N$ N $ 和D$ D $ 的作用之间的不对称。非常相似的对称表达式也是可能的,但是它们不会有1/D$ 1/D $ 的整数幂次展开式,并且需要引入一个额外的参数。

    在任何情况下,我们都会看到,我们对于L(N,D)$ L(N,D) $ 的公式很好地拟合了数据,这是我们的L(N,D)$ L(N,D) $ 假设方程的最重要的理由。

43.3.2 拟合结果

  1. 我们以 10%dropout rate 来正则化我们的所有模型,然后跟踪 test loss ,一旦 test loss 不再下降时我们就停止训练。实验结果如 Figure 9 左图所示,它包含了针对公式L(N,D)$ L(N,D) $ 中的四个参数αN,αD,Nc,Dd$ \alpha_N,\alpha_D,N_c,D_d $ 的拟合。拟合的参数如下表所示:

    Figure 9 左图:每条曲线代表一个 data size,给出了在该 data size 的条件下,test lossN$ N $ 的关系。

    Figure 9 右图:L(N,D)L(N,D=)1$ \frac{L(N,D)}{L(N,D=\infty)} -1 $ 和NαNαD/D$ N^{\frac{\alpha_N}{\alpha_D}}/D $ 之间的拟合曲线。

    我们获得了极好的拟合,除了如下的 runs:数据集已经减少了 1024 倍到大约2×107$ 2\times 10^7 $ tokens 。对于如此小的数据集,一个 epoch 仅包含 40 次参数更新。也许这样一个微小的数据集代表了语言建模的一个不同的区域,因为过拟合在训练的早期就发生了 (Figure 16 右图的第一条 Test Loss 曲线)。还要注意,这些参数与 basic power laws 中获得的参数略有不同,因为这里我们拟合的是完整的L(N,D)$ L(N,D) $ 而不仅仅是L(N,)$ L(N,\infty) $ 或L(,D)$ L(\infty,D) $ 。

43.3.3 D 和 N 之间的亚线性关系

  1. 为了绘制 infinite data limit 的边界,我们可以直接研究过拟合的程度。对于除了最大的模型之外的所有模型,当用完整的 22B tokenWebText2 数据集训练时,我们没有看到过拟合的迹象,因此我们可以将其作为D=$ D = \infty $ 的代表。因此,我们可以通过如下定义来比较有限的D$ D $ 和 infinite data limit

    (7)δL(N,D)=L(N,D)L(N,)1

    并把它作为N,D$ N, D $ 的函数来研究。事实上,我们从经验上看到, δL$ \delta L $ 仅依赖于N$ N $ 和D$ D $ 的特定组合,如 Figure 9 右图所示。这是根据等式L(N,D)$ L(N,D) $ 的 scaling law 得出的,即:

    (8)δL(1+(NNc)αNαD×DcD)αD1

    根据L(N)(NcN)αN$ L(N) \simeq \left(\frac{N_c}{N}\right)^{\alpha_N} $ ,我们可以得到:

    (9)L(N,D)L(N,)[(NcN)αN/αD+DcD]αD((NcN)αN/αD)αD=(1+(NNc)αNαD×DcD)αD

    注意,在大的D$ D $ 时,该公式也有1/D$ 1/D $ 的幂级数展开。

    L(N,)$ L(N,\infty) $ 表示数据集无限大时的 test loss,它是L(N,D)$ L(N,D) $ 的下限,代表没有过拟合时的 test loss 。因此:

    • δL$ \delta L $ 一定大于等于 0 。如 Figure 9 右图所示。

    • δL$ \delta L $ 代表了由于数据量不足导致的过拟合。

    对于不同的随机数种子,我们估计 loss 的方差大约为 0.02 ,这意味着,为了避免过拟合,我们需要:

    (10)D(5×103)×N0.74

    推导过程:δL0.02$ \delta L \le 0.02 $ ,即可得到该方程。

    利用这种关系,小于109$ 10^9 $ 个参数的模型可以在 22B tokenWebText2 数据集上被训练从而具有最小的过拟合,但是我们最大的模型将会遇到一些轻微的过拟合。更一般地,这种关系表明数据集大小可以关于模型大小成亚线性增长,同时避免过拟合。然而,请注意,这通常并不代表 compute-efficient training

    我们还应该强调,在改变数据集和模型大小时,我们没有 optimized regularization (例如,dropout rate )。

43.4 关于模型大小和训练时间的 scaling laws

  1. 在本节中,我们将证明一个简单的 scaling law 可以很好地描述 loss 作为模型大小N$ N $ 和训练时间的函数。

    • 首先,我们将解释如何使用 《An empirical model of large-batch training》 的结果来定义 universal training stepSmin$ S_\min $ ,这说明了我们的大多数模型尚未在最佳 batch size 下训练的事实。

    • 然后,我们将证明我们可以使用公式L(N,S)$ L(N,S) $ 拟合 loss 与模型大小和训练时间。

    • 稍后,我们将使用这些结果来预测模型大小和训练时间之间关于训练计算量的最佳分配,然后确认该预测。

43.4.1 临界 Batch size

  1. 《An empirical model of large-batch training》 中提出了一个关于训练的 batch size 依赖性的简单的经验理论。该论文认为,对于 training,有一个临界 batch sizeBcrit$ B_\text{crit} $ :

    • 对于B<Bcrit$ B\lt B_\text{crit} $ ,batch sizeB$ B $ 可以增加,而 compute-efficiency 的下降非常小。

    • 而对于B>Bcrit$ B \gt B_\text{crit} $ ,B$ B $ 的增加导致收益递减。

    该论文还认为, gradient noise scaleBcrit$ B_\text{crit} $ 提供了一个简单的预测,并且 gradient noise scale 也不直接依赖于模型大小,而是依赖于已经获得的 loss value 。这些结果可用于预测训练时间和计算量将如何随 batch size 而变化。为了尽可能有效地平衡训练时间和计算量,最好使用 batch sizeBBcrit$ B\simeq B_\text{crit} $ 进行训练。在BBcrit$ B\gg B_\text{crit} $ 的训练最小化了 training steps 数量,而在BBcrit$ B\ll B_\text{crit} $ 的训练最小化了计算量的使用。

    即:大的 batch size 可以节省训练时间、但是浪费了计算量;小的 batch size 可以节省计算量、但是浪费了计算时间。

    更具体地,可以证明对于各种各样的神经网络任务, 当训练到 lossL$ L $ 的任何固定值时,training steps 数量S$ S $ 和 processed 数据样本数量E=BS$ E=BS $ 满足简单的关系:

    (11)(SSmin1)×(EEmin1)=1

    其中:Smin$ S_\min $ 为达到L$ L $ 所需的最小 training steps 数量,而Emin$ E_\min $ 是必须处理的数据样本的最小数量。

    注意:Smin$ S_\min $ 并不是在Emin$ E_\min $ 处取得的,即:EminBSmin$ E_\min \ne B S_\min $ ,除了在B=Bcrit$ B=B_\text{crit} $ 。

    我们在下图中展示了针对 Transformer 的这种关系(即,(SSmin1)×(EEmin1)=1$ \left(\frac{S}{S_\min} - 1\right)\times \left(\frac{E}{E_\min} - 1\right) = 1 $ )。左图、右图分别给出了两种不同参数规模下的曲线,横轴为S$ S $ 、纵轴为E$ E $ 。每条曲线代表一个固定的 test loss

    这个关系定义了临界的 batch size

    (12)Bcrit(L)=EminSmin

    它是目标损失值的函数。在临界 batch size 的训练可以实现大致最优的 time/compute tradeoff ,需要S=2Smin$ S=2S_\min $ 的 training steps 、以及处理E=2Emin$ E=2E_\min $ 的数据样本。

  2. 在下图中,我们绘制了两个不同模型的临界 batch sizegradient noise scale ,作为 training loss 的函数。我们看到,Bcrit(L)$ B_\text{crit}(L) $ 与模型大小无关,仅取决于 lossL$ L $ 。因此,《An empirical model of large-batch training》prediction 继续适用于 Transformer 语言模型。临界 batch sizeloss 上符合幂律:

    (13)Bcrit(L)BL1/αB

    其中:B2×108$ B_*\simeq 2\times 10^8 $ ,αB0.21$ \alpha_B\simeq 0.21 $ 。

    为什么选择这样的拟合公式?因为随着 loss 接近其最小值Lmin$ L_\min $ ,gradient noise scale 预计会发散,并且我们期望Bcrit$ B_\text{crit} $ 跟踪该 noise scale 。因此随着L$ L $ 越来越小(接近Lmin$ L_\min $ ),我们希望Bcrit$ B_\text{crit} $ 越来越大。即,L0$ L\rightarrow 0 $ 时Bcrit$ B_\text{crit} $ 趋向于正无穷。

    注意:下图中,横轴的右侧为零。

  3. 如果我们在BBcrit(L)$ B\gg B_\text{crit}(L) $ 处训练,则大小为N$ N $ 的模型训练到 lossL$ L $ 所需的 training steps 数量的临界值定义为:

    (14)Smin=S1+Bcrit(L)/B,min steps atBBcrit

    推导过程:根据定义Bcrit(L)=EminSmin$ B_\text{crit}(L) = \frac{E_\min}{S_\min} $ 、E=BS$ E=BS $ ,以及拟合公式(SSmin1)×(EEmin1)=1$ \left(\frac{S}{S_\min} - 1\right)\times \left(\frac{E}{E_\min} - 1\right) = 1 $ ,有:

    (15)1=(SSmin1)×(EEmin1)=(SSmin1)×(BSBcritSmin1)=BBcrit(SSmin)2(1+BBcrit)SSmin+1Smin=S1+Bcrit(L)/B

    推导过程中并未要求BBcrit(L)$ B\gg B_\text{crit}(L) $ ,这个约束条件从何而来?论文并未说明。读者猜测可能是由于(SSmin1)×(EEmin1)=1$ \left(\frac{S}{S_\min} - 1\right)\times \left(\frac{E}{E_\min} - 1\right) = 1 $ 需要满足的条件而引起的。

    该式子的物理意义:

    • 根据S=Smin×(1+Bcrit/B)$ S = S_\min\times (1 + B_\text{crit}/B) $ ,则给定 batch sizeBBcrit$ B \gg B_\text{crit} $ ,我们可以预测需要多少个 training stepS$ S $ 模型能够收敛。

    • 另一方面,任意选择一个 batch sizeBBcrit$ B \gg B_\text{crit} $ ,根据它的收敛时的 training stepS$ S $ ,我们能够统计得到Smin$ S_\min $ 。

    如果我们在BBcrit(L)$ B\ll B_\text{crit}(L) $ 处训练,这也定义了用大小为N$ N $ 的模型训练到 lossL$ L $ 所需的计算量的临界值:

    (16)Cmin(C)=C1+B/Bcrit(L),min compute atBBcrit

    其中:C=6NBS$ C = 6NBS $ 估计了 batch sizeB$ B $ 处的 non-embedding 计算量。

    推导过程:根据定义Bcrit(L)=EminSmin$ B_\text{crit}(L) = \frac{E_\min}{S_\min} $ 、E=BS$ E=BS $ ,以及拟合公式(SSmin1)×(EEmin1)=1$ \left(\frac{S}{S_\min} - 1\right)\times \left(\frac{E}{E_\min} - 1\right) = 1 $ ,有:

    (17)1=(SSmin1)×(EEmin1)=(E/BEmin/Bcrit1)×(EEmin1)=BcritB(EEmin)2(1+BcritB)EEmin+1Emin=E1+B/Bcrit(L)

    根据C=6NBS$ C=6NBS $ ,则可以得到上述公式。

    推导过程中并未要求BBcrit(L)$ B\ll B_\text{crit}(L) $ ,这个约束条件从何而来?论文也未说明。读者猜测可能是由于(SSmin1)×(EEmin1)=1$ \left(\frac{S}{S_\min} - 1\right)\times \left(\frac{E}{E_\min} - 1\right) = 1 $ 需要满足的条件而引起的。

43.4.2 关于模型大小和计算量的性能

  1. 现在,我们将使用定义的Smin$ S_\min $ 来获得在 infinite data limit 下, loss 对模型大小和训练时间的依赖性的简单且通用的拟合。对于loss,我们将使用公式L(N,S)$ L(N,S) $ 来拟合稳定的、Adam 优化的 training runs ,即:

    (18)L(N,Smin)=(NcN)αN+(ScSmin)αS

    我们纳入了 learning rate schedulewarmup 阶段后的所有 training steps ,并找到了拟合数据的参数:

  2. 有了这些参数,我们获得了右图中的学习曲线的拟合。尽管拟合并不完美,但我们相信,鉴于方程L(N,Smin)$ L(N,S_\min) $ 的简单性,它们是相当令人信服的。

    右图中,每条曲线对应固定模型大小条件下不同Smin$ S_\min $ 的 test loss

    lossSmin$ S_\min $ 的 power-law dependence 反映了 optimizer dynamicsloss landscape 的相互作用。由于拟合曲线在训练后期是最好的,此时 loss 可能近似为二次方程,power-law 应该提供关于 lossHessian 谱的信息。它的普遍性表明,Hessian eigenvalue density 大致独立于模型大小。

  3. 数据和拟合可以以不同的、更有趣的方式可视化,如下图所示。在此,我们研究了作为模型大小的函数的 test loss ,同时固定了训练中使用的总的 non-embedding computeC$ C $ 、或 training steps 数量S$ S $ 。对于拟合,我们使用方程Cmin$ C_\min $ 、Smin$ S_\min $ 、上述参数、以及方程L(N,Smin)$ L(N,S_\min) $ 。

    左图:每条曲线给出了固定计算预算条件下 test loss 和模型大小的关系;

    右图:每条曲线给出了固定 steps 条件下 test loss 和模型大小的关系;

43.4.3 Early Stopping Step 的下限

  1. L(N,Smin)$ L(N,S_\min) $ 的结果可用于导出 training step 数量的下限(粗略的估计),其中在 data limited 训练中出现了早停。它的动机是这样的思想,对于给定的模型,有限的D$ D $ 和无限的D$ D $ 对应的学习曲线将会非常相似,直到我们达到SminSstop$ S_\min\simeq S_\text{stop} $ 。因此,过拟合应该与简单地在Sstop$ S_\text{stop} $ 结束训练所对应的 correction 成比例。这将低估Sstop$ S_\text{stop} $ ,因为在现实中,当我们有一个有限的D$ D $ 时,test loss 将下降得更慢,因此我们将需要更多的 training steps 数量来达到在有限的D$ D $ 时的最佳 test loss 。这个推理方向导致了不等式:

    (19)Sstop(N,D)Sc[L(N,D)L(N,)]1/αS

    其中:L(N,)$ L(N,\infty) $ 为用无限可用数据评估的收敛后的损失。

    分母代表过拟合的程度,其中L(N,)$ L(N,\infty) $ 表示无限数据条件下的 test loss (代表没有过拟合)。过拟合程度越少,那么Sstop$ S_\text{stop} $ 越大(早停发生的时刻越晚)。

    这个公式似乎不是推导而来,而是经验公式。

    左图显示了这个不等式及其与经验数据的比较。在该图中,Sstop$ S_\text{stop} $ 和L(N,D)$ L(N,D) $ 是经验性的(尽管Sstop$ S_\text{stop} $ 被调整以模拟BBcrit$ B\gg B_\text{crit} $ 时的训练),而L(N,)$ L(N,\infty) $ 是对L(N,D)$ L(N,D) $ 在D=$ D=\infty $ 时评估而来。

43.5 计算量预算的最优分配

  1. 我们在 Figure 1 的右上角显示了性能的经验趋势作为训练计算量的函数。然而,这一结果涉及固定 batch sizeB$ B $ 的训练,但是我们知道,事实上我们可以通过前面讨论的 batch sizeBcrit$ B_\text{crit} $ 来更有效地训练。

    在本节中,我们将针对这一疏忽进行调整。更重要的是,我们将使用前面的结果来确定模型大小N$ N $ 、以及训练期间处理的数据量E$ E $ 之间的计算量的最优分配。使用公式L(N,Smin)$ L(N,S_\min) $ ,我们将从经验和理论两方面来确定这种分配, 我们将证明这些方法是一致的。

43.5.1 最优性能和分配

  1. 从公式Cmin$ C_\min $ 中,让我们首先研究 loss 作为最优分配计算量Cmin$ C_\min $ 的函数。结果如下图所示,并符合幂律曲线。我们看到,与 Figure 1 的计算量图相比,新的关于Cmin$ C_\min $ 的拟合有所改善。

    橙色曲线为L(C)$ L(C) $ ,而蓝色曲线为L(Cmin)$ L(C_\min) $ ,可以看到蓝色曲线的拟合更好。

    Figure 1 的左图也是L(Cmin)$ L(C_\min) $ 。

  2. 给定L(Cmin)$ L(C_\min) $ ,很自然地会要求最佳模型大小N(Cmin)$ N(C_\min ) $ ,以便在给定数量的训练计算量的情况下提供最小的 loss 。最佳模型尺寸如下左图所示。我们观察到N(Cmin)$ N(C_\min) $ 可以很好地拟合幂律:

    (20)N(Cmin)(Cmin)0.73

  3. 在下图中,我们展示了次优 model size 来训练模型的效果。

    左图,次优 model size 导致更多的计算量(相对于最佳计算量)。

    右图,更大 model size 导致更少的计算时间(相对于最佳计算时间)。

  4. 通过定义Cmin=6NBcritSmin$ C_\min = 6NB_\text{crit}S_\min $ ,因此我们可以使用N(Cmin)$ N(C_\min) $ 来提取进一步的结果。具体而言,由于之前的拟合曲线显示BL4.8$ B\propto L^{-4.8} $ 和LCmin0.05$ L\propto C_\min^{-0.05} $ ,我们可以得出结论:BcritCmin0.24$ B_\text{crit}\propto C_\min^{0.24} $ 。

    0.24=(4.8)×(0.05)$ 0.24 = (-4.8)\times (-0.05) $ 。

    这使我们得出结论,随着计算量的增加,最佳 training steps 数量只会非常缓慢地增长,因为SminCmin0.03$ S_\min\propto C_\min^{0.03} $ 与 Figure 14 中右图的经验结果相匹配。事实上, measured exponent 足够小,我们的结果甚至可能与指数为零相一致。

    由于N(Cmin)(Cmin)0.73$ N(C_\min)\propto (C_\min)^{0.73} $ 、BcritCmin0.24$ B_\text{crit}\propto C_\min^{0.24} $ ,此外根据Cmin=6NBcritSmin$ C_\min = 6NB_\text{crit}S_\min $ ,则SminCmin0.03$ S_\min\propto C_\min^{0.03} $ ,其中0.03=10.730.24$ 0.03 = 1-0.73-0.24 $ 。

    因此,我们的结论是:当我们以最佳计算量分配来 scale up 语言模型时,我们应该主要增加模型大小N$ N $ ,同时 scale up batch sizeBBcrit$ B\propto B_\text{crit} $ ,而 serial steps 数量增加可以忽略不计。由于 compute-efficient training 使用相对较少的 optimization steps ,因此可能需要进行额外的工作来加速早期的 training dynamics

43.5.2L(N,Smin)$ L (N, S_\min) $ 的预测

  1. L(Cmin)$ L(C_\min) $ 和 allocation 的结果可以从方程L(N,Smin)$ L(N,S_\min) $ 中预测出来。给定我们的L(N,Smin)$ L(N,S_\min) $ 方程,我们可以用Smin=Cmin6NB$ S_\min = \frac{C_\min}{6NB} $ 来代替,然后找到最小的 loss 作为N$ N $ 的函数,同时固定训练计算量。

    对于 loss 作为训练计算量的函数,我们预测:

    (21)L(Cmin)(CcminCmin)αCmin

    其中:

    (22)αCmin=11/αS+1/αB+1/αN0.054

    与下图中的指数非常一致。

    下图中的指数是 -0.050 ,而这里的指数是 -0.054,存在一定的 gap 。因为它们是用不同的公式来预测的。

    我们还预测到:

    (23)N(Cmin)(Cmin)αCmin/αN(Cmin)0.71

    这也和下图中的 scaling 相匹配,在几个百分点之内。

    前面已经得到N(Cmin)(Cmin)0.73$ N(C_\min)\propto (C_\min)^{0.73} $ ,但是这里得到的是N(Cmin)(Cmin)0.71$ N(C_\min)\propto (C_\min)^{0.71} $ ,存在一定的 gap 。因为它们是用不同的公式来预测的。

    我们的 scaling laws 为语言建模的性能提供了一个预测性的框架。

43.5.3 矛盾和猜想

  1. 我们观察到,在计算量、数据量或模型大小的大数值下,没有偏离直接的 power-law 趋势的迹象。不过,我们的趋势最终必须趋于平稳,因为自然语言具有非零的熵(即,test loss 不可能降低到零)。

    事实上,本节中描述的 compute-efficient training 的趋势已经包含了一个明显的矛盾。在比这里记录的规模高几个数量级的时候,L(Cmin)$ L(C_\min) $ scaling law 所预测的性能会下降到低于应该有的水平。这意味着我们的 scaling laws 必须在这一点之前崩溃,但是我们猜测这个交点有更深的含义:它提供了 Transformer 语言模型达到最大性能的一个估计值。

    由于 compute-efficient training 所使用的数据量随着计算预算的增加而缓慢增长,L(Cmin)$ L(C_\min) $ 预测的性能最终会达到L(D)$ L(D) $ 幂律设定的下限(如下图所示)。让我们更详细地研究一下这个问题。

  2. 为了控制过拟合,前面的结果意味着我们应该将数据集的规模扩大为:

    (24)DN0.74Cmin0.54

    其中,我们使用了 Figure 14 中的 compute-efficientN(Cmin)$ N(C_\min) $ 。

    让我们将其与 compute-efficient training 的数据要求进行比较。如果我们以临界 batch size (即C=2Cmin$ C=2C_\min $ )进行训练,并且在训练过程中不重复使用数据,我们会发现数据用量随着计算量的增长而增长,即:

    (25)D(Cmin)=2Cmin6N(Cmin)(4×1010tokens)×(Cmin/PF-Day)0.26

    这是数据集大小能够随着计算量而有效增长的最大速度,因为它意味着我们只训练一个 epoch 。但它比方程DN0.74Cmin0.54$ D\propto N^{0.74} \propto C_\min^{0.54} $ 中的数据集增长得更慢。这似乎意味着,compute-efficient training 最终会遇到过拟合的问题,即使训练过程中从未重复使用任何数据。

    根据 Figure 1 ,我们期望当我们受到数据集大小的瓶颈时(即过拟合),lossscale 应该是L(D)D0.095$ L(D)\propto D^{-0.095} $ 。这意味着,loss 将随着计算量的进行而 scaleL(D(Cmin))Cmin0.03$ L(D(C_\min))\propto C_\min^{-0.03} $ ,一旦我们受到数据限制。再一次,我们有一个矛盾,因为这将最终与我们在 Figure 13 中对L(Cmin)$ L(C_\min) $ 的预测相交,其中我们发现 scalingL(Cmin)Cmin0.050$ L(C_\min)\propto C_\min^{-0.050} $ 。

    L(D(Cmin))$ L(D(C_\min)) $ 和L(Cmin)$ L(C_\min) $ 的交叉点发生在:

    (26)C104PF-Days,N1012parameters,D1012tokens,L1.7nats/token

    尽管数值是非常不确定的,在任何一个方向都会有一个数量级的变化,这取决于 power-law 拟合的指数的精确值。最明显的解释是,我们的 scaling law 在达到这一点时或之前就已经崩溃了,而这一点在计算量和模型大小上都还有很多数量级。

  3. 人们也可以猜想,这个交叉点有更深的含义。在相同数据要求的条件下,如果我们没有将模型规模增加到N$ N^* $ 以上,也许这意味着一旦我们达到Cmin$ C_\min* $ 和N$ N^* $ ,我们就已经提取了自然语言数据中所有的可靠信息。在这种解释中,L$ L^* $ 将为自然语言 entropy-per-token 提供一个粗略的估计。在这种情况下,我们期望 loss 的趋势在L$ L^* $ 或之前趋于平稳。

    我们可以通过考虑添加了噪音的训练数据集的版本来猜测平缓之后的L(Cmin)$ L(C_\min) $ 的函数形式。例如,我们可以在展示给模型的每个上下文中附加一串随机的 tokens ,从而人为地用一个恒定的 additive factor 来提高损失。然后,与 noise floor 的距离LLnoise$ L-L_\text{noise} $ 将是一个更有意义的性能指标,即使这个距离的小幅下降也可能代表定性的性能的显著提升。由于人工噪声会对我们所有的趋势产生同样的影响,C,N,D,L$ C^*,N^*,D^*,L^* $ 等临界点将不会改变(除了L$ L^* $ 的绝对值),即使它发生在平缓之后也可能是有意义的。

43.6 结论

43.6.1 总结

  1. 我们 Transformer 语言模型的主要发现如下:

    • 模型性能强烈依赖于模型规模,弱依赖于 model shape : 模型的性能最强烈地依赖于模型规模,它包括三个因素:模型参数的数量N$ N $ (不包括 embedding 参数)、数据集的大小D$ D $ 、以及用于训练的计算量C$ C $ 。在合理的范围内,性能对其他架构超参数的依赖非常弱,如模型的 dpethwidth

      注意,这里的模型性能是在测试集上评估的。

    • 平滑的幂率(smooth power laws):模型性能与三个 scale factorN,D,C$ N, D, C $ 中的每一个都有幂律关系,其趋势跨越六个数量级以上(如下图所示),当其它两个因素不是瓶颈时。我们观察到在 N/D/C 非常大时,并没有偏离这些趋势的迹象,尽管在达到 zero loss 之前,模型性能最终必须趋于平缓。

    • 过拟合的普遍性: 只要我们同步 scale upN$ N $ 和D$ D $ ,性能就会有可预测的提高;但如果N$ N $ 或D$ D $ 保持固定而另一个增加,就会进入一个收益递减的区域。性能惩罚(performance penalty )可预测地取决于N0.74/D$ N^{0.74}/D $ 的比率,这意味着每次我们将模型规模增加 8 倍,我们只需要增加大约 5 倍的数据就可以避免惩罚。

    • training 的普遍性: 训练曲线(training curve)遵循可预测的幂律,其中训练曲线大致上与模型大小无关。通过推断训练曲线的早期部分,我们可以大致预测如果我们训练的时间更长,将会取得什么样的 loss

    • transfer 提高测试性能:当我们在与训练时分布不同的文本上评估模型时,评估结果与验证集上的结果密切相关, loss 的偏移量大致不变。换句话说,迁移到一个不同的分布上会产生一个恒定的惩罚,但其他方面的改善与训练集上的表现大致一致。

    • 样本效率(sample efficiency):大模型比小模型更具有样本效率,以更少的 optimization stepFigure 2 左图)和更少的数据点(Figure 4 左图)达到相同的性能水平。

      此外,Figure 19 提供了另一种观察这一现象的方法,它显示了不同模型达到各种固定 loss 的时间。

    • 收敛是低效的: 当在固定的计算预算C$ C $ 内工作,但对模型大小N$ N $ 或可用数据量D$ D $ 没有任何其他限制时,我们通过训练非常大的模型并在收敛之前明显地停止,从而达到最佳性能(Figure 3 )。因此,与人们的预期相反,相比于训练小模型并收敛,这种方式得到的最佳 compute-efficient training 要更加 sample efficient 。随着训练计算量的增加,数据需求增长非常缓慢:DC0.27$ D\sim C^{0.27} $ 。

    • 最优的 batch size:训练这些模型的最优的 batch size 大约仅仅是 loss 的幂次,并通过测量 gradient noise scale 来确定。对于我们可以训练的最大的模型,在收敛时大约是 1M ~ 2Mtokens

    综合来看,这些结果表明,当我们适当地 scale up 模型规模、数据规模、以及计算量时,language modeling 的性能会平稳地、可预测地提高。我们预计,更大的语言模型将比目前的模型表现得更好、更加 sample efficient

43.6.2 Scaling Laws 摘要

  1. 当性能仅仅受 non-embedding parameters 数量N$ N $ 、数据集大小D$ D $ 、以及 optimally allocated 计算预算Cmin$ C_\min $ 的限制时,可以用幂律来预测一个自回归语言模型训练的 Transformerloss (如 Figure 1):

    • 对于参数数量N$ N $ 受到限制的模型,在足够大的数据集上训练到收敛(即,N$ N $ 的变化对于L$ L $ 的影响):

      (27)L(N)=(Nc/N)αN;αN0.076,Nc8.8×1013(non-embedding parameters)
    • 对于大型模型(即,N$ N $ 足够大),在数据规模D$ D $ 受到限制的数据集上训练且早停(即,D$ D $ 的变化对于L$ L $ 的影响):

      (28)L(D)=(Dc/D)αD;αD0.095,Dc5.4×1013(tokens)
    • 对于最佳规模的模型(即,N$ N $ 足够大)、足够大的数据集(即,D$ D $ 足够大)、足够小的 batch size(对计算量的最佳使用),在计算量Cmin$ C_\min $ 受到限制的条件下进行训练:

      (29)L(Cmin)=(Ccmin/Cmin)αCmin;αCmin0.050,Ccmin3.1×108(PF-days)

    这些关系在Cmin$ C_\min $ 的 8 个数量级、N$ N $ 的 6 个数量级、以及D$ D $ 的 2 个数量级上都成立。它们非常弱地依赖于 model shape 和其他的 Transformer 超参数( depthwidth 、自注意头的数量),具体数值与 Webtext2 训练集相关。

  2. 幂率αN,αD,αCmin$ \alpha_N,\alpha_D,\alpha_C^\min $ 规定了当我们扩大N$ N $ 、D$ D $ 或Cmin$ C_\min $ 的规模时预期的性能改善程度。例如,参数数量N$ N $ 增加一倍(即N2N$ N\rightarrow 2N $ ),产生的 loss 要更小,其中大约是原始 loss2αN=0.95$ 2^{-\alpha_N }= 0.95 $ 倍。Nc,Ccmin,Dc$ N_c, C_c^\min,D_c $ 的精确数值取决于 vocabulary sizetokenization,因此没有基本的含义(fundamental meaning )。

  3. critical batch size 决定了数据并行的 speed/efficiency tradeoff,也大致服从L$ L $ 的幂率:

    (30)Bcrit(L)=BL1/αB,B2×108tokens,αB0.21
  4. 公式L(N)$ L(N) $ 和L(D)$ L(D) $ 共同表明,当我们增加模型大小时,我们应该根据DNαN/αD=N0.74$ D\propto N^{\alpha_N/\alpha_D}= N^{0.74} $ 线性地增加数据集大小。事实上,我们发现有一个结合了L(N)$ L(N) $ 和L(D)$ L(D) $ 的单个方程,支配着对N$ N $ 和D$ D $ 的同时依赖,并支配着过拟合的程度:

    (31)L(N,D)=[(NcN)αN/αD+DcD]αD

    这个方程与 Figure 4 的左图相配合。我们猜想,这种函数形式也可以为其他 generative modeling task 来参数化 trained log-likelihood

  5. 当在 infinite data limit 中对一个给定的模型进行有限的 parameter update stepsS$ S $ 的训练时,在一个初始的短时间之后,学习曲线可以被准确地拟合(见 Figure 4 的右边):

    (32)L(N,S)=(NcN)αN+(ScSmin)αS

    其中:Sc2.1×103$ S_c\simeq 2.1\times 10^3 $ ,αS0.76$ \alpha_S\simeq 0.76 $ ,Smin$ S_\min $ 是使用方程Smin=S1+Bcrit(L)/B$ S_\min = \frac{S}{1 + B_\text{crit}(L)/B} $ 估计的最小可能的 optimization steps (即参数更新次数)的数量,B$ B $ 为 batch size

  6. 当在固定的计算预算C$ C $ 内进行训练,但没有其他限制时,方程L(N,S)$ L(N,S) $ 导致预测最佳模型大小N$ N $ 、最佳 batch sizeB$ B $ 、最佳 stepS$ S $ 、以及数据集大小D$ D $ 应增长为:

    (33)NCαCmin/αN,BCαCmin/αB,SCαCmin/αS,D=B×SαCmin=11/αS+1/αB+1/αN

    这与经验结果(NCmin0.73,BCmin0.24,SCmin0.03$ N\propto C_\min^{0.73},\;B\propto C_\min^{0.24},\;S\propto C_\min^{0.03} $ )比较接近。

  7. 随着计算预算C$ C $ 的增加,计算预算应该主要用在更大的模型上,而不应在训练时间或数据集大小上有急剧增加(如 Figure 3 )。这也意味着,随着模型的增大,它们的 sample efficient 也越来越高。在实践中,研究人员通常训练较小的模型(由于硬件的限制),较小模型的训练时间要更长(相比较于最大化计算效率的模型,即更大的模型)。最佳性能取决于总计算量的幂律(参考方程L(Cmin)$ L(C_\min) $ )。

  8. 我们为方程L(N,D)$ L(N,D) $ 提供了一些基本的理论动机,对 learning curve fit 及其对训练时间的影响进行了分析,并对我们每个 token 的结果进行了细分。我们还对LSTMrecurrent Transformer 做了一些简单的比较。

  9. 公式总结:

    这些趋势的经验拟合参数为:

    compute efficient training 的最优参数为:

43.6.2 注意事项

  1. 在这一节中,我们列出了一些对我们的分析可能存在的注意事项:

    • 目前,我们对我们提出的任何一个 scaling laws 都没有一个坚实的理论理解。与模型大小和计算量的 scaling 关系尤其神秘。通过用一个 noisy 的二次方来建模 loss ,在模型大小固定的情况下,也许有可能理解在非常大的D$ D $ 下的 scaling 关系,以及在训练后期的学习曲线的形状。但是在非常大的模型大小下,与D$ D $ 的 scaling 关系仍然是神秘的。如果没有一个理论、或者对我们的 scaling laws 的修正有一个系统的理解,就很难确定在什么情况下它们可以被信任。

    • 我们对远在我们所探索的范围之外的 lossBcrit(L)$ B_\text{crit}(L) $ 的预测不是特别有信心。Bcrit$ B_\text{crit} $ 的变化可能会对数据并行性、以及所需的 serial training steps数量之间的权衡产生重大影响,这将对训练时间产生重大影响。 

    • 我们没有彻底研究小数据的区域,对于最小的D$ D $ 值(一个 epoch 只有 40step ),我们对L(N,D)$ L(N,D) $ 的拟合很差。此外,我们没有对正则化和数据增强进行试验。这些方面的改进可能会在数量上或质量上改变我们的结果。

    • 我们使用了估计的训练计算量C6NBS$ C\simeq 6NBS $ ,它不包括与nctx$ n_\text{ctx} $ 成比例的贡献。因此,在非常大的nctx$ n_\text{ctx} $ 的系统中,特别是在nctx12dmodel$ n_\text{ctx}\ge 12 d_\text{model} $ 的情况下,我们的计算量的 scaling 可能不太准确。 

    • 我们调优了学习率,并且采用了 learning rate schedule 进行实验。但是我们可能忽略了调优一些对 scaling 有重要影响的超参数(如 intialization scale 或动量)。

    • 学习率的最佳选择对 target loss 是敏感的。当训练接近收敛时,可能需要使用较小的学习率来避免发散。但是当进行 short training run 时(例如由于计算限制),可能会使用较大的学习率。对于没有进行收敛的 training runs, 我们没有进行更高学习率的实验。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文