序列模型(4)—— Scaling Laws

2024-01-10

  • 本文介绍 LLM 训练过程中重要的 Scaling Laws,这是一个 经验规律 ,指出了 固定训练成本(总计算量FLOPs) C C C 时,如何调配模型规模(参数量) N N N 和训练 Token 数据量 D D D ,才能实现最高的效率 。利用 Scaling Laws,我们可以利用较小模型的训练经验预测更大模型的性能表现
  • 本文主要是对论文 Scaling Laws for Neural Language Models 的解析,只关注汇总结果的话可以直接看第 5 节
    • 文章链接: Scaling Laws for Neural Language Models
    • 发表:arxiv 2020
    • 作者:OpenAI

  • 摘要:我们研究了 LM 在交叉熵损失上的经验缩放规律(empirical scaling laws)。 (测试)损失随着模型大小、数据集大小和训练计算量的增加呈幂律减小,有时这种趋势可以横跨七个数量级以上 ;相比而言,网络宽度或深度等 其他架构细节在较大范围内几乎没有影响 。过拟合与模型规模/数据集大小的依赖关系、训练速度与模型大小的依赖关系都可以用简单的方程进行描述,这些关系使我们能够确定计算量预算的最佳分配方式。较大模型具有更高的样本效率,因此在最高效的计算训练中,应该在相对较少的数据上训练非常大的模型,并在收敛之前很久停止训练(stopping significantly before convergence)

0. 背景和方法

0.1 Transformer 模型的参数量和计算量

  • 原文符号有点乱,直接引用前文的分析结论,详见: 序列模型(3)—— LLM的参数量和计算量 。首先给出符号约定

    参数 符号 说明
    Decoder 层数 l l l
    Token 嵌入维度 d d d
    Attention 层嵌入维度 d d d
    MLP 隐藏层维度 4 d 4d 4 d 通常设置为嵌入维度4倍
    Attention head 数量 n n n 要求其整除 d d d
    词表尺寸 V V V
    模型输入长度 s s s 代表模型处理的上下文长度
    训练 batch data x \pmb{x} x 张量尺寸 R B × s × d \mathbb{R}^{B\times s\times d} R B × s × d
    训练步数 S S S 即模型参数更新次数
    交叉熵损失 L L L 本文中主要指测试损失,可用于指示模型性能
    batch_size B B B
    模型参数量 N N N
    训练数据量(Token) D D D
    训练计算量(FLOPs) C C C
    损失的幂律指数 α X \alpha_X α X Scaling Laws 就是 L ( X ) ∝ 1 / X α x L(X)\propto1/X^{\alpha x} L ( X ) 1/ X αx ,其中 X X X 可以是 N , D , C N,D,C N , D , C 之中的任意一个
  • Decoder-only Transformer 模型的参数量 N N N 、计算量 C C C 和数据量 D D D 之间有以下关系

    • 模型总参数量近似为 N ≈ 12 l d 2 N\approx 12ld^2 N 12 l d 2
    • 对于一次训练迭代过程,输入 token 数据量为 D = B s D=Bs D = B s ,总计算量(FLOPs)近似为 C ≈ 72 B s l d 2 C \approx 72Bsld^2 C 72 B s l d 2
    • 训练过程中, N , C , D N,C,D N , C , D 之间有关系 C ≈ 6 N D C\approx 6ND C 6 N D

0.2 实验方法

  • 模型 :主要考察 Decoder-only Transformer 模型(GPT1),同时也对 Encoder-Decoder Transformer 模型(Universal transformers)和 LSTM 等传统序列模型进行了小规模实验。除非特殊说明,则上下文长度固定为 1024
  • 数据集 :使用 WebText2 数据集进行训练,它使用字节对编码进行分词,词表大小为 50257
  • 训练方法
    • 优化自回归交叉熵损失(损失具体设计为一条轨迹上所有 token 预测交叉熵损失的平均值)
    • 除非专门说明,使用 Adam 优化器进行训练 2.5 × 1 0 5 2.5 × 10^5 2.5 × 1 0 5 步, B = 512 ,    s = 1024 B=512, \space\space s=1024 B = 512 , s = 1024
    • 除非专门说明,所有训练过程的学习率调度为:3000 步线性预热,然后余弦衰减至 0
  • 实验设置 :为了考察语言模型的缩放规律,作者在大量不同设置下进行训练,调整的参数包括
    • 模型规模:参数量 N N N 从 768 到 15 亿不等(不含嵌入层参数)
    • 数据集大小:Token 数量 D D D 从 2200 万到 230 亿
    • 模型形状:调整深度、宽度、注意力头和前馈维度等的设计,并维持总参数量基本不变
    • 上下文长度:大多数训练中为 s = 1024 s=1024 s = 1024 ,但也会尝试了更短的上下文
    • 批量大小:大多数训练中为 2 19 2^{19} 2 19

1. Basic Power Laws

1.1 模型形状基本不影响性能

  • 当保持 模型规模 N N N 固定时,Transformer 性能对模型深度,注意力头数和前馈网络宽度等的依赖性非常弱
    在这里插入图片描述

1.2 参数量和性能呈现幂律关系

  • 作者通过调整模型层数 l l l 和嵌入维度 d d d 设置了一系列不同参数规模的模型,参数范围从小模型 ( l , d ) = ( 2 , 128 ) (l,d)=(2,128) ( l , d ) = ( 2 , 128 ) 到具有十亿参数规模的大模型,形状从 ( 6 , 4288 ) (6,4288) ( 6 , 4288 ) ( 207 , 768 ) (207,768) ( 207 , 768 ) 所有模型都训练到接近收敛,并确保没有观测到过拟合
    在这里插入图片描述
  • 如图所示,注意到考虑嵌入层参数时,模型深度也会在总参数量之外影响性能规律; 不考虑嵌入层参数时,性能和总参数量 N N N 具有稳定的幂律关系 ,可以表示为
    L ( N ) ≈ ( N c N ) α N L(N) \approx \left(\frac{N_c}{N}\right)^{\alpha_N} L ( N ) ( N N c ) α N
    • 作者进一步考察了其他序列模型以及模型的泛化性能
      1. 作者验证了 LSTM 和 Encoder-Decoder 类模型都服从以上幂律关系
        在这里插入图片描述
        左图显示了 LSTM/Transformer 模型的参数规模与性能间的幂律关系,从中也可发现 Transformer 模型总能用较少的参数量实现更好的性能;右图显示了上下文长度和预测性能的关系,可见 LSTM 仅在早期 Token 部分和 Transformer 模型性能类似,长跨度下性能不如 Transformer
        在这里插入图片描述
        这里考察的是带有递归循环和参数复用结构的 Encoder-Decoder Transformer 模型 Universal Transformers,可见参数量和性能间也满足幂律关系
      2. 作者验证了 模型泛化性能也服从以上幂律关系
        在这里插入图片描述
        左图显示了在 WebText2 上训练模型,然后在多种数据集上测试的泛化性能表现,显示出一致的幂律关系;右图说明泛化性能仅取决于训练分布上的性能,而与训练阶段无关

