華為中科大聯創大模型低位元量化演算法,1‰資料實現昇騰無失真壓縮7倍


新智元報道  

編輯:編輯部 XYH
【新智元導讀】大模型巨無霸體量,讓端側部署望而卻步?華為聯手中科大提出CBQ新方案,僅用0.1%的訓練資料實現7倍壓縮率,保留99%精度。
大模型,如今堪稱AI界的「吞金巨獸」。
從寫詩到解題,從對話到程式設計,它們幾乎無所不能,但動輒千億甚至萬億引數的規模,讓部署成本高得離譜。
以FP16精度部署的DeepSeek-R1 671B為例,推理時大概需要1342GB的視訊記憶體,如果是32GB 5090顯示卡,需要整整42張!
為了降低成本,天才工程師們想出了後訓練量化(Post-training Quantization,PTQ)的方法它能夠在有限的校準資料和計算資源下對模型進行高效壓縮。
但是PTQ依然帶來新的問題——在極低位元精度(如W2A16、W4A4)時往往會出現明顯的效能下降,規模是降了,但是不好用了!
就在這關鍵時刻,華為諾亞方舟實驗室聯合中科大亮出了「殺手鐧」——CBQ(Cross-Block Quantization),一種基於跨塊重建的後訓練量化方案
論文地址:https://openreview.net/pdf?id=eW4yh6HKz4
相比量化感知訓練(QAT)所需資料量,CBQ僅用0.1%的訓練資料,一鍵壓縮大模型至1/7體積——浮點模型效能保留99%,真正實現「輕量不降智」。
值得一提的是,這項成果已榮登ICLR 2025 Spotlight(錄取率僅5%)。
它不僅展現了大模型壓縮領域的創新性和實用性,更像一顆訊號彈,宣告大模型在國產算力上的普及時代已然來臨!
目前,CBQ已作為可呼叫的演算法之一,正式加入昇騰模型壓縮工具包ModelSlim,幫助開發者在昇騰晶片上實現LLM的高效部署。

極低位元量化,為何如此難?
長期以來,後訓練量化(PTQ)一直是壓縮大語言模型的「黑科技」——透過解決異常值和採用layer-wise或block-wise的loss最佳化技術取得了比較不錯的結果。
但是當把引數位元「壓得特別低」的時候,模型效能會嚴重下降。
為什麼極低位元量化,如此困難?其實,答案隱藏在大模型的複雜結構中。
研究者們對LLM在低位元量化場景下的量化誤差進行了深入分析,發現了問題的關鍵所在:
隨著模型引數數量的增加和量化bit數的減少,模型內部的層間依賴(inter-layer dependencies)和層內依賴(intra-layer dependencies)會顯著增強,這嚴重影響了量化精度。
如下實驗所示,清晰展示了LLAMA-7B層間與層內的依賴關係。
圖1:Llama-7B內部權重和層之間依賴關係的變化,以及層間縮放因子(scale)對誤差的影響
圖1(a)為LLAMA-7B單一層中權重的Hessian矩陣絕對值視覺化,2-bit圖比4-bit更模糊,非對角線噪聲增多,表示在低位元下權重間的「干擾」增強了。
圖1(b)為LLAMA-7B 32層中損失相對於scale的Hessian矩陣視覺化,2-bit量化中,非對角線明顯比4-bit更亮,說明層間依賴增強,模型更容易因為一層的誤差影響到另一層。
以及圖1(c)LLAMA-7B前兩個Transformer塊的平均scale與相應損失之間的關係,4-bit情況下,誤差平穩區域大,模型對 scale 不敏感。2-bit情況下,誤差對scale非常敏感,選擇不當誤差急劇上升,黑色區域更集中、易出錯。
總結來說,將模型引數從高精度壓縮到低精度,這一過程主要面臨三大核心挑戰:
1. 層間依賴的「雪球效應」
大模型由多個Transformer層組成,各層引數之間存在複雜的相互依賴。
在極低位元量化時,量化誤差會在層間不斷累積放大,就像「滾雪球」一樣,導致整體效能嚴重下降。
然而,傳統逐層量化的方法,無法有效捕捉這些層間依賴,進而造成了精度損失。
2. 層內依賴的複雜性
同一層內的引數並非獨立存在,而是存在緊密的關聯性。
極低位元量化會破壞這些精細的層內依賴,導致模型在處理複雜任務時「力不從心」。
比如,大模型語義理解或推理能力,可能因引數精度的降低而顯著退化。
3. 權重和啟用的異常值
模型的權重和啟用值中的異常值,在低位元量化時會引發較大的誤差。
傳統的方法無法精確識別和處理這些異常值,進一步加劇了量化誤差。
可見,這些挑戰讓低位元量化,成為大模型壓縮的「攔路虎」。
那麼,華為的CBQ方案,是如何突破這些瓶頸?讓我們一探究竟!

