AIxiv專欄是機器之心釋出學術、技術內容的欄目。過去數年,機器之心AIxiv專欄接收報導了2000多篇內容,覆蓋全球各大高校與企業的頂級實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或者聯絡報導。投稿郵箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
本文來自騰訊 AI Lab,介紹了一套針對於低位元量化的 scaling laws。
論文標題:Low-Bit Quantization Favors Undertrained LLMs: Scaling Laws for Quantized LLMs with 100T Training Tokens 論文連結:https://arxiv.org/abs/2411.17691
低位元量化(low-bit quantization)和低位元大語言模型(low-bit LLM)近期受到了廣泛的關注,因為有一些研究發現,它們能夠以更小的模型規模、更低的記憶體佔用和更少的計算資源,取得與 fp16 或 bf16 精度相當的效能表現。這一發現讓低位元語言模型一度被認為是實現模型高效化的一個非常有前景的方向。
然而,這一觀點受到了騰訊 AI Lab 的挑戰。他們的研究發現,低位元量化只有在未充分訓練的 LLM(訓練量通常在 1000 億 tokens 以內,基本不會超過 5000 億 tokens:這種 setting 在當前的學術界研究論文中非常常見)上才能取得與 fp16/bf16 相當的效能表現。隨著訓練的深入和模型逐漸被充分訓練,低位元量化與 fp16/bf16 之間的效能差距會顯著擴大。
為了更系統地研究這一現象,研究人員量化了超過 1500 個不同大小以及不同訓練程度的開源 LLM 檢查點。試圖觀察並建模量化所導致的效能退化(QiD,quantization-induced degradation,即量化後模型與原始 fp16/bf16 模型的效能差距,記作∆qLoss)
最終推演出了一套針對於低位元量化的 scaling laws。透過這套 scaling laws,可以預測出當 7B, 70B 以及 405B 的模型在訓練規模達到 100 萬億 tokens 時低位元量化時損失(如下圖)。
根據研究人員的描述,這個工作最初是源於 2 個觀察(如下圖):a) model size 固定的情況下,training tokens 越多,QiD 就會變得越大;b) training token 數固定的情況下,model size 越小,QiD 就會變得越大。考慮到不管是減小 model size 還是增加 training tokens 都會有利於模型更充分的訓練,因此研究人員推測在充分訓練的模型上進行低位元量化會造成較為嚴重的 degradation,反之在未充分訓練的模型上則不會有太多 degradation.
為了更好地驗證這一推測,研究人員選擇了 Pythia 系列開源語言模型進行實驗,因為 Pythia 系列模型不僅公開了不同尺寸的 LLM,而且還開源了其中間訓練過程的檢查點。研究人員選取了 160M, 410M, 1B, 2.8B, 6.9B 以及 12B 這 6 種不同尺寸的 LLM。對於每種尺寸的 LLM,又選取了其訓練過程中間 20 個檢查點。對這 120 個檢查點,研究人員用 GPTQ 對它們分別進行了 2-bit, 3-bit, 4-bit 量化,來觀察在不同檢查點上量化所導致的效能退化(即 QiD)。
透過分別對於 training tokens, model size 以及量化位元數分別的建模分析(分別建模的結果這裡就不詳述了,感興趣的可以閱讀論文),最終得到一個統一的 scaling laws:
這裡 N, D, P 分別表示模型引數量(除掉 embedding 部分),training tokens 數以及精度(位元數)。α, β 和 γ 分別表示它們對應的指數(α, β, γ 均為正數),k 為聯合係數。根據這個 scaling law 的公式,我們不難得到當其它變數固定時:
N 越大(模型越大),QiD 越小,說明越大的模型,量化掉點越小; D 越大(訓練資料量越大),QiD 越大,說明訓練越多的模型,量化掉點越多; P 越大(精度越高),QiD 越小,說明量化的精度(位元數)越高,量化掉點越小。
研究人員根據上述函式形式擬合觀測到的資料點,得到在 Pythia 系列 LLM 的低位元量化的 scaling law 公式:
研究人員根據這個公式繪製出曲線,發現能夠很好地擬合觀測到的資料點:
另外,研究人員對不同測試資料,不同量化方法以及不同的基礎模型都進行了評測,發現所得到的 scaling laws 的函式形式大機率是普適成立的:
如下圖所示,我們現在知道了充分訓練的 LLMs 會遭受更大的 QiD,而訓練不足的 LLMs 則更容易實現近乎無損的低位元量化。那這個現象是怎麼造成的呢?
研究人員從訓練時權重變化幅度這一角度給出了一些見解:未經充分訓練的 LLMs 往往會經歷較大幅度的權重變化,在訓練過程中的這種大起大落式的變化會讓模型對 weight variation 變得更為魯棒 —— 即便進行了低位元量化,量化所造成的偏離往往也要小於它在訓練過程中經歷的偏移;而充分訓練的 LLM 在訓練過程中的權重變化就會非常小了,往往在小數點後幾位變化,這個時候模型如果遭度更大幅度的權重變化 (如低位元量化帶來的權重變化),就非常容易造成嚴重的 degradation.
除此之外,研究人員還開創性地將 QiD 視為一個衡量 LLM 是否充分訓練的指標。如果低位元量化的 QiD≈0,那說明這個 LLM 還遠遠沒有充分訓練,還沒有將引數高精度的潛力發揮出來。那麼根據前文所得到的 scaling laws,就可以推算出不同尺寸的 LLM 達到指定 QiD 所需要的 training tokens 數,如下表:
我們以 4-bit 量化造成 QiD=0.2 為例,7B 模型達到這個程度需要近 17.3 萬億 tokens,而 405b 模型則需要將近 50 萬億 tokens. 考慮到近 4 年模型的訓練資料量增長了近 50 倍,可以預見未來模型的訓練量會更大(例如,未來幾年可能會達到 100 萬億 token)。隨著模型訓練變得更加充分,低位元量化在未來的應用前景則會變得並不明朗。
除此之外,研究人員也對於原生的(native)低位元 LLM(例如BitNet-b1.58)進行了評測,發現其規律與低位元量化近乎一致,但相比於量化,原生的低位元LLM可能會在更後期才會明顯暴露這個問題——因為原生的低精度訓練能夠讓模型一直保持在低精度權重下工作的能力。儘管有一些研究聲稱原生的低位元LLM可以媲美fp16/bf16精度下的表現,但這些研究普遍都是在未充分語言模型上得到的結果從而推出的結論,研究人員認為在充分訓練的情況下進行比較的話,低位元LLM也將很難匹敵其在fp16/bf16精度下對應的模型。
考慮到學術界算力的限制,在未充分訓練的 LLM 上進行實驗、評測,從而得到一些結論,並試圖將這些結論推廣為普遍適用,這一現象已經越來越普遍,這也引發了研究人員的擔擾,因為在未充分訓練的 LLM 上得到的結論並不一定能夠普遍適用。研究人員也希望社群能重新審視那些在未充分訓練的 LLM 上得到的結論,從而引出更深入的思考與討論。
最後的最後,研究人員用了一組插畫來形象地概括了一下他們的發現:
1. 如果把模型類比成水瓶,那水瓶裡的裝水量就可以反映模型的訓練充分程度。小模型更容易被裝滿,大模型則需要更多的水才能裝滿。
2. 量化就相當於用手去擠壓瓶身。對於裝滿水的瓶子,水會溢位(performance degradation);而沒裝滿水的瓶子則不會有水溢位。
3.量化的精度可以類比成擠壓瓶身的力量大小。越低位元的量化擠壓得越狠,越容易造成大量的水被擠出(significant degradation)。