1.3 数据量 & 计算量和性能呈现幂律关系

  • 作者发现数据量 & 计算量也都和模型性能呈现幂律关系,如下所示
    在这里插入图片描述
    • 考察计算量 C C C 与性能的关系时(左图),作者先用充足的数据训练多种不同参数规模 N N N 的模型只收敛,然后对任意给定的 C C C ,考察所有模型,找到第 S = C 6 N B S=\frac{C}{6NB} S = 6 NB C 步时最优的模型性能绘制(为此需保持所有模型训练时 B B B 不变,我们将在第 4 节进一步讨论更高效的训练方案)。注意到幂律关系
      L ( C ) ≈ ( C c C ) α C L(C) \approx \left(\frac{C_c}{C}\right)^{\alpha_C} L ( C ) ( C C c ) α C

      • 值得注意的时,以上幂律关系在 LLM 多模态任务中依然存在
        在这里插入图片描述
    • 考察数据量 D D D 与性能的关系时(中图),作者训练规模为 ( l , d ) = ( 36 , 1280 ) (l,d)=(36,1280) ( l , d ) = ( 36 , 1280 ) 的模型直到收敛。注意到幂律关系
      L ( D ) ≈ ( D c D ) α D L(D) \approx \left(\frac{D_c}{D}\right)^{\alpha_D} L ( D ) ( D D c ) α D

2. 利用 Scaling Laws 计算避免过拟合所需的数据量

  • 第一节分析的三个幂律关系 L ( C ) , L ( D ) , L ( N ) L(C),L(D),L(N) L ( C ) , L ( D ) , L ( N ) 都是单独考察的,即考察一个量时,总是调整其他两个量的取值,使模型性能仅受被考察的量影响
  • 本节中,进一步考察模型性能如何同时受到 N N N D D D 两个量的影响,这可以指导我们 如何在控制过拟合的情况下,考察训练模型所需的数据量

2.1 参数量 N N N 和数据量 D D D 对模型性能的联合影响

  • 基于第一节发现的幂律关系,作者直接将 L ( N , D ) L(N,D) L ( N , D ) 的表达式假设为
    L ( N , D ) = [ ( N c N ) α N α D + D c D ] α D L(N,D) = \left[\left(\frac{N_c}{N}\right)^{\frac{\alpha_N}{\alpha_D}} + \frac{D_c}{D}\right]^{\alpha_D} L ( N , D ) = [ ( N N c ) α D α N + D D c ] α D 此设计很好地适配了数据,其形式基于以下三个原则
    1. 词表大小或 tokenize 方法的变化应当会对损失值进行整体的缩放(rescale the loss by an overall factor),这种缩放需要被自然地考虑到

      该设计中我们可以通过调节 N c , D c N_c,D_c N c , D c 来适应这些变化

    2. 固定 D D D N → ∞ N\to \infin N 时应有 L ( N , D ) → L ( D ) L(N,D)\to L(D) L ( N , D ) L ( D ) ;固定 N N N D → ∞ D\to \infin D 时应有 L ( N , D ) → L ( N ) L(N,D)\to L(N) L ( N , D ) L ( N )

      有限的 D D D 下,任何模型都无法接近最佳损失(即文本的熵);同样固定大小 N N N 的模型将受到容量限制。另一方面,有 L ( ∞ , D ) = L ( D ) ,    L ( N , ∞ ) = L ( N ) L(\infin,D)= L(D), \space\space L(N,\infin)= L(N) L ( , D ) = L ( D ) , L ( N , ) = L ( N )

    3. L ( N , D ) L(N,D) L ( N , D ) 应该在 D → ∞ D\to\infin D 时进行分析(通常有足够的数据训练模型),这时它应具有以整数次幂的 1 D \frac{1}{D} D 1 为变量的级数展开(即形如 f ( D ) = a 0 + a 1 D + a 2 D 2 + . . . f(D)=a_0+\frac{a_1}{D}+\frac{a_2}{D^2}+... f ( D ) = a 0 + D a 1 + D 2 a 2 + ... ),因此以上设计中 N N N D D D 并不完全对称

      这个原则更具推测性,由于过拟合应该与数据集的方差或信噪比相关,而它们按 1 D \frac{1}{D} D 1 成比例缩放,所以我们通常期望过拟合在非常大的 D D D 下也成比例于 1 D \frac{1}{D} D 1 进行缩放。这个期望对于任何平滑的损失函数都应该成立。然而,这假设 1 D \frac{1}{D} D 1 的修正项在方差的其他来源(如有限 batch size)上占主导地位,这还没有经验证实

  • 利用以上定义,可以将模型的过拟合程度形式化表示为
    δ L ( N , D ) ≡ L ( N , D ) L ( N , ∞ ) − 1 ≈ ( 1 + ( N N c ) α N α D D c D ) α D − 1 \begin{aligned} \delta L(N, D) &\equiv \frac{L(N, D)}{L(N, \infty)}-1 \\ &\approx\left(1+\left(\frac{N}{N_{c}}\right)^{\frac{\alpha_{N}}{\alpha_{D}}} \frac{D_{c}}{D}\right)^{\alpha_{D}}-1 \end{aligned} δ L ( N , D ) L ( N , ) L ( N , D ) 1 ( 1 + ( N c N ) α D α N D D c ) α D 1 这意味着模型的过拟合程度和 N α N α D / D N^{\frac{\alpha_N}{\alpha_D}}/D N α D α N / D 成幂律关系

