【自然语言处理】【Scaling Law】语言模型物理学 第3.3部分:知识容量Scaling Laws

语言模型物理学3.3:知识容量Scaling Laws

论文名称:Physics of Language Models: Part 3.3, Knowledge Capacity Scaling Laws

论文地址:https://arxiv.org/pdf/2404.05405

相关博客
【自然语言处理】【Scaling Law】Observational Scaling Laws:跨不同模型构建Scaling Law
【自然语言处理】【大模型】语言模型物理学 第3.3部分:知识容量Scaling Laws
【自然语言处理】Transformer中的一种线性特征
【自然语言处理】【大模型】DeepSeek-V2论文解析
【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM
【自然语言处理】BitNet b1.58:1bit LLM时代
【自然语言处理】【长文本处理】RMT:能处理长度超过一百万token的Transformer
【自然语言处理】【大模型】MPT模型结构源码解析(单机版)
【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)
【自然语言处理】【大模型】BLOOM模型结构源码解析(单机版)

一、简介

​ Scaling laws描述了模型尺寸与其能力的关系。不同于先前通过loss或者基准来评估模型能力,本文评估模型存储的知识数量。这里主要是关注以元组方式表示的知识,例如(USA, capital, Washington D.C)。通过多个受控数据集,发现每个参数仅能存储2 bit的知识,即使参数量化为8bit也有相同结论。因此,7B模型能够存储14B bit的指数,超过了英文Wikipedia和教科书的总和。

二、预备知识

知识片段(knowledge picec):三个字符串组成的元组 (name,attribute,value)=(n,a,v) \text{(name,attribute,value)=(n,a,v)} (name,attribute,value)=(n,a,v)。例如, n="张三" \text{n="张三"} n="张三" a="生日" \text{a="生日"} a="生日" v=1992年10月1日 \text{v=1992年10月1日} v=1992101

1. 知识的理论设定

​ 一组知识的复杂度不仅由知识片段的数量决定,也取决于 v v v的长度、词表多样性和一些其他的隐藏。例如,若 a a a表示身份证号,则其包含的知识量比 a a a为性别要多,因为身份证号多样性更高。此外,若 a a a为生日,则 v v v由3个块(chunks)组成,例如(1996,10,1)。

​ 基于这些观察,列出一些可能影响知识复杂度的超参数:

  • N:名称(name) n n n的数量,名称集合表示为 N \mathcal{N} N
  • K:属性(attribute) a a a的数量,令 A \mathcal{A} A表示属性集合,则 ∣ A ∣ = K |\mathcal{A}|=K A=K
  • T:token的数量,令 v v v中的每个字符都属于集合 T \mathcal{T} T,则有 ∣ T ∣ = T |\mathcal{T}|=T T=T。因此,T也可以认为是tokenizer中词表大小;
  • C和L:块(chunk)的数量以及每个块的长度。 v ∈ ( T L ) C v\in(\mathcal{T}^L)^C v(TL)C可以表示为 v = ( v 1 , v 2 , … , v C ) v=(v_1,v_2,\dots,v_C) v=(v1,v2,,vC),其中 v i ∈ T L v_i\in\mathcal{T}^L viTL
  • D:块(chunk)的多样性。对于每个知识片段 ( n , a , v ) (n,a,v) (n,a,v),若块 v i v_i vi属于 D a ⊂ T L \mathcal{D}_a\subset\mathcal{T}^L DaTL,则块的多样性表示为 D = def ∣ D a ∣ ≪ T L D\overset{\text{def}}{=}|\mathcal{D}_a|\ll T^L D=defDaTL

​ 为了简化表示,令属性 a ∈ A a\in\mathcal{A} aA内的所有块(chunk)共享多样性集合 D a \mathcal{D}_a Da且所有块均有相同长度。这里先引入 bioD(N,K,C,D,L,T) \text{bioD(N,K,C,D,L,T)} bioD(N,K,C,D,L,T)数据集,定义如下:

定义2.2

​ 假设属性集合 A \mathcal{A} A中有K个属性,例如 A = { "ID1" … "ID K" } \mathcal{A}=\{\text{"ID1"}\dots\text{"ID K"}\} A={"ID1""ID K"};候选名称集合 N 0 ( N 0 = def ∣ N 0 ∣ ≫ N ) \mathcal{N}_0(N_0\overset{\text{def}}{=}|\mathcal{N}_0|\gg N) N0(N0=defN0N)

  1. N 0 \mathcal{N}_0 N0中均匀采样N个名称,形成集合 N \mathcal{N} N
  2. 对于每个属性 a ∈ A a\in\mathcal{A} aA,均匀随机生成D个不同的字符串 w 1 , a , … , w D , a ∈ T L w_{1,a},\dots,w_{D,a}\in\mathcal{T}^L w1,a,,wD,aTL,从而形成多样性集合 D a \mathcal{D}_a Da
  3. 对于每个名称 n ∈ N n\in\mathcal{N} nN和属性 a ∈ A a\in\mathcal{A} aA,通过均匀采样 v i ∈ D a v_i\in\mathcal{D}_a viDa来生成取值 v ⋆ ( n , a ) = ( v 1 , v 2 , … , v C ) v^{\star}(n,a)=(v_1,v_2,\dots,v_C) v(n,a)=(v1,v2,,vC)

