華為中科大聯創大模型低比特量化算法,1‰數據實現昇騰無損壓縮7倍
大模型,如今堪稱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技術,以及粗到細的預處理策略,成功征服了極低比特量化的「三大高峰」。
這項創新有效地解決了,大模型在低比特量化場景下所面臨的層間依賴和層內依賴難題。
它不僅在多種大語言模型和數據集上展現出了顯著的性能提升,成功縮小了與全精度模型之間的差距,還以高效的量化效率實現了復雜模型的快速壓縮。
最終,讓盤古和各類開源模型,成功實現了在昇騰硬件上的高效部署,并為更加廣泛的應用鋪就坦途。