2.2 实验验证

  • 作者用 10% 的 dropout 对所有模型进行正则化,训练直到测试损失不再下降(早停策略),结果如下所示
    在这里插入图片描述
    • 左图:对于较大的 D D D ,性能表现出关于 N N N 的幂律关系;对于较小的 D D D ,随着 N N N 的增加模型开始过拟合。虚线是拟合结果,验证了以上定义的有效性
    • 右图:考察过拟合情况,实线拟合了 N α N α D / D N^{\frac{\alpha_N}{\alpha_D}}/D N α D α N / D 和过拟合程度间的幂律关系,验证了以上定义的有效性

2.3 预测数据集尺寸以避免过拟合

  • 利用大量小规模实验的结果,可以 拟合出当 Scaling Laws 中的一些关键常数 ,这里为
    在这里插入图片描述
    设不同随机种子下的验证损失变化约为 2%,这意味着在训练达到我们所需的收敛阈值时,避免过拟合需要
    D ≥ ( 5 × 1 0 3 ) N 0.74 D \geq\left(5 \times 10^{3}\right) N^{0.74} D ( 5 × 1 0 3 ) N 0.74 通过这种关系,可在 token 数据量 D D D 为 22B 的数据集上以最小的过拟合训练参数量 N N N 不超过 1 0 9 10^9 1 0 9 的模型
  • 这一节的重要意义在于给出了一种 利用 Scaling Laws 进行预测的思路,即首先进行大量小规模实验,然后用基于 Scaling Laws 的关系式对结果进行拟合,最后用拟合曲线预测更大规模模型的情况

3. 模型大小和训练时间的缩放定律

  • 现在我们讲起 Scaling Laws 时,主要关注的通常就是前两节(特别是第一节)所述内容。但是原始论文中还进行了进一步分析,使其更符合现实情况。在进一步分析之前,首先引入一些新符号

    参数 符号 说明
    关键 batch size B crit B_{\text{crit}} B crit 以此 batch size 进行训练大致上在时间和计算效率之间提供了一个最优的折衷
    最小计算量 C min ⁡ C_{\min} C m i n 达到给定损失值最小计算量,这是模型以远小于 B crit B_{\text{crit}} B crit 的 batch size 训练时的计算量
    最小训练步骤 S min ⁡ S_{\min} S m i n 达到给定损失值的最小训练步数。这是模型以远大于 B crit B_{\text{crit}} B crit 的 batch size 训练时的步数
    最小处理数据量(Token) E min ⁡ E_{\min} E m i n 达到给定损失值所处理的最小数据量
  • 设置过大的 batch size 会影响计算效率,因为足够大的 batch size 下计算的梯度方向已经足够准确,继续加大的意义不大。一般认为训练过程中存在一个临界 batch size B crit B_{\text{crit}} B crit :当 B ≤ B crit B\leq B_{\text{crit}} B B crit 时,加大 B B B 对计算效率无明显影响;当 B > B crit B > B_{\text{crit}} B > B crit 时,加大 B B B 会使得计算效率下降。

    • B ≈ B crit B\approx B_{\text{crit}} B B crit 进行训练可以最大化训练的计算效率,即到达相同性能用时最短
    • B ≫ B crit B\gg B_{\text{crit}} B B crit 进行训练可以最小化训练步骤数量, S → S min ⁡ S \to S_{\min} S S m i n ,但达相同性能耗时更长
    • B ≪ B crit B\ll B_{\text{crit}} B B crit 可以最小化计算量, C → C min ⁡ C \to C_{\min} C C m i n ,但达相同性能耗时更长