Z = def { ( n , a , v ⋆ ( n , a ) ) } n ∈ N , a ∈ A \mathcal{Z}\overset{\text{def}}{=}\{(n,a,v^{\star}(n,a))\}_{n\in\mathcal{N},a\in\mathcal{A}} Z=def{(n,a,v(n,a))}nN,aA表示知识集合。

命题2.3 bit复杂度上界

​ 给定 N 0 \mathcal{N}_0 N0 A \mathcal{A} A T \mathcal{T} T,描述由定义2.2生成的知识集合,至多需要的bit数为
log ⁡ 2 ( ∣ N 0 ∣ N ) + N K C log ⁡ 2 D + K log ⁡ 2 ( T L D ) ≈ N log ⁡ 2 ∣ N 0 ∣ N + N K C log ⁡ 2 D + K D log ⁡ 2 T L D \log_2\Big(\begin{matrix}|\mathcal{N}_0| \\ N \end{matrix}\Big)+ NKC\log_2 D+K\log_2\Big(\begin{matrix}T^L \\ D \end{matrix}\Big) \approx N\log_2\frac{|\mathcal{N}_0|}{N}+NKC\log_2 D+KD\log_2\frac{T^L}{D} \\ log2(N0N)+NKClog2D+Klog2(TLD)Nlog2NN0+NKClog2D+KDlog2DTL
N 0 \mathcal{N}_0 N0中挑选N个名称形成 N \mathcal{N} N的可能性包含 ( ∣ N 0 ∣ N ) \Big(\begin{matrix}|\mathcal{N}_0| \\ N \end{matrix}\Big) (N0N)种,需要的bit数为 log ⁡ 2 ( ∣ N 0 ∣ N ) \log_2\Big(\begin{matrix}|\mathcal{N}_0| \\ N \end{matrix}\Big) log2(N0N)

N个名称,K个属性,C个块,每个块有D种可能性,需要的bit数为 N K C log ⁡ 2 D NKC\log_2 D NKClog2D

K个属性,每个属性从 T L T^L TL的可能空间中挑选D个作为多样性集合,需要的bit数为 K log ⁡ 2 ( T L D ) K\log_2\Big(\begin{matrix}T^L \\ D \end{matrix}\Big) Klog2(TLD)

2. 知识的经验设定

​ 这里使用定义2.2生成的bioD数据集和其他一些人物简介数据集来评估LM的scaling law。

​ Allen-Zhu和Li构造了一个合成人物简介数据集,包含N个人物且每个人物具有6个属性:生日、出生城市、大学、专业、雇主和工作城市。为了将bioS数据集中的元组翻译为自然语言,每个人通过6个随机选择的句子模板进行描述。

​ 本文中,探索了该数据集的三种变体:

  • bioS(N) \text{bioS(N)} bioS(N)表示包含N个人物的在线数据集,每个人物都是通过动态选择和排序6个句子模板来随机生成的;
  • bioS simple ( N ) \text{bioS}^{\text{simple}}(N) bioSsimple(N)表示类似的数据集,但是每个人物都是通过对句子模板进行固定的随机选择和排序;
  • bioR(N) \text{bioR(N)} bioR(N)表示相同的数据集,但是每个人物都通过LLaMA2重写40次,从而增加真实性和多样性;

​ 这些数据集对应"bioS multi+permute"、“bioS single+permute"和"bioR multi”。先前的研究将N限制在100K,本文则将bioS中的N限制在20M,而bioR的N限制在1M。通过这样的方式构造的数据集达到22GB。

​ 若每个知识片段在训练时见过1000次,则称为1000次曝光。对于bioS(N),1000次曝光不太可能包含相同的人物数据,因为每个属性有50个句子模板,那么每个人就有 5 0 6 × 6 ! 50^6\times 6! 506×6!个可能的人物传记。对于 bioS simple ( N ) \text{bioS}^{\text{simple}}(N) bioSsimple(N),1000次曝光意味着1000次数据通过。对于bioR(N),1000/100曝光意味着训练数据仅有25/2.5通过。

