點選下方卡片,關注“CVer”公眾號
AI/CV重磅乾貨,第一時間送達
AI/CV重磅乾貨,第一時間送達
新增微訊號:CVer2233,小助手會拉你進群!
掃描下方二維碼,加入CVer學術星球!可以獲得最新頂會/頂刊上的論文idea和CV從入門到精通資料,及最前沿應用!發論文/搞科研/漲薪,強烈推薦!
新增微訊號:CVer2233,小助手會拉你進群!
掃描下方二維碼,加入CVer學術星球!可以獲得最新頂會/頂刊上的論文idea和CV從入門到精通資料,及最前沿應用!發論文/搞科研/漲薪,強烈推薦!

CalibQuant團隊 投稿轉載自:量子位(QbitAI)
在InternVL-2.5上實現10倍吞吐量提升,模型效能幾乎無損失。
最新1-bit多模態大模型KV cache量化方案CalibQuant來了。
透過結合後縮放和校準方法,可顯著降低視訊記憶體與計算成本,無需改動原模型即可直接使用。

即插即用、無縫整合
多模態大語言模型在各種應用中展現出了卓越的效能。然而,它們在部署過程中的計算開銷仍然是一個關鍵瓶頸。
雖然KV cache透過用視訊記憶體換計算在一定程度上提高了推理效率,但隨著KV cache的增大,視訊記憶體佔用不斷增加,吞吐量受到了極大限制。
為了解決這一挑戰,作者提出了CalibQuant,一種簡單卻高效的視覺KV cache量化策略,能夠大幅降低視訊記憶體和計算開銷。具體來說,CalibQuant引入了一種極端的1位元量化方案,採用了針對視覺KV cache內在模式設計的後縮放和校準技術,在保證高效性的同時,不犧牲模型效能。
作者透過利用Triton進行runtime最佳化,在InternVL-2.5模型上實現了10倍的吞吐量提升。這一方法具有即插即用的特性,能夠無縫整合到各種現有的多模態大語言模型中。
動機
當前的多模態大語言模型在實際應用中常常需要處理大尺寸、高解析度的影像或影片資料,KV cache機制雖然能提升效率,但其視訊記憶體佔用與輸入長度(如視覺幀數、影像尺寸等)成正比。
當輸入資料的規模增大(例如更多的視覺幀、更高的影像解析度)時,KV快取的視訊記憶體使用量迅速增加,成為限制吞吐量的瓶頸。儘管當前有些針對LLM KV cache量化的方法可以將其壓縮至2位元,但這些方法沒有針對多模態問題中特有的視覺冗餘做分析最佳化,導致其無法在極限情況1位元下被使用。
本文透過分析多模態大語言模型中的視覺KV cache的冗餘,設計了適合多模態模型特有的KV cache量化方案。
方法
本文在通道維度量化的基礎上提出了針對反量化計算順序的後縮放最佳化方案和針對注意力權重最佳化的校準策略。
1、通道維度KV cache量化:
一種廣泛使用的方法是均勻整數量化。給定一個位元寬度b>0和一個輸入值x,它位於某個範圍[α,β]內,則將其對映到一個離散整數

,計算過程為:

這裡的⌊⋅⌉表示取整運算子。最樸素的方法是使用全域性統計量來計算這些極值,但是模型效能會受較大影響,作者選擇在通道維度上細化統計範圍。具體來說,令

表示一個K cache,其中n和d分別表示token的數量和head的維度。定義兩個向量

如下:
然後,透過上述過程對K中的每一行向量進行量化,其中乘法操作是逐元素進行的。作者同樣將這種按通道的量化方法應用於V cache。
2、後縮放KV cache管理策略:
量化後的K cache可以用離散化的整數值、一個縮放因子(scale factor)和一個偏置項(bias term)來表示。在解碼階段,這些值被用於對K cache進行反量化,並隨後與Q相乘。然而,通道維度的量化需要為每個通道分別指定不同的縮放因子和偏置向量,這將導致產生大量不同的數值,增加了反量化過程中的計算開銷。此外,這種方式也使得CUDA核心中的計算效率降低。作者觀察到量化後的K僅具有有限數量的離散取值(例如,對於2位元量化,其取值僅為0、1、2、3),於是提出利用簡單的計算順序重排來減少儲存需求,並提高計算效率。具體過程如下:
設
中的任意一行向量,為其進行b位元整數量化後的結果,並伴隨有逐通道的縮放因子α,β。給定一個查詢向量

是K cache矩陣


,在生成token過程中注意力計算如下:

其中,符號⋅和⊙分別表示向量之間的內積和逐元素乘積。通道維度上的反量化操作
被延遲執行,並高效地整合到後續的向量乘法運算中。因此,這種方法僅儲存經過b位元整數量化後的數值,並且避免了全精度反量化計算過程。這種方法確保了低位元反量化執行的高效性。這種後縮放方法也可以自然地應用到V cache的反量化過程中。