3.1 拟合 B crit ( L ) B_{\text{crit}}(L) B crit ( L ) , S min ⁡ ( S ) S_{\min }(S) S m i n ( S ) C min ⁡ ( C ) C_{\min }(C) C m i n ( C )

  • 作者通过实验发现,为了达成任意固定的性能损失 L L L ,训练步数 S S S 和训练处理数据量 E = B S E=BS E = BS 之间存在反比例关系
    在这里插入图片描述
    如图所示,作者使用不同参数量的两个 Transformer 模型,考察达到指定性能损失(颜色表示)所需的训练步数 S S S 和处理 Token 数量 E E E 之间的关系。图像说明,为了达成固定的 L L L ,随着 S S S 增大,所需处理的 Token 数量 E E E 在减少
    1. 为了达成固定的 L L L ,从左到右训练步数 S S S 越多,处理的 Token 数量 E E E 越少, B B B 越小,总计算量 C C C 越小
    2. 注意到每一条线都呈现反比例关系,作者提出它们服从如下关系
      ( S S min ⁡ − 1 ) ( E E min ⁡ − 1 ) = 1 \left(\frac{S}{S_{\min}}-1\right)\left(\frac{E}{E_{\min}}-1\right) = 1 ( S m i n S 1 ) ( E m i n E 1 ) = 1 注意到这本质就是一个反比例函数,两个 − 1 -1 1 是把坐标轴移动到曲线所在位置
  • 每一条线最左边的点对应 B max ⁡ = E max ⁡ S min ⁡ B_{\max} = \frac{E_{\max}}{S_{\min}} B m a x = S m i n E m a x ,最右边的点对应 B min ⁡ = E min ⁡ S max ⁡ B_{\min} = \frac{E_{\min}}{S_{\max}} B m i n = S m a x E m i n ,它们对应训练效率的两个低点, B crit B_{\text{crit}} B crit 应该在二者之间,作者将其定义为
    B crit  ( L ) ≡ E m i n S min  B_{\text {crit }}(L) \equiv \frac{E_{\mathrm{min}}}{S_{\text {min }}} B crit ( L ) S min E min 作者发现这种定义和另一种可以估计 B crit  B_{\text {crit }} B crit 的方法 “噪声梯度度量” 得到的结果类似。根据拟合情况,以 B crit  B_{\text {crit }} B crit 训练大约需要 2 S min ⁡ 2S_{\min} 2 S m i n 的训练步骤和 2 E min ⁡ 2E_{\min} 2 E m i n 的数据量
  • 作者通过实验验证了 B critc B_{\text{critc}} B critc 也和模型性能(用损失表示)之间呈现幂律关系
    在这里插入图片描述
    如图可见, B crit  ( L ) B_{\text {crit }}(L) B crit ( L ) 仅和性能 L L L 相关,而与模型规模等其他因素无关。作者将幂律关系表示为为
    B crit  ( L ) ≈ B ∗ L 1 / α B B_{\text {crit }}(L) \approx \frac{B_{*}}{L^{1 / \alpha_{B}}} B crit ( L ) L 1/ α B B 其中 B ∗ B_* B α B \alpha_B α B 是需要拟合的参数,这种表示可以使 B crit  ( L ) B_{\text {crit }}(L) B crit ( L ) 的估计值在 L → 0 L\to 0 L 0 时发散,以保持和另一种估计方法 “噪声梯度度量” 的一致性。
  • 给定任意训练过程参数 C , N , B , S C, N, B, S C , N , B , S ,如前文所述它们之间满足 C ≈ 6 N B S C\approx 6NBS C 6 NBS ,设该训练过程达成的性能(损失表示)为 L L L ,可以借助 B crit B_{\text{crit}} B crit 表示出达成相同 L L L 对应的 S min ⁡ S_{\min} S m i n C min ⁡ C_{\min} C m i n
    S min ⁡ ( S ) ≡ S 1 + B crit  ( L ) / B (  minimum steps, at  B ≫ B crit  ) C min ⁡ ( C ) ≡ C 1 + B / B crit  ( L )  (minimum compute, at  B ≪ B crit  ) \begin{aligned} &S_{\min }(S) \equiv \frac{S}{1+B_{\text {crit }}(L) / B} &&\quad\left(\text { minimum steps, at } B \gg B_{\text {crit }}\right) \\ &C_{\min }(C) \equiv \frac{C}{1+B / B_{\text {crit }}(L)} &&\quad \text { (minimum compute, at } B \ll B_{\text {crit }} \text {)} \end{aligned} S m i n ( S ) 1 + B crit ( L ) / B S C m i n ( C ) 1 + B / B crit ( L ) C ( minimum steps, at B B crit ) (minimum compute, at B B crit ) 总体上可以看出就是按上面的反比例关系调整了一下,但具体为什么如此调整定义说实话有点没看懂。由于 B crit ( L ) B_{\text{crit}}(L) B crit ( L ) 可以拟合表示,这里的 S min ⁡ ( S ) S_{\min }(S) S m i n ( S ) C min ⁡ ( C ) C_{\min }(C) C m i n ( C ) 也都可以拟合表示了

3.2 拟合 L ( N , S ) L(N,S) L ( N , S )

  • 作者通过实验验证了,在无数据量限制的情况下,对给定参数量 N N N 的模型以足够大的 batch size 训练 S min ⁡ S_{\min} S m i n 步之后,如下右图所示
    在这里插入图片描述
    模型性能与 N N N S min ⁡ S_{\min} S m i n 之间存在以下幂律关系关系
    L ( N , S min ⁡ ) = ( N c N ) α N + ( S c S min ⁡ ) α S L\left(N, S_{\min }\right)=\left(\frac{N_{c}}{N}\right)^{\alpha_{N}}+\left(\frac{S_{c}}{S_{\min }}\right)^{\alpha_{S}} L ( N , S m i n ) = ( N N c ) α N + ( S m i n S c ) α S 再配合上一节中 S min ⁡ S_{\min } S m i n 的定义,在无数据限制的情况下对参数量为 N N N 的模型训练 S S S 步后得到的性能可以用下式拟合
    L ( N , S ) = ( N c N ) α N + ( S c S min ⁡ ( S ) ) α S L\left(N, S\right)=\left(\frac{N_{c}}{N}\right)^{\alpha_{N}}+\left(\frac{S_{c}}{S_{\min}(S)}\right)^{\alpha_{S}} L ( N , S ) = ( N N c ) α N + ( S m i n ( S ) S c ) α S
  • 作者进一步在无数据限制的情况下拟合了不同参数量 N N N 下性能和计算量 C C C 以及训练步数 S S S 的关系
    在这里插入图片描述
    良好的拟合结果也验证了以上提出 L ( N , S ) L\left(N, S\right) L ( N , S ) S min ⁡ ( S ) S_{\min }(S) S m i n ( S ) C min ⁡ ( C ) C_{\min }(C) C m i n ( C ) 等表达式的有效性

