今天小編分享的科學經驗:微軟1bit LLM新研究:原生4bit激活值量化,可充分利用新一代GPU對4bit計算的原生支持,歡迎閱讀。
微軟又有 "1 bit LLM" 新成果了——
發布BitNet v2框架,為 1 bit LLM 實現了原生 4 bit 激活值量化,由此可充分利用新一代 GPU(如 GB200)對 4 bit 計算的原生支持能力。
同時減少内存帶寬 & 提升計算效率。
之前,,把 LLM 的權重量化到 1.58-bit,顯著降低延遲、内存占用等推理成本。
然鵝 BitNet b1.58激活值還是 8-bit,這就導致沒辦法充分利用新一代硬體的 4 bit 計算能力,計算環節出現效率瓶頸。
還有個問題也很關鍵:
研究發現注意力層和前饋網絡層的輸入激活值分布還比較接近高斯分布,量化起來相對容易。
但中間狀态的激活值有很多異常值,這就給低 bit 量化帶來了很大阻礙。
此前的 BitNet a4.8 相關研究,嘗試過用 4 bit 量化輸入,8 bit 稀疏化處理中間狀态。
這種方法雖然性能損失不大,可稀疏化在批量推理場景裡不太适合用來提高吞吐量,因為硬體更适合密集計算。
這次,團隊最新推出了 BitNet v2,通過引入H-BitLinear 模塊,該模塊在激活量化前應用 Hadamard 變換。
研究中能有效将注意力層和前饋網絡中尖銳的激活分布重塑為更接近高斯分布的形式,顯著減少異常通道,使 4 bit 激活量化成為可能。
下面來看看究竟是怎麼做的。
引入 H-BitLinear 模塊
對于權重量化,根據團隊此前研究,使用 per-tensor absmean 函數将權重量化為三元值 {-1, 0, 1}:
對于低 bit 激活,團隊引入了 H-BitLinear。
H-BitLinear 被用于注意力層的權重矩陣 Wo 和前饋網絡(FFN)層的 Wdown 中,這兩處正是激活值異常值最為集中的位置。
該模塊在激活值量化前應用 Hadamard 變換,滿足以下條件:
通過 Hadamard 變換,中間狀态分布更接近高斯分布,顯著減少了異常值數量,使其更适合 INT4 量化。
對于 8 bit 和 4 bit 激活,分别采用 per-token absmax 和 absmean 函數,激活量化可以表示為:
最終,H-BitLinear 的矩陣乘法運算可形式化表示為:
其中 LN 表示層歸一化(layer normalization)操作。
另外,訓練策略方面,研究人員用了 STE 來近似梯度,還采用混合精度訓練更新參數。在反向傳播的時候,會繞過量化裡那些不可微函數,并且利用 Hadamard 變換矩陣的正交性,對梯度也進行變換。
團隊還表示,4 bit 激活的 BitNet v2 可以從 8 bit 激活的版本接着訓練,用少量數據微調就行,性能損失基本可以忽略不計,優化器的狀态還能接着用。
4bit 激活版本相比 8bit 激活性能幾乎不降
實驗階段,研究者将 BitNet v2 與 BitNet b1.58、BitNet a4.8 在不同模型規模(400M、1.3B、3B 和 7B)上進行了對比,所有模型都使用 1.58bit 權重訓練。
主要實驗結果顯示,引入 Hadamard 變換的 BitNet v2(8 bit 激活)相比 BitNet b1.58 在各規模模型上都有所提升,在 7B 規模上,平均準确率提高了 0.61%。
當降至 4 bit 激活時,BitNet v2 的困惑度與 BitNet a4.8 相當,下遊任務表現甚至更優。
研究者還對 BitNet v2 進行了低 bit 注意力狀态的詳細實驗,采用後 RoPE 量化處理 QKV 狀态。采用 3 bit KV 緩存的 BitNet v2 在 3B、7B 模型上達到了與全精度 KV 緩存版本相當的準确率:
與後訓練量化方法 SpinQuant、QuaRot 相比較,BitNet v2 表現更優:
消融實驗則進一步驗證了 Hadamard 變換對低 bit 激活的關鍵作用,沒有旋轉變換則模型會發散。
更多研究細節,感興趣的童鞋可以查看原論文。
論文鏈接:https://arxiv.org/pdf/2504.18415
一鍵三連「點贊」「轉發」「小心心」
歡迎在評論區留下你的想法!
— 完 —
點亮星标
科技前沿進展每日見