【自然語言處理】【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 vi?TL
  • 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 Da??TL,則塊的多樣性表示為 D = def ∣ D a ∣ ? T L D\overset{\text{def}}{=}|\mathcal{D}_a|\ll T^L D=defDa??TL

? 為了簡化表示,令屬性 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?=defN0??N)

  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,a?TL,從而形成多樣性集合 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 vi?Da?來生成取值 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?(N0?N?)+NKClog2?D+Klog2?(TLD?)Nlog2?NN0??+NKClog2?D+KDlog2?DTL?
N 0 \mathcal{N}_0 N0?中挑選N個名稱形成 N \mathcal{N} N的可能性包含 ( ∣ N 0 ∣ N ) \Big(\begin{matrix}|\mathcal{N}_0| \\ N \end{matrix}\Big) (N0?N?)種,需要的bit數為 log ? 2 ( ∣ N 0 ∣ N ) \log_2\Big(\begin{matrix}|\mathcal{N}_0| \\ N \end{matrix}\Big) log2?(N0?N?)

N個名稱,K個屬性,C個塊,每個塊有D種可能性,需要的bit數為 N K C log ? 2 D NKC\log_2 D NKClog2?D

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)?=defEnN??logPrR?[F?(W(Z),R)=n]=defEnN,aA??logPrR?[F1??(W(Z),n,a,R)=v1??(n,a)]=defEnN,aA??logPrR?[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} \\ log2?W?EZ?[Nlog2?elossname?(Z)N0??N?+NKlog2?elossvalue?(Z)DC?+KDlog2?De(1+o(1))lossvalue1?(Z)TL?D??o(KD)]=Nlog2?eEZ?lossname?(Z)N0??N?+NKlog2?eEZ?lossvalue?(Z)DC?+KDlog2?De(1+o(1))EZ?lossvalue1?(Z)TL?D??o(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) \\ log2?WNlog2?NN0??N?+NKClog2?D+KDlog2?DTL?D??o(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 log2?WNlog2?T時,任何模型 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)=defPNlog2?ep1?N0??+NKlog2?ep2?DC?+KDlog2?Dep3?TL??

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)=defPNlog2?NN0??+NKClog2?D+KDlog2?DTL??

? 必然滿足 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)?=defPNlog2?ep1?N0??+Nlog2?ep2?S0???=defPNlog2?Nn0??+Nlog2?S0????

忽略名稱,每個人包含 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} 1?L1?。這也就表明知識不是單獨存儲在獨立的層,而是以復雜的方式進行存儲。

九、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+64d2?11.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次曝光設定中,容量比沒有下降;

進一步,為每個預訓練數據添加域名。這將顯著增加模型的知識能力,因為語言模型能夠自動檢測哪些領域包含高質量知識并優先進行學習

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23402.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23402.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23402.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

R語言探索與分析17-股票題目

Value at Risk(VaR)是一種統計技術,用于量化投資組合在正常市場條件下可能遭受的最大潛在損失。它是風險管理和金融領域中一個非常重要的概念。VaR通常以貨幣單位表示,用于估計在給定的置信水平和特定時間范圍內,投資組…

OpenCV的小部件最基本范例

OpenCV也有與PYQT類似的小部件,例如滑塊slider。OpenCV可以用與PYQT類似的“信號與槽”方法,也可以在函數中直接查詢小部件的值。 import cv2 import numpy as npcv2.namedWindow(Show1) image np.zeros((100, 400, 3), np.uint8) # 創建一個空白內容…

JavaScript基礎知識4(數組、函數、參數、作用域、具名和匿名函數、邏輯運算符短路、轉化布爾類型)