4. 计算量的优化分配

  • 第 1 节已经分析了,在不考虑 N N N D D D 限制的情况下,计算量 C C C 与性能的之间存在幂律关系
    L ( C ) ≈ ( C c C ) α C L(C) \approx \left(\frac{C_c}{C}\right)^{\alpha_C} L ( C ) ( C C c ) α C 但是这个结果的前提是以固定 batch size B B B 进行训练,事实上,我们可以按第 3 节所述的 B crit B_{\text{crit}} B crit 进行训练,从而提高训练效率。本节中我们进一步分析这种情况

  • 作者首先对性能和 C min ⁡ C_{\min} C m i n 的关系进行拟合(不考虑 N N N D D D 的约束),如下所示
    在这里插入图片描述

    这里作者使用远低于 B crit  B_{\text {crit }} B crit 的 batch size 训练以考察性能和 C min ⁡ C_{\min} C m i n 的关系。注意到 C min ⁡ C_{\min} C m i n 同样和性能间存在幂律关系 L ( C min ⁡ ) L(C_{\min}) L ( C m i n ) ,但是具体的表达式和 C C C 的幂律关系 L ( C ) L(C) L ( C ) 有所区别

  • 作者进一步考察可以最高效训练的最优模型参数量 N ( C min ⁡ ) N(C_{\min}) N ( C m i n ) ,拟合结果如下所示
    在这里插入图片描述
    如左图所示,最优参数量和最小计算量之间也存在幂律关系,拟合结果约为
    N ( C min ⁡ ) ∝ C min ⁡ 0.73 N(C_{\min})\propto C_{\min}^{0.73} N ( C m i n ) C m i n 0.73 进一步地,注意到
    ( 3.1 节拟合结果 ) B crit  ∝ L − 4.8 ( 4.1 节拟合结果 ) L ∝ C min ⁡ − 0.05 ⇒ B crit  ∝ C min ⁡ 0.24 \begin{aligned} &(3.1 节拟合结果) &&B_{\text {crit }} \propto L^{-4.8} \\ &(4.1节拟合结果) &&L\propto C_{\min}^{-0.05} \end{aligned} \Rightarrow B_{\text {crit }} \propto C_{\min}^{0.24} ( 3.1 节拟合结果 ) ( 4.1 节拟合结果 ) B crit L 4.8 L C m i n 0.05 B crit C m i n 0.24 又根据定义 C min ⁡ ≡ 6 N ( C min ⁡ ) B crit  S C_{\min} \equiv 6N(C_{\min}) {B_{\text {crit }}}S C m i n 6 N ( C m i n ) B crit S ,可以推出
    C min ⁡ ∝ 6 C min ⁡ 0.73 C min ⁡ 0.24 S ⇒ S min ⁡ ∝ C min ⁡ 0.03 C_{\min} \propto 6C_{\min}^{0.73} C_{\min}^{0.24}S \Rightarrow S_{\min} \propto C_{\min}^{0.03} C m i n 6 C m i n 0.73 C m i n 0.24 S S m i n C m i n 0.03 这个结果也和拟合结果相吻合,如上右图所示

    PS:这里说根据定义我觉得有点问题,因为根据定义 C min ⁡ C_{\min} C m i n 应该是在用远小于 B crit B_{\text{crit}} B crit 的 batch size 训练得到的,这里应该是假设了这个小 batch size 仍然和 B crit B_{\text{crit}} B crit 有相同的数量级

  • 总之我们可以得出结论:当不受训练数据量限制时,随着总计算量的提高,存在有对应的最优模型规模(训练效率最高)
    在这里插入图片描述
    我们应该以最佳的计算分配来扩大语言模型,即
    在这里插入图片描述

    1. 主要按 N ( C min ⁡ ) ∝ C min ⁡ 0.73 N(C_{\min})\propto C_{\min}^{0.73} N ( C m i n ) C m i n 0.73 的幂律关系模型参数规模
    2. 通过 B ∝ B c r i t B\propto B_{crit} B B cr i t ,即 B ∝ C min ⁡ 0.24 B\propto C_{\min}^{0.24} B C m i n 0.24 来扩大 batch size
    3. 训练步数 S S S 的增量可以忽略不计

