目前最優的LLM PTQ量化算法——OmniQuant
單位: OpenGVLab, 上海AI Lab, 香港大學
研究動機:LLM的優秀的PTQ和QAT方法主要有GPTQ和LLM-QAT。GPTQ(Frantar等人,2022年)可以在單個A100 GPU上使用128個樣本在一小時內完成LLaMA-13B的量化,而LLM-QAT(Liu等人,2023a)需要100k個樣本和數百個GPU小時。這引導我們來到一個核心問題:我們能否在保持PTQ的時間和數據效率的同時,達到QAT的性能?
Abstract
LLMs已經徹底改變了自然語言處理任務。然而,它們的實際部署受到其巨大的內存和計算需求的阻礙。盡管最近的后訓練量化(PTQ)方法在減少LLM的內存占用和提高計算效率方面取得了有效成果,但它們手工制作的量化參數導致了性能低下,并且無法處理極低比特量化。為了解決這個問題,我們引入了一種全方位校準量化(OmniQuant)技術。它在保持PTQ的計算效率的同時,在多樣化的量化設置中取得了良好的性能,通過有效優化各種量化參數。OmniQuant包括兩個創新組件,包括可學習的權重裁剪(LWC)和可學習的等效變換(LET)。LWC通過優化裁剪閾值來調節權重的極端值。同時,LET通過可學習的等效變換來處理激活的異常值,將量化的挑戰從激活轉移到權重。
在可微分框架內使用分塊誤差最小化,OmniQuant可以有效地優化僅權重和權重-激活量化的量化過程。例如,大小為7-70B的LLaMA-2模型家族可以在1-16小時內使用128個樣本在單個A100-40G GPU上通過OmniQuant處理。廣泛的實驗驗證了OmniQuant在多樣化的量化配置(如W4A4、W6A6、W4A16、W3A16和W2A16)中的卓越性能。此外,OmniQuant在指令調整模型中展示了有效性,并在真實設備上顯著提高了推理速度和內存減少。代碼可在https://github.com/OpenGVLab/OmniQuant獲取。
2. Related work
2.1 量化方法
- QAT通過在訓練期間模擬量化來保持性能,但其訓練成本使其不適合LLM。
- PTQ技術,如AdaRound和BRECQ,使用梯度優化來確定最佳舍入,但對于更大的模型來說,調整所有權重是非常耗時的。
因此,大多數LLM量化方法優先選擇無需訓練的PTQ,但這也限制了模型在低比特情況下的性能。我們的目標是在LLM量化中整合梯度更新,模仿QAT的方法,同時保持PTQ的效率。
2.2 LLM的量化
權重量化。權重量化專注于將權重轉換為低比特值。例如,GPTQ使用塊狀重建進行3/4比特量化。SpQR(Dettmers等人,2023b)、OWQ(Lee等人,2023)和AWQ(Lin等人,2023)強調與高幅度激活相關的權重的重要性。因此,SpQR和OWQ采用混合精度量化來保護重要權重,而AWQ選擇通道級縮放以避免混合精度的硬件效率低下。Qlora(Dettmers等人,2023a)和INT2.1(Chee等人,2023)通過參數高效微調恢復量化模型的能力。與之相反,我們的方法直接增強了量化過程,使OmniQuant與Qlora和INT2.1相輔相成。
?
權重-激活量化。權重-激活量化壓縮了權重和激活。SmoothQuant(Xiao等人,2023)、LLM.int8()(Dettmers等人,2022)和異常值抑制(Wei等人,2022)通過管理激活異常值實現了W8A8量化。LLM.int8()使用混合精度分解,而其他兩種方法采用通道級縮放。此外,異常值抑制+(Wei等人,2023)增加了通道級移動以推動W6A6量化。與以前的啟發式設計不同,我們使用梯度優化并將等效變換擴展到注意力機制,進一步提升了K/V緩存量化。
?
最近,RPTQ和LLM-QAT已經實現了W4A4量化。然而,RPTQ采用了對部署不友好的分組激活量化,而LLM-QAT采用了耗時的QAT。與RPTQ和LLM-QAT不同,我們通過部署友好的per-token量化實現了W4A4量化,并保持了PTQ的效率。
3 OMNIQUANT
LLM量化的挑戰。量化LLM時存在兩個主要困難。首先,由于異常通道的存在,激活很難量化。考慮到權重分布是平坦和均勻的,SmoothQuant和Outlier Suppression+通過預定義的遷移強度將量化難度從激活轉移到權重來解決這個問題。其次,權重的量化誤差也由于對應激活的權重的重要性而在最終性能中起著關鍵作用。 SqQR和OWQ提出保留全精度的關鍵權重,而AWQ使用網格搜索的通道級縮放來保護這些權重。盡管這些方法在壓縮各種LLM方面取得了一定的成功,但由于手工設計的量化參數(如遷移強度和縮放因子)的粗糙設計,它們通常導致次優性能,并且無法處理極低比特量化。
?
在本節中,我們介紹了一種用于LLM的可微分量化技術,稱為OmniQuant,其中量化參數具有更好的靈活性。為實現這一目標,OmniQuant采用塊間量化誤差最小化框架實現,如第3.1節所述。為應對上述LLM量化的挑戰,我們設計了兩種新策略,包括可學習的權重裁剪(LWC)以減輕量化權重的難度,以及可學習的等效變換(LET)進一步將量化挑戰從激活轉移到權重。我們在第3.2節和第3.3節分別介紹了LWC和LET。
3.1 BLOCK-WISE QUANTIZATION ERROR MINIMIZATION
之前采用梯度優化的PTQ方法,如AdaRound和BRECQ,不能應用于具有數十億參數的模型,因為巨大的解空間難以優化這些權重。我們提出了一種新的優化流水線,采用塊間量化誤差最小化,其中額外的量化參數可以以可微分的方式優化。我們將優化目標表述如下:
公式(1)中的Block-wise minimization有兩個優點:
- 1.OmniQuant可以聯合優化LWC和LET中的量化參數,使其足以包含僅權重和權重-激活量化。
- 2.Block-wise minimization易于優化,資源要求最小。OmniQuant只需確定幾個量化參數的最優性,這比優化之前PTQ方法中的整體權重(Nagel等人,2020;Li等人,2021)要容易。
從經驗上,我們發現LLaMA-2家族的所有模型(Touvron等人,2023b)都可以在單個A100-40G GPU上僅使用128個訓練樣本進行量化。
3.2 LEARNABLE WEIGHT CLIPPING
OmniQuant采用LWC模塊來降低LLM中權重量化的難度。與具有learnable clipping threshold的先前方法類似(如LSQ、PACT等),LWC也通過優化clipping threshold來確定權重的最佳動態范圍。然而,我們發現直接采用先前工作,如PACT(Choi等人,2018)和LSQ(Esser等人,2019),量化性能不佳,正如LLM-QAT(Liu等人,2023a)所展示的那樣。附錄中的表A8也觀察到了類似的結果。
我們不是像之前的方法那樣直接學習clipping threshold,而是優化一個clipping strength,如公式(2)所示:
3.3 LEARNABLE EQUIVALENT TRANSFORMATION
除了使用LWC使得權重更利于量化,我們還通過可學習的等效變換(LET)進一步降低了權重-激活量化的難度。考慮到激活圖中的異常值是有條理性的,并且主要存在于特定通道,先前的方法如SmoothQuant通過數學等效變換將量化難度從激活轉移到權重。然而,他們的等效參數是人工設置的,導致次優結果。
得益于之前的Block-wise的量化誤差最小化,我們的LET能夠以可微分的方式確定最優等效參數。受到SmoothQuant(Xiao等人,2023)和Outlier Suppression+(Wei等人,2023)的啟發,我們采用channel-wise scaling和channel-wise shifting來操縱激活分布,為異常值問題提供了有效的解決方案。具體來說,我們研究了linear layer和attention操作中的等效變換,如圖3所示。
Untitled
S使用 SmoothQuant中的方法進行初始化;使用Outlier Suppression+中的方法進行初始化。
最后,我們對轉換后的激活和權重進行量化,如下所示:
的scale和shift參數可以被融合到先前的歸一化或線性層中中的scale因子可以與原始權重融合。因此,公式(3)中的等效變換可以有效減少量化誤差,而不引入額外的參數或計算成本。
我們在LLM的所有線性層中使用這種等效變換,如圖3所示,除了FFN的第二個線性層。這可能是因為非線性層之后的特征高度稀疏(Liu等人,2023b)導致應用可學習等效變換時梯度不穩定。
?
Attention operation. 除了線性層之外,注意力操作也占據了計算的相當一部分。此外,LLM的自回歸模式要求為每個token存儲KV Cache,這導致長序列的內存需求很大。因此,在權重-激活量化設置中,我們也將Q/K/V矩陣量化為低比特。具體來說,self-attention親和力矩陣的LET可以寫成:
4 EXPERIMENTS
4.1 僅權重量化結果
LLaMA系列的結果可以在表1中找到,而OPT的結果在附錄A6中呈現。正如表格所示,OmniQuant在各種LLM系列(OPT,LLaMA-1,LLaMA2)和多樣化的量化配置中始終優于以前的LLM僅權重量化方法,包括W2A16,W2A16g128,W2A16g64,W3A16,W3A16g128,W4A16和W4A16g128。這些發現表明OmniQuant的多功能性,能夠適應多種量化配置。例如,雖然AWQ(Lin等人,2023)在分組量化中特別有效,但OmniQuant在通道級和分組級量化中都表現出優越的性能。此外,隨著量化比特大小的減小,OmniQuant的性能優勢變得更加明顯。
4.2 權重-激活量化結果
在權重-激活量化中,我們主要關注W6A6和W4A4量化。我們排除了W8A8量化,因為與全精度對應物相比,SmoothQuant幾乎可以實現無損的W8A8量化模型。LLaMA系列的結果可以在表2中找到,而OPT的結果在附錄A16中呈現。表2展示了LLaMA權重-激活量化的零樣本任務準確性。
?
值得注意的是,在W4A4量化中,OmniQuant顯著提高了各種模型的平均準確性,提高了+4.99% ~ +11.80%。顯著的是,在LLaMA-7B中,OmniQuant甚至超過了最近的QAT方法LLM-QAT(Liu等人,2023a),提高了+6.22%。這一改進證明了加入額外可學習參數的有效性,這比QAT使用的全局權重調整更有益。
4.3 權重-激活量化結果
在權重-激活量化中,我們主要關注W6A6和W4A4量化。我們排除了W8A8量化,因為與全精度對應物相比,SmoothQuant幾乎可以實現無損的W8A8量化模型。LLaMA系列的結果可以在表2中找到,而OPT的結果在附錄A16中呈現。表2展示了LLaMA權重-激活量化的零樣本任務準確性。值得注意的是,在W4A4量化中,OmniQuant顯著提高了各種模型的平均準確性,提高了+4.99% ~ +11.80%。顯著的是,在LLaMA-7B中,OmniQuant甚至超過了最近的QAT方法LLM-QAT(Liu等人,2023a),提高了+6.22%。這一改進證明了加入額外可學習參數的有效性,這比QAT使用的全局權重調整更有益。
本文轉自 AI生成未來,作者:Austin
