讓大模型“瘦身”90%!清華&哈工大提出極限壓縮方案:1bit量化,能力同時(shí)保留83%
對(duì)大模型進(jìn)行量化、剪枝等壓縮操作,是部署時(shí)最常見不過(guò)的一環(huán)了。
不過(guò),這個(gè)極限究竟有多大?
清華大學(xué)和哈工大的一項(xiàng)聯(lián)合研究給出的答案是:
90%。
他們提出了大模型1bit極限壓縮框架OneBit,首次實(shí)現(xiàn)大模型權(quán)重壓縮超越90%并保留大部分(83%)能力。
可以說(shuō),玩兒的就是“既要也要”~
一起來(lái)看看。
大模型1bit量化方法來(lái)了
從剪枝、量化,到知識(shí)蒸餾、權(quán)重低秩分解,大模型已經(jīng)可以實(shí)現(xiàn)壓縮四分之一權(quán)重而幾乎無(wú)損。
權(quán)重量化通常是指把大模型的參數(shù)轉(zhuǎn)化為低位寬的表示,可以通過(guò)對(duì)充分訓(xùn)練后的模型進(jìn)行轉(zhuǎn)換(PTQ)或在訓(xùn)練中引入量化步驟(QAT)來(lái)實(shí)現(xiàn)。
然而,現(xiàn)有量化方法在低于3bit時(shí)面臨嚴(yán)重的性能損失,這主要是由于:
- 現(xiàn)有的參數(shù)低位寬表示方法在1bit時(shí)存在嚴(yán)重的精度損失?;赗ound-To-Nearest方法的參數(shù)以1bit表示時(shí),其轉(zhuǎn)換的縮放系數(shù)s和零點(diǎn)z會(huì)失去實(shí)際意義。
- 現(xiàn)有的1bit模型結(jié)構(gòu)沒(méi)有充分考慮到浮點(diǎn)精度的重要性。浮點(diǎn)參數(shù)的缺失可能影響模型計(jì)算過(guò)程的穩(wěn)定性,嚴(yán)重降低其本身的學(xué)習(xí)能力。
為了克服1bit超低位寬量化的阻礙,作者提出一種全新的1bit模型框架:OneBit,它包括全新的1bit線性層結(jié)構(gòu)、基于SVID的參數(shù)初始化方法和基于量化感知知識(shí)蒸餾的深度遷移學(xué)習(xí)。
這種新的1bit模型量化方法能夠以極大的壓縮幅度、超低的空間占用和有限的計(jì)算成本,保留原模型絕大部分的能力。這對(duì)于實(shí)現(xiàn)大模型在PC端甚至智能手機(jī)上的部署意義非凡。
整體框架
OneBit框架總體上可以包括:全新設(shè)計(jì)的1bit模型結(jié)構(gòu)、基于原模型初始化量化模型參數(shù)的方法以及基于知識(shí)蒸餾的深度能力遷移。
這種全新設(shè)計(jì)的1bit模型結(jié)構(gòu)能夠有效克服以往量化工作在1bit量化時(shí)嚴(yán)重的精度損失問(wèn)題,并且在訓(xùn)練、遷移過(guò)程中表現(xiàn)出出色的穩(wěn)定性。
量化模型的初始化方法能為知識(shí)蒸餾設(shè)置更好的起點(diǎn),加速收斂的同時(shí)獲得更加的能力遷移效果。
1、1bit模型結(jié)構(gòu)
1bit要求每個(gè)權(quán)重值只能用1bit表示,所以最多只有兩種可能的狀態(tài)。
作者選用±1作為這兩種狀態(tài),好處就是,它代表了數(shù)字系統(tǒng)中的兩種符號(hào)、功能更加完備,同時(shí)可以通過(guò)Sign(·)函數(shù)方便地獲得。
作者的1bit模型結(jié)構(gòu)是通過(guò)把FP16模型的所有線性層(嵌入層和lm_head除外)替換為1bit線性層實(shí)現(xiàn)的。
這里的1bit線性層除通過(guò)Sign(·)函數(shù)獲得的1bit權(quán)重之外,還包括另外兩個(gè)關(guān)鍵組件—FP16精度的值向量。
△FP16線性層與OneBit線性層的對(duì)比
這種設(shè)計(jì)不僅保持了原始權(quán)重矩陣的高秩,而且通過(guò)值向量提供了必要的浮點(diǎn)精度,對(duì)保證穩(wěn)定且高質(zhì)量的學(xué)習(xí)過(guò)程很有意義。
從上圖可以看出,只有值向量g和h保持FP16格式,而權(quán)重矩陣則全部由±1組成。
作者通過(guò)一個(gè)例子可以一觀OneBit的壓縮能力。
假設(shè)壓縮一個(gè)40964096的FP16線性層,OneBit需要一個(gè)40964096的1bit矩陣和兩個(gè)4096*1的FP16值向量。
這里面總的位數(shù)為16,908,288,總的參數(shù)個(gè)數(shù)為16,785,408,平均每個(gè)參數(shù)占用僅僅約1.0073 bit。
這樣的壓縮幅度是空前的,可以說(shuō)是真正的1bit LLM。
2、參數(shù)初始化和遷移學(xué)習(xí)
為了利用充分訓(xùn)練好的原模型更好地初始化量化后的模型,作者提出一種新的參數(shù)矩陣分解方法,稱為“值-符號(hào)獨(dú)立的矩陣分解(SVID)”。
這一矩陣分解方法把符號(hào)和絕對(duì)值分開,并把絕對(duì)值進(jìn)行秩-1近似,其逼近原矩陣參數(shù)的方式可以表示成:
秩-1近似可以通過(guò)常用矩陣分解方法實(shí)現(xiàn),例如奇異值分解(SVD)和非負(fù)矩陣分解(NMF)。
作者在數(shù)學(xué)上給出,這種SVID方法可以通過(guò)交換運(yùn)算次序來(lái)和1bit模型框架相匹配,進(jìn)而實(shí)現(xiàn)參數(shù)初始化。
此外,符號(hào)矩陣在分解過(guò)程中對(duì)近似原矩陣的貢獻(xiàn)也被證明,詳情見論文。
作者認(rèn)為,解決大模型超低位寬量化的有效途徑可能是量化感知訓(xùn)練QAT。
因此,在SVID給出量化模型的參數(shù)起點(diǎn)后,作者把原模型作為教師模型并通過(guò)知識(shí)蒸餾從中學(xué)習(xí)。
具體而言,學(xué)生模型主要接受教師模型的logits和hidden state的指導(dǎo)。
訓(xùn)練時(shí),值向量和參數(shù)矩陣的值會(huì)被更新,而在部署時(shí),則可以直接使用量化后的1bit參數(shù)矩陣進(jìn)行計(jì)算。
模型越大,效果越好
作者選擇的基線是FP16 Transformer、GPTQ、LLM-QAT和OmniQuant。
后三個(gè)都屬于量化領(lǐng)域中經(jīng)典的強(qiáng)基線,特別是OmniQuant是自作者之前最強(qiáng)的2bit量化方法。
由于目前還沒(méi)有1bit權(quán)重量化的研究,作者只對(duì)OneBit框架使用1bit權(quán)重量化,而對(duì)其他方法采取2bit量化設(shè)置。
對(duì)于蒸餾數(shù)據(jù),作者仿照LLM-QAT利用教師模型自采樣的方式產(chǎn)生數(shù)據(jù)。
作者從1.3B到13B不同大小、OPT和LLaMA-1/2不同系列的模型來(lái)證明OneBit的有效性。在評(píng)價(jià)指標(biāo)上,使用驗(yàn)證集的困惑度和常識(shí)推理的Zero-shot準(zhǔn)確度。詳情見論文。
上表展示了OneBit相比于其他方法在1bit量化時(shí)的優(yōu)勢(shì)。值得注意的是,模型越大時(shí),OneBit效果往往越好。
隨著模型規(guī)模增大,OneBit量化模型降低的困惑度比FP16模型降低的困惑度要多。
以下是幾種不同小模型的常識(shí)推理、世界知識(shí)和空間占用情況:
作者還比較了幾種不同類型小模型的大小和實(shí)際能力。
作者發(fā)現(xiàn),盡管OneBit-7B平均位寬最小、占用的空間最小、訓(xùn)練的步數(shù)也相對(duì)少,但它在常識(shí)推理能力上不遜于其他模型。
同時(shí)作者也發(fā)現(xiàn),OneBit-7B模型在社會(huì)科學(xué)領(lǐng)域出現(xiàn)較嚴(yán)重的知識(shí)遺忘。
△FP16線性層與OneBit線性層的對(duì)比一個(gè)OneBit-7B指令微調(diào)后的文本生成例子
上圖還展示了一個(gè)OneBit-7B指令微調(diào)后的文本生成例子??梢?,OneBit-7B有效地受到了SFT階段的能力增益,可以比較流暢地生成文本,盡管總參數(shù)只有1.3GB(與FP16的0.6B模型相當(dāng))??偟膩?lái)說(shuō),OneBit-7B展示出了其實(shí)際應(yīng)用價(jià)值。
分析與討論
作者展示了OneBit對(duì)不同規(guī)模LLaMA模型的壓縮比,可以看出,OneBit對(duì)模型的壓縮比均超過(guò)驚人的90%。
特別是,隨著模型增大,OneBit的壓縮比越高。
這顯示出作者方法在更大模型上的優(yōu)勢(shì):以更高的壓縮比獲得更大的邊際收益(困惑度)。此外,作者的方法在大小和性能之間做到了很好的權(quán)衡。
1bit量化模型在計(jì)算上具有優(yōu)勢(shì),意義十分重大。參數(shù)的純二進(jìn)制表示,不但可以節(jié)省大量的空間,還能降低矩陣乘法對(duì)硬件的要求。
高精度模型中矩陣乘法的元素相乘可以被變成高效的位運(yùn)算,只需位賦值和加法就可以完成矩陣乘積,非常有應(yīng)用前景。
此外,作者的方法在訓(xùn)練過(guò)程中保持了出色的穩(wěn)定學(xué)習(xí)能力。
事實(shí)上,二值網(wǎng)絡(luò)訓(xùn)練的不穩(wěn)定問(wèn)題、對(duì)超參數(shù)的敏感性和收斂困難一直受到研究人員關(guān)注。
作者分析了高精度值向量在促進(jìn)模型穩(wěn)定收斂過(guò)程中的重要意義。
有前人工作提出過(guò)1bit模型架構(gòu)并用于從頭訓(xùn)練模型(如BitNet[1]),但它對(duì)超參數(shù)敏感并且難以從充分訓(xùn)練的高精度模型中遷移學(xué)習(xí)。作者也嘗試了BitNet在知識(shí)蒸餾中的表現(xiàn),發(fā)現(xiàn)其訓(xùn)練還不夠穩(wěn)定。
總結(jié)
作者提出了一種用于1bit權(quán)重量化的模型結(jié)構(gòu)和相應(yīng)的參數(shù)初始化方法。
在各種大小和系列的模型上進(jìn)行的廣泛實(shí)驗(yàn)表明,OneBit在代表性的強(qiáng)基線上具有明顯的優(yōu)勢(shì),并實(shí)現(xiàn)了模型大小與性能之間的良好折中。
此外,作者進(jìn)一步分析了這種極低比特量化模型的能力和前景,并為未來(lái)的研究提供了指導(dǎo)。
論文地址: https://arxiv.org/pdf/2402.11295.pdf