5. 总结

  • 本文只涵盖了原文中的核心结论,部分更进一步的分析假设比较强就没有写了,请参考原文。
  • 下面对本文通过实验发现的 Scaling Laws 进行总结
    1. 模型性能与规模密切相关,与模型形状关系较弱 :模型性能主要取决于 模型参数量(不包括嵌入) N N N 、数据集(Token)大小 D D D 以及训练计算量(FLOPs) C C C 。在合理范围内,性能对其他超参数(如深度与宽度的比例、训练学习率调度方案)的依赖程度很低

      在这里插入图片描述
      在这里插入图片描述

    2. 平滑的幂律关系 :当不被其他两个因素限制时,模型性能与 N N N D D D C C C 之间存在幂律关系,这种关系在很大范围内一直保持(跨越六个以上数量级)。这种幂律关系在 Decoder-Only Transformer、Encoder-Decoder Transformer、LSTM 等多种序列模型上都有体现,对于 NLP 以外的多模态任务也成立。

      在这里插入图片描述

      通过在小模型上拟合以下幂律关系,可以外推预测大模型、大数据量和大计算量下的性能表现

      • 控制模型参数量 N N N ,用足够数据训练至收敛,性能与 N N N 的关系满足(不包含嵌入参数)
        L ( N ) ≈ ( N c N ) α N L(N) \approx \left(\frac{N_c}{N}\right)^{\alpha_N} L ( N ) ( N N c ) α N
      • 控制训练数据量 D D D ,使用早停策略训练足够大的大规模模型,性能与 D D D 的关系满足
        L ( D ) ≈ ( D c D ) α D L(D) \approx \left(\frac{D_c}{D}\right)^{\alpha_D} L ( D ) ( D D c ) α D
      • 控制训练计算量 C min ⁡ C_{\min} C m i n ,使用足够大的数据集对最优尺寸的模型,以足够小的 batch size 进行训练(此时计算量最小)时,性能与 C min ⁡ C_{\min} C m i n 满足
        L ( C min ⁡ ) ≈ ( C c min ⁡ C min ⁡ ) α c min ⁡ L(C_{\min}) \approx \left(\frac{C_c^{\min}}{C_{\min}}\right)^{\alpha_c^{\min}} L ( C m i n ) ( C m i n C c m i n ) α c m i n
    3. 过度拟合的普遍规律 :在不考虑训练数据量 C C C 的限制时,只要同时扩大 N N N D D D ,性能就会可预测地提高,但如果固定 N N N D D D 中的一个而增加另一个,就会进入回报递减的领域。 过拟合程度和 N α N α D / D N^{\frac{\alpha_N}{\alpha_D}}/D N α D α N / D 之间存在幂律关系。这意味着每当模型大小 N N N 增加 8 倍,将数据量 D D D 增加 8 α N α D 8^{\frac{\alpha_N}{\alpha_D}} 8 α D α N 倍就可以维持过拟合程度不增加

      在这里插入图片描述

      不考虑训练计算量限制时,性能受到 N N N D D D 的联合影响
      L ( N , D ) = [ ( N c N ) α N α D + D c D ] α D L(N,D) = \left[\left(\frac{N_c}{N}\right)^{\frac{\alpha_N}{\alpha_D}} + \frac{D_c}{D}\right]^{\alpha_D} L ( N , D ) = [ ( N N c ) α D α N + D D c ] α D 过拟合程度可以表示为
      δ L ( N , D ) ≡ L ( N , D ) L ( N , ∞ ) − 1 ≈ ( 1 + ( N N c ) α N α D D c D ) α D − 1 \begin{aligned} \delta L(N, D) &\equiv \frac{L(N, D)}{L(N, \infty)}-1 \\ &\approx\left(1+\left(\frac{N}{N_{c}}\right)^{\frac{\alpha_{N}}{\alpha_{D}}} \frac{D_{c}}{D}\right)^{\alpha_{D}}-1 \end{aligned} δ L ( N , D ) L ( N , ) L ( N , D ) 1 ( 1 + ( N c N ) α D α N D D c ) α D 1 这意味着过拟合程度和 N α N α D / D N^{\frac{\alpha_N}{\alpha_D}}/D N α D α N / D 成幂律关系

    4. 训练的普遍规律 :训练曲线遵循可预测的幂律,通过外推训练曲线的早期部分,我们可以大致预测如果我们训练更长时间会达到的损失

      在这里插入图片描述

      在无数据限制的情况下,对参数量为 N N N 的模型训练 S S S 步后得到的性能可以用下式拟合
      L ( N , S ) = ( N c N ) α N + ( S c S min ⁡ ( S ) ) α S L\left(N, S\right)=\left(\frac{N_{c}}{N}\right)^{\alpha_{N}}+\left(\frac{S_{c}}{S_{\min}(S)}\right)^{\alpha_{S}} L ( N , S ) = ( N N c ) α N + ( S m i n ( S ) S c ) α S 其中 S min ⁡ ( S ) ≡ S 1 + B crit  ( L ) / B (  minimum steps, at  B ≫ B crit  ) S_{\min }(S) \equiv \frac{S}{1+B_{\text {crit }}(L) / B} \quad\left(\text { minimum steps, at } B \gg B_{\text {crit }}\right) S m i n ( S ) 1 + B crit ( L ) / B S ( minimum steps, at B B crit )

    5. 迁移随着测试性能的提高而提高 :当我们使用与训练数据不同的分布对文本进行模型评估时,结果与训练验证集上的结果高度相关,损失大致恒定。换句话说,迁移到不同的分布会导致恒定的损失,但其他方面会大致与训练集上的性能保持一致

      在这里插入图片描述

    6. 样本效率 :大型模型比小型模型更具样本效率,使用更少的优化步数和更少的数据点就能达到相同的性能水平

      在这里插入图片描述

    7. 收敛效率低 随着 C C C 的增大,为了达成最高训练效率,数据 D D D 的增量要显著小于模型参数量 N N N 的增量 。因此当固定计算量预算 C C C 而不限制模型大小 N N N 和可用数据 D D D 时,可以通过训练非常大的模型并在明显缺乏收敛性时停止来获得最佳性能,这比将小模型训练至收敛的训练效率高很多

      在这里插入图片描述

      当固定训练总计算量 C C C 而没有其他任何限制时,可以基于 L ( N , S ) = ( N c N ) α N + ( S c S min ⁡ ( S ) ) α S L\left(N, S\right)=\left(\frac{N_{c}}{N}\right)^{\alpha_{N}}+\left(\frac{S_{c}}{S_{\min}(S)}\right)^{\alpha_{S}} L ( N , S ) = ( N N c ) α N + ( S m i n ( S ) S c ) α S 预测最优模型大小 N N N 、最优批量大小 B B B 、最优步骤数 S S S 和数据集大小 D D D 应按如下方式增长
      N ∝ C C α C min ⁡ / α N , B ∝ C α C min ⁡ / α B , S ∝ C C α C min ⁡ / α S , D = B ⋅ S N \propto C_{C}^{\alpha_{C}^{\min } / \alpha_{N}},\quad B \propto C^{\alpha_{C}^{\min } / \alpha_{B}}, \quad S \propto C_{C}^{\alpha_{C}^{\min } / \alpha_{S}}, \quad D=B \cdot S N C C α C m i n / α N , B C α C m i n / α B , S C C α C m i n / α S , D = B S 其中
      α C min ⁡ = 1 / ( 1 / α S + 1 / α B + 1 / α N ) \alpha_{C}^{\min }=1 /\left(1 / \alpha_{S}+1 / \alpha_{B}+1 / \alpha_{N}\right) α C m i n = 1/ ( 1/ α S + 1/ α B + 1/ α N ) 作者拟合的最优结果为 N ( C min ⁡ ) ∝ C min ⁡ 0.73 ,    B crit  ∝ C min ⁡ 0.24 ,    S min ⁡ ∝ C min ⁡ 0.03 N(C_{\min})\propto C_{\min}^{0.73}, \space\space B_{\text {crit }} \propto C_{\min}^{0.24}, \space\space S_{\min} \propto C_{\min}^{0.03} N ( C m i n ) C m i n 0.73 , B crit C m i n 0.24 , S m i n C m i n 0.03 ,这意味着随着计算量预算 C C C 的提高,应该更多地增加模型参数量 N N N ,较少地增加训练数据量 D D D

    8. 最优 batch size :使用合适的 batch size 进行训练可以实现最高的训练效率,关键 batch size 的大小 B crit B_{\text{crit}} B crit 可以通过测量梯度噪声规模来确定,作者进一步验证了它仅和目标性能(损失值)有关,且呈现幂律关系,而与模型规模等其他因素无关

      在这里插入图片描述

      最佳 batch size B crit  ( L ) B_{\text {crit }}(L) B crit ( L ) 仅和性能 L L L 相关,而与模型规模等其他因素无关。幂律关系表示为为
      B crit  ( L ) ≈ B ∗ L 1 / α B B_{\text {crit }}(L) \approx \frac{B_{*}}{L^{1 / \alpha_{B}}} B crit ( L ) L 1/ α B B 其中 B ∗ B_* B α B \alpha_B α B 是需要拟合的参数,这种表示可以使 B crit  ( L ) B_{\text {crit }}(L) B crit ( L ) 的估计值在 L → 0 L\to 0 L 0 时发散,以保持和另一种估计方法 “噪声梯度度量” 的一致性

  • 最后, 必须注意以上 Scaling Laws 都是针对 “最大化训练效率” 而言的 。有时我们会故意违反它,比如 LLaMa 就使用更多的数据训练了较小的模型,虽然训练效率低,但是可以减少部署和推理成本
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