​ 对于bioD数据集,定义 N 0 \mathcal{N}_0 N0与bioS相同, ∣ N 0 ∣ = 400 × 400 × 1000 |\mathcal{N}_0|=400\times 400\times 1000 N0=400×400×1000。通过使用随机句子顺序和一致的句子模板,将单个人物的属性封装在同一个段落中。例如
Anya Briar Forger’s ID 7 is  v 7 , 1 , … , v 7 , C .  Her ID 2 is  v 2 , 1 , … , v 2 , C . [ …   ]  Her ID 5 is  v 5 , 1 , … , v 5 , C \text{Anya Briar Forger's ID 7 is }v_{7,1},\dots,v_{7,C}.\text{ Her ID 2 is }v_{2,1},\dots,v_{2,C}.[\dots]\text{ Her ID 5 is }v_{5,1},\dots,v_{5,C} Anya Briar Forger’s ID 7 is v7,1,,v7,C. Her ID 2 is v2,1,,v2,C.[] Her ID 5 is v5,1,,v5,C
本文主要利用bioS。为了能够表明更广泛的适用性并且更好的连接理论边界,也会报告 bioS simple \text{bioS}^{\text{simple}} bioSsimple bioR \text{bioR} bioR bioD \text{bioD} bioD

3. 模型和训练

​ 将GPT2的位置编码换为RoPE并且禁用dropout。 GPT2-l-h \text{GPT2-l-h} GPT2-l-h表示 l l l层、 h h h头且隐藏层维度为 64 h 64h 64h的模型,例如GPT2-small对应于GPT2-12-12。使用默认的GPT2Tokenizer,将人物的姓名和属性转换为变长token序列。后续在测试模型结构的scaling law时,也会使用LLaMA/Mistral架构。

​ 使用特定的数据集从头开始训练语言模型。人物的知识片段被随机拼接,使用进行分隔,然后随机划分为512 tokens的窗口。使用标准的自回归损失函数进行训练。

三、Bit复杂度下界

​ 当评估模型中存储的知识,不能简单的依赖于平均的、逐个单词的交叉熵损失值。例如,短语“received mentorship and guidance from faculty members”中不包含有用的知识。相反,应该关注知识tokens的损失值之和。

​ 考虑具有权重 W ∈ W W\in\mathcal{W} WW的模型 F F F。假设 F F F在一个bioD(N,K,C,D,L,T)数据集 Z \mathcal{Z} Z上训练,该过程表示为 W = W ( Z ) W=W(\mathcal{Z}) W=W(Z)。在评估阶段,通过两个函数来表示 F F F F ⊤ ( W , R ) F^\top(W,R) F(W,R)用来生成名称、 F ⊥ ( W , n , a , R ) F^{\perp}(W,n,a,R) F(W,n,a,R)表示在给定(n,a)的情况下生成具体的取值, R R R表示生成中使用的随机性。令 F 1 ⊥ ( W ( Z ) , n , a , R ) F^{\perp}_1(W(\mathcal{Z}),n,a,R) F1(W(Z),n,a,R)表示 F ⊥ ( W ( Z ) , n , a , R ) F^{\perp}(W(\mathcal{Z}),n,a,R) F(W(Z),n,a,R)生成的第一个分块(chunk)。通过计算下面的三个交叉熵损失来评估 F F F
loss n a m e ( Z ) = def E n ∈ N − log ⁡ Pr R [ F ⊤ ( W ( Z ) , R ) = n ] loss v a l u e 1 ( Z ) = def E n ∈ N , a ∈ A − log ⁡ Pr R [ F 1 ⊤ ( W ( Z ) , n , a , R ) = v 1 ⋆ ( n , a ) ] loss v a l u e ( Z ) = def E n ∈ N , a ∈ A − log ⁡ Pr R [ F ⊥ ( W ( Z ) , n , a , R ) = v ⋆ ( n , a ) ] \begin{align} \textbf{loss}_{name}(\mathcal{Z})&\overset{\text{def}}{=}\mathbb{E}_{n\in\mathcal{N}}-\log\textbf{Pr}_{R}[F^\top(W(\mathcal{Z}),R)=n] \\ \textbf{loss}_{value1}(\mathcal{Z})&\overset{\text{def}}{=}\mathbb{E}_{n\in\mathcal{N},a\in\mathcal{A}}-\log\textbf{Pr}_R[F_1^\top(W(\mathcal{Z}),n,a,R)=v_{1}^{\star}(n,a)] \\ \textbf{loss}_{value}(\mathcal{Z})&\overset{\text{def}}{=}\mathbb{E}_{n\in\mathcal{N},a\in\mathcal{A}}-\log\textbf{Pr}_R[F^{\perp}(W(\mathcal{Z}),n,a,R)=v^{\star}(n,a)] \\ \end{align} \\ lossname(Z)lossvalue1(Z)lossvalue(Z)=defEnNlogPrR[F(W(Z),R)=n]=defEnN,aAlogPrR[F1(W(Z),n,a,R)=v1(n,a)]=defEnN,aAlogPrR[F(W(Z),n,a,R)=v(n,a)]
​ 对于一个语言模型,这些量可以通过自回归交叉熵损失进行计算。例如,在句子" Anya Briar Forger’s ID 7 is  v 7 , 1 , … , v 7 , C \text{Anya Briar Forger's ID 7 is }v_{7,1},\dots,v_{7,C} Anya Briar Forger’s ID 7 is v7,1,,v7,C"中评估模型,通过在token "Anya Briar Forger"上的loss进行求和能够精准计算出当 n = "Anya Briar Forger" n=\text{"Anya Briar Forger"} n="Anya Briar Forger"时的 − log ⁡ Pr R [ F ⊤ ( W ( Z ) , R ) = n ] -\log\textbf{Pr}_{R}[F^\top(W(\mathcal{Z}),R)=n] logPrR[F(W(Z),R)=n]。将token v 7 , 1 v_{7,1} v7,1的损失值进行求和则计算出n和a="ID 7"时的 − log ⁡ Pr R [ F 1 ⊤ ( W ( Z ) , n , a , R ) = v 7 , 1 ] -\log\textbf{Pr}_R[F_1^\top(W(\mathcal{Z}),n,a,R)=v_{7,1}] logPrR[F1(W(Z),n,a,R)=v7,1]。在整个序列 v 7 , 1 , … , v 7 , C v_{7,1},\dots,v_{7,C} v7,1,,v7,C上的损失值求和则有 − log ⁡ Pr R [ F ⊥ ( W ( Z ) , n , a , R ) = v 7 , 1 , … , v 7 , C ] -\log\textbf{Pr}_R[F^{\perp}(W(\mathcal{Z}),n,a,R)=v_{7,1},\dots,v_{7,C}] logPrR[F(W(Z),n,a,R)=v7,1,,v7,C]

定理3.2 (bit复杂度的下界)

假设 N ≥ Ω ( D log ⁡ N ) N\geq\Omega(D\log N) NΩ(DlogN),则有
log ⁡ 2 ∣ W ∣ ≥ E Z [ N log ⁡ 2 N 0 − N e loss n a m e ( Z ) + N K log ⁡ 2 D C e loss v a l u e ( Z ) + K D log ⁡ 2 T L − D D e ( 1 + o ( 1 ) ) loss v a l u e 1 ( Z ) − o ( K D ) ] = N log ⁡ 2 N 0 − N e E Z loss n a m e ( Z ) + N K log ⁡ 2 D C e E Z loss v a l u e ( Z ) + K D log ⁡ 2 T L − D D e ( 1 + o ( 1 ) ) E Z loss v a l u e 1 ( Z ) − o ( K D ) \begin{align} \log_2 |\mathcal{W}|&\geq\mathbb{E}_{\mathcal{Z}}\Big[N\log_2\frac{N_0-N}{e^{\textbf{loss}_{name}(\mathcal{Z})}}+NK\log_2\frac{D^C}{e^{\textbf{loss}_{value}(\mathcal{Z})}}+KD\log_2\frac{T^L-D}{De^{(1+o(1))\textbf{loss}_{value1}(\mathcal{Z})}}-o(KD)\Big] \\ &=N\log_2\frac{N_0-N}{e^{\mathbb{E}_{\mathcal{Z}}\textbf{loss}_{name}(\mathcal{Z})}}+NK\log_2\frac{D^C}{e^{\mathbb{E}_{\mathcal{Z}}\textbf{loss}_{value}(\mathcal{Z})}}+KD\log_2\frac{T^L-D}{De^{(1+o(1))\mathbb{E}_{\mathcal{Z}}\textbf{loss}_{value1}(\mathcal{Z})}}-o(KD) \\ \end{align} \\ log2WEZ[Nlog2elossname(Z)N0N+NKlog2elossvalue(Z)DC+KDlog2De(1+o(1))lossvalue1(Z)TLDo(KD)]=Nlog2eEZlossname(Z)N0N+NKlog2eEZlossvalue(Z)DC+KDlog2De(1+o(1))EZlossvalue1(Z)TLDo(KD)
本文的目标是就研究模型参数数量与这个下界的关系。

推论3.3 (理想无误差的情况)

​ 理想情况下,对于 Z \mathcal{Z} Z中的每个数据, F F F都能以1/N的概率从 N \mathcal{N} N中生成名称,那么有 loss n a m e ( Z ) = log ⁡ N \textbf{loss}_{name}(\mathcal{Z})=\log N lossname(Z)=logN;给定(n,a)样本对, F F F能够100%准确生成v,那么 loss v a l u e ( Z ) = loss v a l u e 1 ( Z ) = 0 \textbf{loss}_{value}(\mathcal{Z})=\textbf{loss}_{value1}(\mathcal{Z})=0 lossvalue(Z)=lossvalue1(Z)=0。在这种情况下,
log ⁡ 2 ∣ W ∣ ≥ N log ⁡ 2 N 0 − N N + N K C log ⁡ 2 D + K D log ⁡ 2 T L − D D − o ( K D ) \log_2 |\mathcal{W}|\geq N\log_2\frac{N_0-N}{N}+NKC\log_2 D+KD\log_2\frac{T^L-D}{D}-o(KD) \\ log2WNlog2NN0N+NKClog2D+KDlog2DTLDo(KD)

  • 三部分进行求和是获得下界的必要条件,忽略其中任何一个都会导致次优下界;
  • 研究固定数据集 Z \mathcal{Z} Z的下界是不可能的,即使没有任何可训练参数,模型也能硬编码 Z \mathcal{Z} Z至其架构中。因此,需要考虑数据集分布上的下界。

​ 若名称是固定的 ( N = N 0 ) (\mathcal{N}=\mathcal{N}_0) (N=N0)并且具有N个知识片段,每个知识片段都是从固定集合 [ T ] [T] [T]中挑选出来的。那么,当满足 log ⁡ 2 ∣ W ∣ ≥ N log ⁡ 2 T \log_2|\mathcal{W}|\geq N\log_2 T log2WNlog2T时,任何模型 F ( W ) F(\mathcal{W}) F(W)都能够完美学习到这些知识。为了能够与定理3.2联系起来,需要解决三个挑战。(1) 模型F仅能以一定程度的准确率来学习知识;(2) N ≠ N 0 \mathcal{N}\neq\mathcal{N}_0 N=N0,因此名称需要进行学习,即使是完美的模型在生成名称时都无法实现0交叉熵损失。(3) 知识片段之间存在依赖关系。

四、容量比

​ 基于定理3.2,忽略低阶项,定义经验容量比为

定义4.1

​ 给定一个具有 P P P个参数的模型 F F F,其在bioD(N,K,C,D,L,T)数据集 Z \mathcal{Z} Z上训练。假设其能够给出 p 1 = loss n a m e ( Z ) p_1=\textbf{loss}_{name}(\mathcal{Z}) p1=lossname(Z) p 2 = loss v a l u e ( Z ) p_2=\textbf{loss}_{value}(\mathcal{Z}) p2=lossvalue(Z) p 3 = loss v a l u e 1 ( Z ) p_3=\textbf{loss}_{value1}(\mathcal{Z}) p3=lossvalue1(Z),定义容量比(capacity)和最大容量比(max capacity ratio)为
R ( F ) = def N log ⁡ 2 N 0 e p 1 + N K log ⁡ 2 D C e p 2 + K D log ⁡ 2 T L D e p 3 P R(F)\overset{\text{def}}{=}\frac{N\log_2\frac{N_0}{e^{p_1}}+NK\log_2\frac{D^C}{e^{p_2}}+KD\log_2\frac{T^L}{De^{p_3}}}{P} \\ R(F)=defPNlog2ep1N0+NKlog2ep2DC+KDlog2Dep3TL

R max ⁡ ( F ) = def N log ⁡ 2 N 0 N + N K C log ⁡ 2 D + K D log ⁡ 2 T L D P R^{\max}(F)\overset{\text{def}}{=}\frac{N\log_2\frac{N_0}{N}+NKC\log_2 D+KD\log_2\frac{T^L}{D}}{P} \\ Rmax(F)=defPNlog2NN0+NKClog2D+KDlog2DTL

​ 必然满足 R ( F ) ≤ R max ⁡ ( F ) R(F)\leq R^{\max}(F) R(F)Rmax(F),仅当模型是完美的情况下等号才成立。对于固定的数据集,进一步增大模型尺寸也不会增加额外的知识。因此,随着模型尺寸P的增加, R max ⁡ ( F ) R^{\max}(F) Rmax(F)会逐步趋近于0。对于bioS(N)数据,可以通过忽略多样性项来略微降低容量比。

定义4.3

​ 给定一个具有 P P P个参数的模型 F F F,其在bioS(N)数据集 Z \mathcal{Z} Z上训练。假设其能够给出 p 1 = loss n a m e ( Z ) p_1=\textbf{loss}_{name}(\mathcal{Z}) p1=lossname(Z) p 2 = loss v a l u e ( Z ) p_2=\textbf{loss}_{value}(\mathcal{Z}) p2=lossvalue(Z),其容量比为
R ( F ) = def N log ⁡ 2 N 0 e p 1 + N log ⁡ 2 S 0 e p 2 P R max ⁡ ( F ) = def N log ⁡ 2 n 0 N + N log ⁡ 2 S 0 P \begin{align} R(F)&\overset{\text{def}}{=}\frac{N\log_2\frac{N_0}{e^{p_1}}+N\log_2\frac{S_0}{e^{p_2}}}{P} \\ R^{\max}(F)&\overset{\text{def}}{=}\frac{N\log_2\frac{n_0}{N}+N\log_2 S_0}{P} \\ \end{align} \\ R(F)Rmax(F)=defPNlog2ep1N0+Nlog2ep2S0=defPNlog2Nn0+Nlog2S0

忽略名称,每个人包含 log ⁡ 2 ( S 0 ) ≈ 47.6 \log_2(S_0)\approx47.6 log2(S0)47.6bit的知识。

五、基础Scaling Laws

在这里插入图片描述

​ 使用bioS(N)数据集训练了一系列GPT2模型。训练的方式能够确保每个知识片段都被训练1000次,该过程称为"1000次曝光"。下面是一些初步的结论:

通过训练保证bioS(N)有1000次曝光,N的范围从10K到10M,GPT2模型的尺寸从1M到0.5B。上图1(a)显示结果为:

  • 峰值容量比R(F)始终大于2;
  • R max ⁡ ( F ) ≤ 1.8 R^{\max}(F)\leq 1.8 Rmax(F)1.8时,模型接近完美的知识准确率(数据集包含B bit的知识,那么模型参数量选择 P ≥ B / 1.8 P\geq B/1.8 PB/1.8就足够了);
  • 对于所有的模型,均有 R ( F ) ≤ 2.3 R(F)\leq 2.3 R(F)2.3

​ "2bit/param"并不是逐字逐句的记忆,这样的知识可以灵活抽取并且能够进一步在下游任务中操作。这是因为bioS(N)数据是知识增强的,人物简介有充足的文本多样性。

1. 数据格式:多样性和重写

​ 在 bioS simple \text{bioS}^{\text{simple}} bioSsimple bioR \text{bioR} bioR上执行相同的分析, bioS \text{bioS} bioS bioS simple \text{bioS}^{\text{simple}} bioSsimple的文本多样性版本, bioR \text{bioR} bioR是由LLaMA2生成的接近真实的人物简介。

在相同1000次曝光,GPT2在 bioS simple \text{bioS}^{\text{simple}} bioSsimple bioR \text{bioR} bioR上的峰值容量比都接近2。因此,多样性数据并不会损坏模型容量,甚至可能会改善容量。

​ 比较 bioS \text{bioS} bioS bioS simple \text{bioS}^{\text{simple}} bioSsimple,同一个数据重写1000次要比相同数据传递给模型1000个更有优势。若数据失去多样性,模型将会浪费容量记忆句子结构,从而降低容量。

​ 在真实场景中,使用LLaMA2这种工具对预训练数据进行重写,就像 bioR \text{bioR} bioR那样。重写40次则产生40个不同的片段,那么需要40倍大的模型吗?不需要,比较 bioS \text{bioS} bioS bioR \text{bioR} bioR表明训练相同时间,模型容量比基本相同。

Allen-Zhu and Li表明,重写预训练数据对于知识抽取而不是逐字记忆至关重要。然而,他们并没探索模型容量的影响。本文解决了这个问题,表明重写预训练数据并不会损害模型的知识容量,甚至有可能增强。

2. 参数化Scaling Laws

​ 进一步研究了 bioD(N,K,C,D,L,T) \text{bioD(N,K,C,D,L,T)} bioD(N,K,C,D,L,T)数据上的scaling laws。不同于人物简介数据中的变量仅有N, bioD \text{bioD} bioD数据集允许更灵活的操作超参数K,C,D,L,T。这允许进一步测试这些参数对模型容量的影响。

跨越各种取值,K和G的范围从1到50,D的范围从10到10000,L从1到50,T从20到40000,观察到的结果:GPT2模型的峰值容量比始终有 R ( F ) ≥ 2 R(F)\geq 2 R(F)2

六、训练时间与Scaling Law

​ 当模型没有被充分训练会怎样?例如,每个知识在预训练阶段仅出现100次。令 bioS ( N ) \text{bioS}(N) bioS(N)曝光100次来计算容量比,可以发现:

当训练过程中 bioS(N) \text{bioS(N)} bioS(N)数据仅曝光100次,N从10K到10M,GPT2模型尺寸从1M到0.5B,峰值容量比始终满足 R ( F ) ≥ 1 R(F)\geq 1 R(F)1

​ 因此,虽然1000次曝光可能是达到最大容量的必然条件,但仅曝光100次也不会有很多损失。

七、模型结构与Scaling Law

​ 目前有很多transformer架构被使用,其中LLaMA和Mistral是其中比较常见的。就知识容量来说,在充足训练下,GPT2结构并没有比其他结构更差。

在1000次曝光设定下,架构并不重要:

  • LLaMA结构在小模型上略微不如GPT2,但是这个差距随着参数增大而缓解;
  • Mistral结构也能观察到类似现象;
  • 降低GPT2中MLP尺寸的1/4,甚至消除所有的MLP层都不影响容量比。这表明,不同于传统认知,注意力层也能够存储知识

这表明 2bit/param容量比在大多数典型语言模型结构中是一个相对普遍的规律

在100次曝光设置中:

  • 即使是更大的模型,LLaMA结构的容量比也比GPT2差1.3倍。Mistral也有类似的结果。
  • 降低GPT2中MLP尺寸的1/4,对容量比影响微不足道。
  • 移除MLP会降低容量比1.5倍以上。

​ 为了能够明确在100次曝光设定中,LLaMA结构为什么差于GPT2,逐步修改LLaMA结构至GPT2来确定关键的结构变化。

  • 对于大模型,将LLaMA结构中的gated MLP替换为标准MLP,显著提高了LLaMA的容量比。
  • 对于小型LLaMA模型,将其转换为GPT2Tokenizer是匹配GPT2效果的必要条件,尽管这不是主要问题。
  • 其他一些修改,例如将silu修改为gelu或者为LayerNorm添加可训练偏差,都不会显著影响容量比。

八、量化与Scaling Law

​ 模型训练和测试都使用16bit浮点数。在训练后使用int8/int4量化会有什么影响呢?

对16bit训练的语言模型进行量化:

  • int8对容量来说可以忽略不计;
  • int4使得容量减少2倍以上;

​ 对于峰值容量为2 bits/param,量化至int8不会对容量有影响。在高质量数据上进行1000次曝光能够达到的最优容量比为2 bits/param,那么可以得出结论:即使进一步训练也无法改善容量,但是量化可以。由于int8模型的容量比具有绝对上界 R ( F ) ≤ 8 R(F)\leq 8 R(F)8,因此

像GPT2这样的语言模型,能够超过绝对理论限制的1/4来存储知识。

​ LLM能够压缩知识至其参数空间中,从而实现2bit/param。那么这些知识是如何存储的呢?本文认为知识以不太冗余的方式存储在模型中。不太可能是MLP层单独存储知识,因为注意力层也能够存储知识。此外,当模型接近容量极限的时候,移除L层模型中的最后一层,余下的知识显著小于 1 − 1 L 1-\frac{1}{L} 1L1。这也就表明知识不是单独存储在独立的层,而是以复杂的方式进行存储。

九、MoE与Scaling Law

在这里插入图片描述

​ MoE模型在容量比方面会有所不同吗?对于一个MoE模型,令P表示模型中的总参数量,包括所有专家。由于其稀疏性,有效参数数量显著小于P。

​ 考虑一个GPT2模型,但是MLP层替换为32个专家,每个专家遵循 d → d → d d\rightarrow d\rightarrow d ddd的配置。这种设置总共会使用 64 d 2 64d^2 64d2的总参数,但是在推理时每个token仅使用 2 d 2 2d^2 2d2参数。考虑了具有 4 d 2 4d^2 4d2参数的注意力层,具有32个专家的MoE模型总参数量和有效参数量比值接近于 4 d 2 + 64 d 2 4 d 2 + 2 d 2 ≈ 11.3 \frac{4d^2+64d^2}{4d^2+2d^2}\approx 11.3 4d2+2d24d2+64d211.3

​ 那么在推理时,模型使用的参数少11.3倍,这对模型容量比的影响是11.3倍还是没有影响?

MoE在存储知识方面完全有效,尽管有稀疏性的约束,但能够利用所有的参数。

具体来说,考虑具有32个专家的GPT2-MoE模型。若计算其相对于总参数量的容量比,则有

  • 在1000次曝光设定中,峰值容量比降低1.3倍;
  • 在100次曝光设定中,峰值容量比降低1.5倍;

​ 即使是在topk=1且cap_factor=2最稀疏设定下,上述结果仍然成立。通常MoE模型要比相同参数量的稠密模型要差,这里表明这种退化并不是来自于模型的知识存储能力。

十、垃圾数据与Scaling Law

​ 并不是所有的数据对于获取知识都是有用的。低质量数据如何影响有用知识容量的scaling laws?为了研究这个问题,创建了一个混合数据集:

  • 1/8的tokens来自于 bioS(N) \text{bioS(N)} bioS(N),即有用数据;
  • 7/8的tokens来自于 bioS ( N ′ ) \text{bioS}(N') bioS(N) N ′ = 100 M N'=100M N=100M,即垃圾数据;

在该混合数据上训练模型,每100次曝光中确保包含有用数据,使得总训练时间比没有垃圾数据100次曝光多8倍。垃圾数据会降低容量比吗?

当训练数据7/8的token来自垃圾数据,transformer学习有用数据的速度显著降低:

  • 若在100次曝光设定中,相比于没有垃圾数据,容量比下降约20倍;
  • 即使在300/600/1000次曝光中,容量比仍然会下降3/1.5/1.3倍。

这强调了预训练数据质量的重要性:即使垃圾数据是完全随机的,其也会对模型的知识容量产生显著负面影响。

若7/8的训练token来自高度重复的数据,并不影响有用知识的学习速度。

若预训练数据质量差且难以提高,则有策略

当7/8的训练token来自于垃圾数据,在有用数据前添加特殊token能够显著改善容量比。

  • 100次曝光设定中,容量比仅下降2倍;
  • 300次曝光设定中,容量比没有下降;

进一步,为每个预训练数据添加域名。这将显著增加模型的知识能力,因为语言模型能够自动检测哪些领域包含高质量知识并优先进行学习

:即使垃圾数据是完全随机的,其也会对模型的知识容量产生显著负面影响。

若7/8的训练token来自高度重复的数据,并不影响有用知识的学习速度。

若预训练数据质量差且难以提高,则有策略

当7/8的训练token来自于垃圾数据,在有用数据前添加特殊token能够显著改善容量比。

  • 100次曝光设定中,容量比仅下降2倍;
  • 300次曝光设定中,容量比没有下降;

进一步,为每个预训练数据添加域名。这将显著增加模型的知识能力,因为语言模型能够自动检测哪些领域包含高质量知识并优先进行学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/685463.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

表格中附件的上传、显示以及文件下载#Vue3#后端接口数据

表格中附件的上传及显示#Vue3#后端接口数据 一、图片上传并显示在表格中实现效果&#xff1a; 表格中上传附件 代码&#xff1a; <!-- 文件的上传及显示 --> <template><!-- 演示地址 --><div class"dem-add"><!-- Search start -->…

生信学习入门常见错误可能的原因分类总结和求助指南

文件或目录找不到 这是常见问题&#xff0c;常见提示有 No such file or directory Error in file(file, “rt”)&#xff1a;无法打开链接 Fatal error: Unable to open file for reading (seq/WT1_1.fq) Fatal error: Unable to read from file (C:Program file/Git/usea…

I2C通信外设

I2C外设介绍 主机&#xff0c;就是拥有主动控制总线的权利。从机&#xff0c;只能在从机允许的情况下&#xff0c;才能控制总线。 多主机模型可分为固定多主机和可变多主机。固定多主机就是总线上&#xff0c;有2个或2个以上固定的主机&#xff0c;上面固定为主机&#xff0c;下…

【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅

个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 祝福语&#xff1a;愿你拥抱自由的风 目录 vim编辑器 Linux编译器&#xff1a;gcc/g使用 gcc和g的选项 编译过程 动静态库的链接 Linux项目的自动化构建 生成可执行程序 清理可执行程序 Linux调试器-gdb使用 git和git…

PHP函数大全之array_count_values()

array_count_values()函数是用于计算数组中每个值的出现次数的PHP函数&#xff0c;并返回一个关联数组&#xff0c;该数组的键表示原始数组中的唯一值&#xff0c;而键值表示该值在原始数组中的出现次数。 array_count_values()函数的一些注意事项&#xff1a; 该函数不区分大…

Python第二语言(四、Python数据容器)

目录 一、 数据容器&#xff08;list、tuple、str、map、dict&#xff09; 1. 数据容器概念 2. 列表list&#xff08; [] &#xff09; 2.1 定义方式 2.2 嵌套列表 2.3 list通过获取下标索引获取值 2.4 下标使用概念 2.5 list列表的使用&#xff08;列表的方法&#xff…

【ARM Cache 及 MMU 系列文章 6.2 -- ARMv8/v9 Cache 内部数据读取方法详细介绍】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Direct access to internal memoryL1 cache encodingsL1 Cache Data 寄存器Cache 数据读取代码实现Direct access to internal memory 在ARMv8架构中,缓存(Cache)是用来加速数据访…

德国西门子论未来质量管理 - 如何与明天相遇?

未来制造业的质量 -- 如何用软件方案满足质量要求 作者&#xff1a;Bill Butcher 翻译&编辑&#xff1a;数字化营销工兵 【前言】在Frost&Sullivan最近发表的一份白皮书中&#xff0c;他们讨论了制造业的质量投资。质量是制造过程的关键要素&#xff0c;但似乎比其他…

顶顶通呼叫中心中间件-同振和顺振配置步骤(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-同振和顺振配置步骤(mod_cti基于FreeSWITCH) 一、拨号方案配置 1、同振 win-ccadmin配置方法 1、点击拨号方案->2、在红框中输入同振->3、点击添加->4、根据图中配置&#xff0c;配置好了等待一分钟即可生效。 web-ccadmin配置方法 2、顺振…

搜维尔科技:「案例」Faceware电影中面部动画的演变历程

面部动画是电影中角色表演的一个重要方面&#xff0c;尤其是在严重依赖电子动画、化妆效果和动作捕捉系统的奇幻电影中。在《龙与地下城&#xff1a;盗贼荣誉》电影中&#xff0c;龙裔角色的面部动画是一个复杂的系统&#xff0c;使该生物在大屏幕上栩栩如生。该系统依赖于一种…

[leetcode hot 150]第一百三十七题,只出现一次的数字Ⅱ

题目&#xff1a; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 由于需要常数级空间和线性时间复杂度…

LINUX系统SSH远程管理 , SFTP远程文件传输,NFS共享存储服务

一、SSH 1.SSH&#xff1a;是一种安全通道协议&#xff0c;用来实现字符界面的远程登录&#xff0c;远程复制&#xff0c;远程文件传输&#xff1b;对通信双方的数据进行了加密&#xff1b;用户名和密码登录&#xff1b;密钥对认证方式可实现免密登录&#xff1b;ssh默认端口为…

Datetime,一个 Python 的时间掌控者

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 一个简单的库&#xff0c;也许能够开启我们的智慧之门&#xff0c; 一个普通的方法&#xff0c;也许能在危急时刻挽救我们于水深火热&#xff0c; 一个新颖的思维方式&#xff0c;也许能…

【html】如何用html+css写出一个漂亮的“众成教育”页面

先来看看效果图&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style>* {margin: 0;padding: 0;/* border: 2px solid #000; */}.con {width: 1000px;height: 840px…

了解Kubernetes-RKE2的PKI以及证书存放位置

一、什么是PKI&#xff1f; 简称&#xff1a;证书基础设施。 可以方便理解为当你的集群有Server,Client架构&#xff0c;那么为了安全加密之间的通信&#xff0c;则需要使用证书进行交互&#xff0c;那么利用PKI架构可以安全加密组件之间的通信。 二、Kubernetes的PKI架构什…

后端开发面经系列 -- 华为C++一面面经

HUAWEI – C一面面经 公众号&#xff1a;阿Q技术站 来源&#xff1a;https://www.nowcoder.com/feed/main/detail/b8113ff340d7444985b32a73c207c826 1、计网的协议分几层&#xff1f;分别叫什么&#xff1f; OSI七层模型 物理层 (Physical Layer): 负责物理设备之间的原始比…

深入了解静态IP:基础知识与原理(固定IP地址解析)

在今天的数字化世界中&#xff0c;互联网连接已成为我们日常生活和工作中不可或缺的一部分。而在网络连接中&#xff0c;IP地址起着至关重要的作用。其中&#xff0c;静态IP地址因其独特的性质而备受关注。本文将深入探讨静态IP的基础知识、与动态IP的区别、工作原理以及为什么…

Vue-插槽 Slots

文章目录 前言什么叫插槽简单插槽指定默认值多个插槽根据父级别名称指定区域显示(具名插槽)作用域插槽 前言 本篇文章不做过多的讲解与说明&#xff0c;只记录个人实验测试案例。 详见&#xff1a;vue 官方文档 插槽 slots 什么叫插槽 之前的博客中&#xff0c;父级组件可以…

MogoTemplate基本入门(Mongodb数据库基本增删改查)

nosql 因为没有标准的 sql&#xff0c;各有各的操作方式&#xff0c;所以学习成本比较高。实际应用也不会去命令行直接操作&#xff0c;而是用编程语言的 api。 所以我们可以简单了解一下Mongodb&#xff0c;然后用java的Api去操作就行了 没必要花很大功夫在命令行上操作执行…

《大道平渊》· 玖 —— 把高深的道理讲的通俗,这是一门艺术。

《平渊》 玖 "化繁为简, 点石成金。" 把高深的道理讲得通俗&#xff0c;这是一门艺术&#xff01; 讲述者能够站在群众的角度&#xff0c;用尽可能简单通俗的语言来解释复杂的概念。 讲述者需要对概念有深刻的理解&#xff0c;还要有灵活的表达能力。 群众愿意接受…