新智元報道
編輯:KingHZ
【新智元導讀】原生1bit大模型BitNet b1.58 2B4T再升級!微軟公布BitNet v2,性能幾乎0損失,而占用內存和計算成本顯著降低。
還沒過幾天,原班人馬帶著第二代BitNet v2來了!
這次性能幾乎0損失,但占用內存和計算成本顯著降低!
論文鏈接:https://arxiv.org/abs/2504.18415
先前的開創性研究,如BitNet b1.58,已經證明:
即使將權重量化到1.58位,也能在極大降低推理成本(延遲、內存占用、吞吐量、能耗)的同時,保持與全精度模型相當的性能。
然而,激活值異常點讓1比特大語言模型部署變得復雜。
BitNet v2框架,首次實現對1比特LLMs的原生4比特激活值量化。
針對注意力機制和前饋網絡中激活值的異常分布問題,在激活值量化前,H-BitLinear模塊施加在線Hadamard變換(Hadamard transformation)。
圖1上半部分:BitNet v2整體架構以及H-BitLinear模塊的概覽
這種變換能將尖銳的激活值分布轉化為更接近高斯形態的平滑分布,從而適配低比特表示。
原生4比特計算
得益于下一代GPU(如GB200)等硬件的進步,深度學習領域正迅速采用量化和低比特推理技術。
新硬件原生支持4比特計算,為大規模模型帶來顯著的效率提升。
計算機中32、16、8比特浮點數不同的表示方法
然而,盡管BitNet b1.58將權重量化為1.58比特,緩解了內存帶寬瓶頸,但它的激活值仍保持8比特精度。
模型無法充分利用新硬件的4比特計算能力。
實現更低比特寬度的激活值對于最大化硬件利用率至關重要,尤其是在批處理推理場景中,高效的內核設計尤為重要。
關鍵問題在于LLM內部激活值的不均勻分布。
雖然注意力機制和前饋網絡(FFN)層的輸入通常呈現類高斯分布,適合量化,但中間狀態(最終投影前的輸出)往往包含顯著的離群值,阻礙了激進的低比特量化。
圖1下半部分:注意力層中輸出投影Wo和前饋網絡中下投影Wdown的激活分布情況
對輸入采用4比特量化和對中間狀態使用8比特稀疏化,可以解決這一問題。
盡管性能損失較小,但稀疏化并不適合批處理推理場景的最大吞吐量需求,因為硬件更傾向于密集計算以提升效率。
為彌合這一差距并充分發揮1.58比特LLM在4比特計算中的潛力,研究團隊提出了BitNet v2框架,實現了模型全流程的原生4比特激活值,框架核心創新是H-BitLinear。
BitNet v2:原生4位激活
BitNet v2模型基于類似LLaMA的組件構建,包括RMS歸一化、SwishGLU激活函數,并完全移除了偏置項(bias)。
BitNet v2的整體架構
與先前的BitNet相比,BitNet v2在注意力模塊的輸出投影Wo和前饋網絡(FFN)的下投影Wdown中,引入了H-BitLinear模塊,以專門處理中間狀態中出現的異常通道(outlier channels)。
BitNet v2的訓練流程分為兩階段:
首先,從零開始使用1.58位權重和8位激活(INT8)進行預訓練;
隨后,在保持權重量化不變的基礎上,將所有線性層(除輸入/輸出embedding外)進一步微調為4位激活(INT4)。
H-BitLinear模塊
BitNet v2采用逐張量平均絕對值量化(per-tensor absmean)策略對權重進行三值量化(也就是{-1, 0, 1}):
關于低比特激活的問題,已有研究指出:
注意力層和前饋網絡中前置線性變換的輸入激活,通常呈現高斯分布,較適合量化;
而注意力輸出(Wo)和FFN下投影(Wdown)的中間狀態激活,則往往包含大量離群通道(outlier channels),且大部分值集中于0附近,嚴重影響低位量化精度。
H-BitLinear可以取代注意力機制輸出投影和FFN下投影的標準線性層。
H-BitLinear在激活量化前應用在線哈達瑪變換),把中間狀態中尖銳、易產生離群值的分布重塑為更易處理的類高斯分布,顯著減少1.58比特模型中離群值的影響。
Hadamard變換定義如下:
其中的矩陣乘法采用快速Hadamard變換算法(Fast Hadamard Transform,FHT),其計算復雜度為O(nlogn)。
Hadamard矩陣是一類特殊的正交矩陣。
它的特點是每個元素只能是+1或-1,并且每行(或每列)之間的內積為0,表示彼此正交。
阿達馬矩陣的命名來自于法國數學家Jacques Solomon Hadamard。
法國數學家:Jacques Solomon Hadamard
如圖2和圖3所示,引入Hadamard變換后,中間狀態的分布更加接近高斯形態。
這顯著減少了離群值數量,使其更適合進行4位激活量化(INT4)。
圖2:在使用8位激活時,BitNet b1.58與BitNet v2的激活分布對比。
圖3:采用8比特激活值時,BitNet b1.58與BitNet v2在前饋網絡Wdown層和注意力機制Wo層的激活值分布對比。
對于8位激活(INT8)和4位激活(INT4)量化策略,分別采用下列策略:
綜上,H-BitLinear層的整體矩陣運算可表示為:
其中,LN(?)表示層歸一化(LayerNorm)。
研究團隊從頭開始使用8比特激活值訓練BitNet v2,與BitNet b1.58相比性能損失微乎其微。
隨后,通過少量數據高效微調,模型即可適配原生4比特激活值。
實驗結果
實驗表明,4比特BitNet v2變體在性能上與BitNet a4.8相當,但在批處理推理場景中提供更高的計算效率。
此外,與后訓練量化方法SpinQuant和QuaRot,則幾乎全面領先。
比BitNet b1.58更快
BitNet V2與BitNet b1.58比,性能幾乎0損失。
BitNet v2及其基線模型的詳細實驗結果,如表1所示。
在注意力機制和前饋網絡(FFN)層的量化前引入哈達瑪變換后,模型的困惑度(perplexity)下降極小。
對于8比特激活值,BitNet v2相較于BitNet b1.58表現出更高的性能,在1.3B、3B和7B模型規模上,終端任務的平均準確率分別提升了0.16%、0.49%和0.61%。
此外,BitNet v2支持所有線性層的原生4比特激活值,從而顯著提升了批處理推理的效率。
在使用INT4(4比特整數)激活值時,BitNet v2的困惑度與BitNet a4.8相當,同時在3B和7B模型的下游任務中展現出更優的性能。
表1:BitNet v2、BitNet a4.8與BitNet b1.58在終端任務上的困惑度及性能表現
表2和表3分別總結了BitNet v2(8比特激活,a8)和BitNet v2(4比特激活,a4)在低比特注意力機制下的詳細結果。
研究人員對QKV狀態采用了RoPE(旋轉位置編碼)后的量化方法。
QKV頭通過absmax函數直接量化為無符號整數,無需任何校準數據集。
如表2和表3所示,采用3比特KV緩存的BitNet v2在3B和7B模型上的準確率與使用全精度KV緩存的模型相當。
表2:BitNet v2在終端任務上的零樣本準確率,其中激活使用8位,而QKV狀態的位寬則有所不同。
表3:BitNet v2在終端任務上的零樣本準確率,其中激活使用4位,而QKV狀態的位寬則有所不同。
與其他后訓練量化方法的對比
BitNet v2 (a4)與主流的后訓練量化基線方法進行了對比,包括SpinQuant和QuaRot,在1.3B參數規模的模型上進行了評測。
QuaRot通過引入隨機Hadamard變換以緩解特征離群問題,SpinQuant則使用了可學習的旋轉矩陣(rotary matrix)。
隨后,這兩種方法分別采用GPTQ和absmax策略,將權重和激活量化到4位。
由于BitNet b1.58沿用訓練時使用的absmean函數進行權重量化,而非使用GPTQ。
在各項指標上,BitNet v2穩拿第一,具體結果見表4。
表4:BitNet v2、QuaRot和SpinQuant在各項下游任務上的困惑度(Perplexity)與零樣本準確率(Zero-shot Accuracy)對比
另外,在Hadamard變換對不同模型尺寸(1.3B和3B)影響的實驗(見表5)中,研究者發現:
沒有旋轉處理(No rotation)時,模型直接發散,無法正常訓練;
引入Hadamard旋轉(無論是權重+激活,還是僅激活),都能顯著穩定低位訓練,并提高最終準確率。
表5:不同規模下H-BitLinear的Hadamard變換的消融研究。
模型訓練、消融實驗等其他內容和細節,請參閱原文。
參考資料:
https://arxiv.org/abs/2504.18415
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.