序列模型(4)—— Scaling Laws 的相关文章

  • LLaMA系列

    文章目录 1 LLaMA 1 1 模型结构 1 2 训练方式 1 3 结论 2 LLaMA 2 2 1 相比LLaMA1的升级 2 3 模型结构 2 3 1 MHA MQA GQA区别与联系 2 4 训练方式 1 LLaMA 纯基座语言模型
  • AN OVERVIEW OF LANGUAGE MODELS RECENT DEVELOPMENTS AND OUTLOOK

    LLM系列相关文章 针对 AN OVERVIEW OF LANGUAGE MODELS RECENT DEVELOPMENTS AND OUTLOOK 的翻译 语言模型综述 近年来的发展与展望 摘要 1 引言 2 语言模型的类型 2 1 结
  • TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS

    本文是LLM系列的文章之一 针对 TOOLLLM FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000 REAL WORLD APIS 的翻译 TOOLLLMs 让大模型掌握16000 的真实
  • 如何有效进行RLHF的数据标注?

    编者按 随着大语言模型在自然语言处理领域的广泛应用 如何从人类反馈进行强化学习 RLHF 已成为一个重要的技术挑战 并且RLHF需要大量高质量的人工数据标注 这是一个非常费力的过程 本文作者在数据标注领域具有丰富经验 他在本文深入探讨了RL
  • 文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

    文献阅读 Chain of Thought Prompting Elicits Reasoning in Large Language Models 1 文章简介 2 具体方法 3 实验结果 1 数学推理 1 实验设计 2 实验结果 3 消
  • Automatically Correcting Large Language Models

    本文是大模型相关领域的系列文章 针对 Automatically Correcting Large Language Models Surveying the landscape of diverse self correction str
  • Code Llama: Open Foundation Models for Code

    本文是LLM系列文章 针对 Code Llama Open Foundation Models for Code 的翻译 Code Llama 代码的开放基础模型 摘要 1 引言 2 Code Llama 专业化Llama2用于代码 3 结
  • Large Language Models and Knowledge Graphs: Opportunities and Challenges

    本文是LLM系列的文章 针对 Large Language Models and Knowledge Graphs Opportunities and Challenges 的翻译 大语言模型和知识图谱 机会与挑战 摘要 1 引言 2 社区
  • Fine-tuning Large Enterprise Language Models via Ontological Reasoning

    本文是LLM系列文章 针对 Fine tuning Large Enterprise Language Models via Ontological Reasoning 的翻译 基于本体论推理的大型企业语言模型微调 摘要 1 引言 2 微调
  • LLM系列

    简介 月黑见渔灯 孤光一点萤 微微风簇浪 散作满河星 小伙伴们好 我是微信公众号 小窗幽记机器学习 的小编 卖钢丝球的小男孩 今天这篇小作文主要介绍Vicuna模型 基于官方模型13B模型部署服务及对话实测 更多 更新文章欢迎关注微信公众号
  • Data-centric Artificial Intelligence: A Survey

    本文是AI相关的论文 针对 Data centric Artificial Intelligence A Survey 的翻译 以数据为中心的人工智能 综述 摘要 1 引言 2 数据为中心AI的背景 3 训练数据开发 4 推理数据开发 5
  • AIGC之常见LLM免费使用

    文章目录 1 前言 2 常见LLM免费使用方法 部分网站需要使用魔法 2 1 GPT 4 GPT 3 5 16k国内镜像 2 2 GPT 3 5 国内镜像 2 3 LLM国外综合网站 3 总结 1 前言 自从ChatGPT在2022年底横空
  • MindMap: Knowledge Graph Prompting Sparks Graph of Thoughts in Large Language Models

    本文是LLM系列文章 针对 MindMap Knowledge Graph Prompting Sparks Graph of Thoughts in Large Language Models 的翻译 思维导图 大型语言模型中的知识图谱提
  • LLM推理优化技术综述:KVCache、PageAttention、FlashAttention、MQA、GQA

    LLM推理优化技术综述 KVCache PageAttention FlashAttention MQA GQA 随着大模型被越来越多的应用到不同的领域 随之而来的问题是应用过程中的推理优化问题 针对LLM推理性能优化有一些新的方向 最近一
  • QLoRA

    一 概述 title QLORA Efficient Finetuning of Quantized LLMs 论文地址 https arxiv org pdf 2305 14314 pdf 代码 GitHub artidoro qlora
  • A Survey on Large Language Models for Recommendation

    本文是LLM系列的文章 针对 A Survey on Large Language Models for Recommendation 的翻译 大模型用于推荐的综述 摘要 1 引言 2 建模范式和分类 3 判别式LLM用于推荐 4 生成式L
  • In-Context Retrieval-Augmented Language Models

    本文是LLM系列文章 针对 In Context Retrieval Augmented Language Models 的翻译 上下文检索增强语言模型 摘要 1 引言 2 相关工作 3 我们的框架 4 实验细节 5 具有现成检索器的上下文
  • Textbooks Are All You Need

    本文是LLM系列文章 针对 Textbooks Are All You Need 的翻译 课本是你全部所需要的 摘要 1 引言 2 训练细节和高质量数据的重要性 3 对CodeExercise进行微调后的模型能力峰值 4 LLM评分对非常规
  • AI分布式训练:DDP (数据并行)技术详解与实战

    编者按 如今传统的单机单卡模式已经无法满足超大模型进行训练的要求 如何更好地 更轻松地利用多个 GPU 资源进行模型训练成为了人工智能领域的热门话题 我们今天为大家带来的这篇文章详细介绍了一种名为 DDP Distributed Data
  • A Survey of Graph Meets Large Language Model: Progress and Future Directions

    本文是LLM系列文章 针对 A Survey of Graph Meets Large Language Model Progress and Future Directions 的翻译 当图遇到大型语言模型综述 进展与未来方向 摘要 1