3、量化後的校準:
1位元量化的一個限制是經過反量化之後的數值往往會包含大量的極端值。這是因為1位元量化的碼本總是包含了最小值和最大值,導致那些接近邊界的輸入值在反量化後直接對映到了極端值。
因此,重建後的KV cache通常包含過多的大絕對值,最終導致注意力分數產生明顯的失真。為了解決這個問題,作者提出了一種量化後校準方法,用於調整softmax之前注意力分數的峰值。具體來說,假設
,定義一個線性變換g將區間
對映到
,其表示式如下:

中的所有元素都位於區間

內。給定




隨後對注意力分數進行如下調整:

如下圖所示,校準方法(Quant-C,紅色)有效減輕了極端值的影響,使調整後的注意分數分佈相較於未經校準的量化方法(Quant,藍色)更接近全精度(Exact)分佈。

實驗結果
作者將提出的量化方法分別應用在LLaVA和InternVL model上,測試了其在captioning,VQA,Video QA三個不同的任務上的效能。以captioning任務為例,下圖展示了本文所提出的方法在cococaption benchmark下和其他方法如KIVI,VLCache的對比。
在不同位元數(8,4,2,1)下,本文提出的方法在大部分測試指標上都優於其他兩種方法。例如對於llava-1.5-7b,本文的方法在8位元下達到最高的CIDEr 分數 1.105,與全精度持平,並在1位元下提升至1.109,超過了VLCache(1.053)。同樣地,對於InternVL-2.5-26B,本文的方法在4位元和2位元下分別取得了最高的CIDEr分數1.32和1.313,均優於VLCache和KIVI。

Runtime分析
為了展示本文提出的量化方法對解碼效率的影響,作者使用InternVL-2.5系列模型,將所提出的1位元量化方法與16位元基線進行了吞吐量評估(即每秒生成的token數)。作者考慮了兩種視覺token長度的情況:n=3328和8192。作者將GPU最大記憶體從5GB變化到30GB,並在每種記憶體限制下,尋找能夠容納的最大batch size,測量解碼階段的吞吐量。
如下圖展示,1位元量化方法在所有視訊記憶體預算下始終優於基線方法。例如,當n=3329且使用80億引數模型時,本文的方法在5GB視訊記憶體下實現了126.582tokens/s的吞吐量(基線為11.628tokens/s),在30GB下提升至459.016tokens/s(基線為40.816tokens/s)。這意味著相比基線,本文方法的吞吐量提升約為9.88×到11.24×,充分展示了該方法在受限視訊記憶體條件下顯著提升解碼速率。

總結
本文探討了多模態大語言模型中視覺KV cache的壓縮方法。簡單地將量化應用到極低位元數常常會引發分佈偏移,導致模型效能下降。為了解決這一問題,本文提出了一種新穎的校準策略,作用於softmax之前的注意力分數,有效緩解了量化帶來的失真。此外,本文還引入了一種高效的通道維度後縮放技術以提高計算和儲存效率。
作者在InternVL和LLaVA模型系列上,針對COCO Caption、MMBench-Video和DocVQA等基準任務進行了實驗,結果驗證了所提出方法的有效性。作者利用Triton實現了本文所提出的方法,runtime分析表明本文提出的方法相較於全精度模型有大約10倍的吞吐量提升。
論文標題:CalibQuant:1-Bit KV Cache Quantization for Multimodal LLMs論文地址:https://arxiv.org/abs/2502.14882程式碼地址:https://github.com/insuhan/calibquant
何愷明在MIT授課的課件PPT下載
何愷明在MIT授課的課件PPT下載
CVPR 2025 論文和程式碼下載
CVPR 2025 論文和程式碼下載
ECCV 2024 論文和程式碼下載
ECCV 2024 論文和程式碼下載
CV垂直方向和論文投稿交流群成立
一定要備註:研究方向+地點+學校/公司+暱稱(如Mamba、多模態學習或者論文投稿+上海+上交+卡卡),根據格式備註,可更快被透過且邀請進群
▲掃碼或加微訊號: CVer2233,進交流群
CVer計算機視覺(知識星球)來了!想要了解最新最快最好的CV/DL/AI論文速遞、優質實戰專案、AI行業前沿、從入門到精通學習教程等資料,歡迎掃描下方二維碼,加入CVer計算機視覺(知識星球),已彙集上萬人!
▲掃碼加入星球學習
▲點選上方卡片,關注CVer公眾號
整理不易,請點贊和在看

▲掃碼或加微訊號: CVer2233,進交流群
CVer計算機視覺(知識星球)來了!想要了解最新最快最好的CV/DL/AI論文速遞、優質實戰專案、AI行業前沿、從入門到精通學習教程等資料,歡迎掃描下方二維碼,加入CVer計算機視覺(知識星球),已彙集上萬人!

▲掃碼加入星球學習
▲點選上方卡片,關注CVer公眾號
整理不易,請點贊和在看