CBQ打破層間壁壘,精準又高效
CBQ的核心思想是,透過跨塊依賴(Cross-Block Dependency, CBD)機制和自適應LoRA-Rounding技術,同時最佳化多個Transformer塊的量化引數,從而更好地保留模型內部的依賴關係。
具體來說,它透過三大技術創新,為極低位元量化注入了全新活力。

跨塊依賴機制(CBD)
剛剛也提到,傳統量化方法採用逐層最佳化,卻忽視了層間依賴的複雜性。
CBQ引入了CBD機制,透過滑動視窗的方式,同時最佳化多個Transformer塊,並且相鄰視窗之間會有重疊的塊,以確保塊之間的連線性和協作性。
這種方法,可以有效地捕捉到模型內部的長距離依賴關係,使得相鄰的塊能夠共同參與到量化過程中,從而提高整體的量化效能。
在實驗中,隨著滑動視窗中塊的數量增加,模型的效能也得到了顯著提升。

自適應LoRA-Rounding技術
為了應對層內依賴的複雜性,CBQ提出了自適應LoRA-Rounding技術,透過兩個低秩矩陣來學習量化權重的自適應補償值。
與傳統的AdaRound方法相比,LoRA-Rounding透過低秩分解大大減少了可學習引數,訓練速度更快,GPU記憶體消耗更低。
這種方法能夠在訓練過程中動態調整權重的量化精度,從而更好地適應模型的內部結構和資料分佈。

粗到細的預處理策略(CFP)
針對異常值問題,CBQ採用了粗到細的預處理策略(Coarse-to-Fine Preprocessing, CFP)。
CFP策略從統計學的角度出發,透過分階段檢測和處理權重和啟用中的異常值。
在粗粒度檢測階段,透過計算四分位數和四分位距來初步估計異常值的範圍;在細粒度檢測階段,透過最小化異常值子集與正常值子集之間的距離,同時最大化子集內部的方差,來精確識別異常值的位置。
這種分階段策略,有效減少了量化誤差,確保模型在低位元場景下依然「穩如泰山」。
那麼,CBQ在場景中的真實表現又如何呢?

實驗結果:效能與效率的雙贏
一系列研究結果顯示,CBQ在華為盤古模型和開源模型的表現上,大放異彩。

盤古模型:端側部署「殺手鐧」
CBQ量化技術已成功應用於華為盤古大模型PanGu-7B和PanGu-1.5B的端側部署,憑藉其高精度的量化效能,有效支撐了盤古大模型在多個業務場景的落地應用。
如下表所示,在W8A8/W4A16精度下,PanGu-1.5B模型在中文(C-Eval/CMMLU)、多工語言理解(MMLU)基準中的表現,毫不遜色於全精度模型的效能。
在中文、多語言理解、數學基準中,PanGu-7B的表現同樣如此。
這些成果,足以讓盤古模型在手機等終端裝置上,輕鬆執行。

開源模型:超越最優
此外,CBQ在多個開源LLM(如OPT、LLaMA)上也取得了SOTA。
例如,在W4A16、W2A16和W4A8等低位元量化設定下,CBQ的效能均優於現有的最先進方法,並且與全精度模型的效能差距縮小到了1%以內。
更令人驚歎的是,CBQ僅需4.3小時即可完成對4位權重的LLaMA1-65B模型的量化,展現了壓縮率與精度之間的完美平衡(trade-off)。

未來展望
華為的CBQ方案,以跨塊依賴機制、自適應LoRA-Rounding技術,以及粗到細的預處理策略,成功征服了極低位元量化的「三大高峰」。
這項創新有效地解決了,大模型在低位元量化場景下所面臨的層間依賴和層內依賴難題。
它不僅在多種大語言模型和資料集上展現出了顯著的效能提升,成功縮小了與全精度模型之間的差距,還以高效的量化效率實現了複雜模型的快速壓縮。
最終,讓盤古和各類開源模型,成功實現了在昇騰硬體上的高效部署,併為更加廣泛的應用鋪就坦途。


相關文章