随机推荐

  • AI大模型应用入门实战与进阶:如何训练自己的AI模型

    1 背景介绍 人工智能 Artificial Intelligence AI 是计算机科学的一个分支 旨在模拟人类智能的能力 包括学习 理解自然语言 识别图像和视频 进行决策等 随着数据量的增加和计算能力的提升 人工智能技术的发展得到了巨大
  • AI大模型应用入门实战与进阶:从AI模型应用到商业转化

    1 背景介绍 人工智能 AI 已经成为当今世界最热门的技术话题之一 其在各个领域的应用也不断拓展 大型AI模型是人工智能领域的核心 它们在自然语言处理 图像识别 语音识别等方面的表现力和性能都有着重要的作用 然而 如何将这些大型AI模型应用
  • gazebo(fortress) set the path of sdf file

    This method only satisfied with gazebo fortress not harmenic
  • 流程管理的未来:人工智能如何改变业务运行

    1 背景介绍 流程管理是企业在实现业务目标时所采取的一系列有序 连贯的活动 它涉及到许多领域 如生产 销售 研发 财务等 随着企业规模的扩大和市场竞争的激烈 流程管理的复杂性也不断增加 人工智能 AI 技术的发展为流程管理提供了新的机遇 有
  • 人工智能与模式识别的社会影响与应用

    1 背景介绍 人工智能 Artificial Intelligence AI 和模式识别 Pattern Recognition PR 是计算机科学领域的两个重要分支 人工智能研究如何让计算机具有类似人类智能的能力 如学习 推理 理解自然语
  • 线性代数在深度学习中的角色

    1 背景介绍 深度学习是一种人工智能技术 它主要通过神经网络来学习和模拟人类大脑的思维过程 线性代数是一门数学分支 它研究的是向量和矩阵的运算 在深度学习中 线性代数起着非常重要的作用 因为它为神经网络提供了数学模型和计算方法 在这篇文章中
  • 慢思维的力量:如何解决复杂问题

    1 背景介绍 在当今的快速发展和竞争激烈的环境中 我们需要更有效地解决复杂问题 这需要我们具备一种称为慢思维的思考方式 它可以帮助我们更好地理解问题 制定更好的解决方案 本文将介绍慢思维的核心概念 算法原理 具体操作步骤以及数学模型公式 并
  • 强化学习求解TSP(二):Qlearning求解旅行商问题TSP(提供Python代码)

    一 Qlearning简介 Q learning是一种强化学习算法 用于解决基于奖励的决策问题 它是一种无模型的学习方法 通过与环境的交互来学习最优策略 Q learning的核心思想是通过学习一个Q值函数来指导决策 该函数表示在给定状态下
  • 线性代数在数据挖掘中的应用

    1 背景介绍 线性代数是数学的一个分支 主要研究的是线性方程组和向量的相关概念和方法 在数据挖掘领域 线性代数的应用非常广泛 包括数据处理 特征提取 模型训练等方面 本文将从以下几个方面进行阐述 背景介绍 核心概念与联系 核心算法原理和具体
  • 6 - 数据备份与恢复|innobackupex

    数据备份与恢复 innobackupex 数据备份与恢复 数据备份相关概念 物理备份与恢复 逻辑备份 推荐 使用binlog日志文件实现对数据的时时备份 使用日志 恢复数据
  • 心灵与大脑的沟通:如何让大脑更好地理解我们的情感

    1 背景介绍 心理学和人工智能之间的界限已经不断模糊化 尤其是在情感智能方面 情感智能是一种新兴的人工智能技术 旨在让计算机更好地理解和回应人类的情感 这篇文章将探讨如何让大脑更好地理解我们的情感 以及在这个过程中涉及的核心概念 算法原理
  • AI大模型应用入门实战与进阶:Part 7 Transformer模型解析

    1 背景介绍 自从2020年的大模型如GPT 3等开始引起广泛关注 人工智能领域的研究和应用得到了重大推动 在这一波技术创新中 Transformer模型发挥着关键作用 这篇文章将深入探讨Transformer模型的核心概念 算法原理和实例
  • 强化学习求解TSP(一):Qlearning求解旅行商问题TSP(提供Python代码)

    一 Qlearning简介 Q learning是一种强化学习算法 用于解决基于奖励的决策问题 它是一种无模型的学习方法 通过与环境的交互来学习最优策略 Q learning的核心思想是通过学习一个Q值函数来指导决策 该函数表示在给定状态下
  • 如何成为一名数据科学家:必须掌握的技能和知识

    1 背景介绍 数据科学家是一种新兴的职业 它结合了计算机科学 统计学 数学和领域知识等多个领域的知识和技能 以解决实际问题 数据科学家的主要任务是收集 清洗 分析和解释大量数据 从中挖掘有价值的信息和知识 并将其应用于决策和预测 数据科学家
  • 机器智能与人类智能的竞争:技术创新的驱动力

    1 背景介绍 人工智能 Artificial Intelligence AI 和机器学习 Machine Learning ML 是最近几年最热门的技术领域之一 随着数据量的增加和计算能力的提高 机器学习技术的发展得到了极大的推动 机器学习
  • 电脑快速打开计算器的方法

    大家好 我是爱你三千遍斯塔克 我们平常在运算时 经常要要使用计算器 那么计算器有什么快速打开方法吗 这里有一些参考方法 可供大家进行参考 希望对大家有帮助 希望你喜欢我的内容 记得关注我哦 我会继续为大家带来更好的作 1 win R 打开运
  • 机器学习中的知识共享:模型与数据的交流与协作

    1 背景介绍 机器学习 Machine Learning 是一种通过数据学习模式和规律的计算机科学领域 在过去的几年里 机器学习技术在各个领域得到了广泛应用 如图像识别 自然语言处理 推荐系统等 随着数据规模的不断增长 单个机器学习模型的复
  • 人工智能与机器学习:未来的编程范式

    1 背景介绍 人工智能 Artificial Intelligence AI 和机器学习 Machine Learning ML 是现代计算机科学的重要领域之一 它们旨在让计算机能够自主地学习 理解和进化 以解决复杂的问题 随着数据量的增加
  • JDK21和 Flowable 7.0.0

    JDK21和 Flowable 7 0 0 一 Flowable 二 项目搭建 1 依赖包 2 数据库 3 资源文件 1 YML配置文件 2 Drools kbase
  • 序列模型(4)—— Scaling Laws

    本文介绍 LLM 训练过程中重要的 Scaling Laws 这是一个 经验规律 指出了 固定训练成本 总计算量FLOPs C C C 时 如何调配模型规模 参数量 N N