JavaScript基礎知識4(數組、函數、參數、作用域、具名和匿名函數、邏輯運算符短路、轉化布爾類型) 數組數組是什么?數組的基本使用定義數組和數組單元訪問數組和數組索引數據單元值類型數組長度屬性 操作數組 函數聲明和調用聲明(…

(面試官問我微服務與naocs的使用我回答了如下,面試官讓我回去等通知)微服務拆分與nacos的配置使用

微服務架構 正常的小項目就是所有的功能集成在一個模塊中,這樣代碼之間不僅非常耦合,而且修改處理的時候也非常的麻煩,應對高并發時也不好處理,所以 我們可以使用微服務架構,對項目進行模塊之間的拆分,每一…

前端傳參數后端變量類型能夠接受到List卻無法接收到值

問題描述 今天寫了個接口,下圖所示 ReqVO里是這樣的: 然后前端去請求,從請求結果中看發現這里值是在的(有經驗的可能就看出來了otherInfo.id: 這樣以參數后端是接收不到的,但是當時沒發現) 傳進來后端…

維納運動的概念

維納運動(Wiener Process),也稱為標準布朗運動,是一種重要的隨機過程,廣泛應用于數學、物理學和金融學等領域。它是一個連續時間的隨機過程,具有一些特殊的性質,使其成為描述隨機動態系統的經典…

GAT1399協議分析(8)--批量圖像查詢

一、請求消息定義 視頻圖像包含視頻片段、 圖像、 文件、 人員、 人臉、 機動車、 非機動車、 物品、 場景和視頻案事件、 視頻圖像標簽等對象 在消息體中,可以包含其中一種類,加上Data字段即可。 ImageInfo對象 二、請求消息實例 wireshark 抓包實例 請求: 文本化: /V…

制造執行MES系統在光伏行業的應用

全球對可再生能源的需求不斷增長,光伏能源作為一種清潔、可持續的能源形式,已經在廣泛應用中受到了廣泛關注。為滿足工業領域的光伏能源需求,光伏制造執行系統(MES)作為一種集成化的技術解決方案,提供了更高效、更可靠的解決方案。…

WPS的JSA算國產編程語言,IDE,腳本工具嗎?javascript代替VBA

現在wps用javascript代替VBA,應該算很成功了吧。 如果可以獨立出來變成一個腳本語言,簡單的IDE(本身也有類似VBA,不要寄宿在WPS里面運行,這樣就可以變成VBS一樣執行腳本了,用來開發按鍵精靈,LUA一樣的腳本很不錯 以下…

Activity->Activity中動態添加Fragment->Fragment回退棧BackStack

Fragment回退棧 Fragment回退棧用于管理Fragment的導航歷史(添加、刪除、替換)。每個Activity都有一個包含其所有Fragment的FragmentManager,調用其addToBackStack方法時,這個事務就會被添加到FragmentManager的回退棧中當用戶按下返回鍵時,…

MySQL報ERROR 2002 (HY000)解決

今天在連接客戶服務器時MySQL的時候報: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql/mysql.sock’ (2) [rootXXX ~]# mysql -uroot -p Enter password: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket…

rman恢復后,少部分數據文件狀態為MISSING000**

客戶有套一體機,每天晚上21點開始做rman完全備份,大約第2天上午9點多完成備份,rman備份保留策略保留一份完全備份 6月1日晚21點自動發起備份,6月2日上午10點15分完成備份,并生成了一個控制文件備份 c-4063271871-2024…

前端圖片在切換暗黑模式時太亮該怎么辦?

通過css中的filter屬性來實現,進行圖片的色系反轉、亮度、對比度調整等 1、invert 反轉輸入圖像,值為 100% 則圖像完全反轉,值為 0% 則圖像無變化 filter: invert(1); 2、blur 給元素應用高斯模糊效果。 filter: blur(5px); 3、brightnes…

如何解決網絡問題?

組織和 IT 管理員盡其所能完善他們的網絡,但是,不同程度的網絡問題仍然可能出現,這些網絡問題需要立即響應和解決,如果這些問題在不合理的時間內得不到解決,網絡和組織的損害可能會付出高昂的代價。這就是為什么 IT 管…

【漏洞復現】銳捷校園網自助服務系統 login_judge.jsf 任意文件讀取漏洞(XVE-2024-2116)

0x01 產品簡介 銳捷校園網自助服務系統是銳捷網絡推出的一款面向學校和校園網絡管理的解決方案。該系統旨在提供便捷的網絡自助服務,使學生、教職員工和網絡管理員能夠更好地管理和利用校園網絡資源。 0x02 漏洞概述 校園網自助服務系統/selfservice/selfservice…

css移動端開發

1.視口 視口標簽 視口元標簽&#xff08;Viewport Meta Tag&#xff09;用于控制網頁在移動設備上的視口行為&#xff0c;確保頁面能夠正確縮放和調整。通常在HTML的<head>部分添加如下代碼&#xff1a; <meta name"viewport" content"widthdevice-…

《大道平淵》· 玖 —— 把高深的道理講的通俗,這是一門藝術。

《平淵》 玖 "化繁為簡, 點石成金。" 把高深的道理講得通俗&#xff0c;這是一門藝術&#xff01; 講述者能夠站在群眾的角度&#xff0c;用盡可能簡單通俗的語言來解釋復雜的概念。 講述者需要對概念有深刻的理解&#xff0c;還要有靈活的表達能力。 群眾愿意接受…

從當當網批量獲取圖書信息

爬取當當網圖書數據并保存到本地&#xff0c;使用request、lxml的etree模塊、pandas保存數據為excel到本地。 爬取網頁的url為&#xff1a; http://search.dangdang.com/?key{}&actinput&page_index{} 其中key為搜索關鍵字&#xff0c;page_index為頁碼。 爬取的數據…

15- Redis 中的 整數集合 數據結構

整數集合是 Set 對象的底層實現之一。當一個 Set 對象只包含整數值元素&#xff0c;并且元素數量不大時&#xff0c;就會使用整數集合這個數據結構作為底層實現。 1. 整數集合結構設計 整數集合本質上是一塊連續內存空間&#xff0c;它的結構定義如下&#xff1a; typedef s…

Chrome DevTools 使用攻略

Chrome DevTools是谷歌瀏覽器提供的一套強大的開發工具&#xff0c;對于前端開發人員來說是不可或缺的利器。下面將從多個方面介紹Chrome DevTools的使用攻略&#xff1a; 一、啟動方式 通過快捷鍵&#xff1a; 在Windows/Linux上&#xff0c;按下 F12、Ctrl Shift I 或 C…