宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

給大模型裝一個「記憶壓縮器」:WUSH-KV如何用數學方式省顯存

2026年10月12日 首頁 » 熱門科技

你有沒有想過,當你和ChatGPT聊了很久一段很長的對話之後,這個AI到底是怎麼"記住"你前面說過的話的?

答案可能有點反直覺。它不是真的記住了,而是把每一個說過的詞都變成了一組數字向量,存在顯存里,隨時準備拿出來用。這組被存起來的東西,業內叫它KV緩存給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存。

**KV緩存:**大模型在生成文字時,會把每個已經處理過的詞轉換成兩類向量,一類叫Key(鍵),一類叫Value(值)。這兩類向量會被緩存起來,這樣模型在往後生成新詞時就不用重新計算前面所有詞的資訊,直接復用就行。

問題來了,這玩意兒會越滾越大。你跟AI聊得越久,它存的KV緩存就越多,而且這個增長是線性的,文字越長,占的顯存越多。如果你是開發者,同時服務成千上萬個用戶的長對話,這筆顯存賬單會讓你肉疼。

於是整個行業都在琢磨同一件事:能不能把這些緩存的數字"壓縮"一下,讓它們占用更少的空間,同時又不讓AI變傻?

這就是這篇論文要解決的問題。研究者給出的方案叫WUSH-KV給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存,來自奧地利科學技術研究院(ISTA)和蘇黎世聯邦理工學院的團隊。

壓縮會丟失資訊,這是硬道理

把一個數字從32位浮點數壓縮成2位整數,意味著原來能表示40億種不同數值的空間,現在只剩下4種可能。這中間丟失的資訊去哪兒了?變成了誤差,叫做量化給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存誤差。

**量化:**把高精度的數字(比如占32個比特的浮點數)轉換成低精度的數字(比如只占2個比特的整數)來節省儲存空間的過程。

這就像你本來有一支能畫出256種灰度的鉛筆,現在只給你黑白兩種顏色去畫同一幅肖像。有些細節必然會消失,但如果畫得巧妙,比如把陰影集中在最重要的輪廓線上,整幅畫看起來依然能讓人認出是誰。量化的核心難題就是這個:在資訊必然損失的前提下,怎麼讓損失發生在"無關緊要"的地方,而不是"性命攸關"的地方。

而KV緩存里恰好存在一個很煩人的現象:**少數幾個數值特別大,剩下大部分數值都很小。** 這些異常值像是房間裡站著的幾個巨人,會把整個量化的"刻度尺"撐得老大,結果絕大多數普通數值反而擠在刻度尺的最底端,幾乎沒有可用的精度去區分它們。

打個比方,如果你有一個秤,最大稱重是100公斤,但你平時稱的東西大多在1公斤左右,而偶爾有個10公斤的異常值出現,為了讓秤不爆表,你只能把刻度拉得很粗,於是1公斤和1.2公斤在這個秤上根本看不出區別。這就是量化誤差的來源:異常值綁架了整個刻度系統。

旋轉一下,異常值就消失了嗎?

有一類解決方案叫做變換,顧名思義,就是在量化之前,先給這組數字做一次數學上的"換基",讓它們變得更均勻,然後再量化,最後再用逆變換把它換回原來的樣子。

**變換:**在量化前對數據做一次可逆的線性運算(比如矩陣乘法),讓數據分布變得更適合量化,之後用逆運算還原回來。

業界比較流行的一種變換叫Hadamard變換給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存,它的思路很簡單粗暴:把所有數值混合攪拌一下,讓異常值的能量分散到所有坐標上,這樣就沒有哪個坐標特別突出了。QuaRot和SpinQuant這類工作就是用這個思路做到了4比特量化下還能保持不錯的效果。

但這篇論文的作者們發現了一個問題:Hadamard變換是"一視同仁"的,它假設所有坐標的重要性都差不多,所以均勻地打散異常值。可現實是,並非所有坐標在後續計算里的重要程度都一樣。有些坐標哪怕誤差很小,傳到後面的計算里也會被放大很多倍;有些坐標即使誤差很大,影響卻微乎其微。

這就好比一個班級要重新排座位。Hadamard變換的做法是把所有學生隨機打亂重新坐,確保沒有哪個座位特別擁擠。但WUSH這篇論文的思路是:先搞清楚哪些學生坐在哪個位置對班級紀律影響最大(比如愛講話的學生坐在後排影響小,坐在講台旁邊影響巨大),然後針對性地安排座位,讓"影響力大"的學生坐得寬鬆舒適,"影響力小"的學生擠一擠也無妨。如果不這樣做,繼續用隨機打亂的方式,那些對最終結果影響巨大的坐標依然可能被塞進刻度最粗糙的區間裡,造成本可避免的性能損失。

WUSH的核心思路:既看數據本身,也看數據的"下游影響"

這篇論文建立在團隊之前另一項工作WUSH之上,WUSH原本是為大模型的權重和激活值量化設計的,這次被改造用在KV緩存上。

WUSH的關鍵創新在於,它構造變換矩陣的時候,不只看被量化的數據自己長什麼樣子,還要看這個數據接下來要跟誰做矩陣乘法,對方的統計特性是什麼。

論文裡有一個關鍵公式,用兩個矩陣來描述這件事:一個叫Gram矩陣給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存,記錄的是數據自身的"能量分布";另一個叫Hessian矩陣給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存,記錄的是誤差傳遞到下游會被放大多少。

**Gram矩陣:**衡量一組向量彼此之間相關性和能量大小的矩陣,這裡用來描述被量化數據本身的統計特徵。

**Hessian矩陣:**原本是描述函數曲率的數學工具,這裡被用來衡量某個坐標上的小誤差,經過後續計算後會被放大成多大的最終損失。

有了這兩個矩陣,WUSH通過一套Cholesky分解加特徵值分解的流程,算出一個最優的變換矩陣。這個變換矩陣的奇妙之處在於,它是針對"數據統計特性"和"下游敏感度"兩者聯合優化出來的,而不是像Hadamard那樣一刀切。

論文還證明了一件挺硬核的事情:在特定假設下(比如誤差近似服從均勻分布,裁剪閾值選得合理),WUSH構造出的變換在所有"敏感度均衡"的變換里幾乎是最優的,而且這個最優性和數據的維度、量化比特數都沒有關係。這意味著不管你的KV緩存有多大,不管你想壓到多少比特,WUSH的這套理論優勢都站得住腳。

Key和Value,待遇不一樣

論文裡有一個設計細節特別值得說一說。KV緩存里的K(鍵)和V(值)在注意力機制給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存里扮演的角色完全不同,所以WUSH-KV給它們設計了不同的處理方式。

**注意力機制:**大模型里讓每個詞能夠"關注"前面所有詞、從中提取相關資訊的核心計算過程。Key向量用來和當前的Query(查詢)向量做匹配評分,Value向量則是真正被提取出來、加權匯總的資訊內容。

Value這一路比較幸運。它的變換可以被直接"焊死"進模型的權重里,推理的時候完全不需要額外計算,是白撿的免費午餐。這是因為Value只參與一次矩陣乘法(和輸出投影矩陣相乘),插入一個變換再插入它的逆變換,數學上完全可以提前把這兩次變換和原來的權重矩陣合併,變成一個新的權重矩陣,模型加載進顯存時就是現成的,推理階段毫無額外開銷。

Key就沒有這麼好運了。因為Key要先經過RoPE給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存(旋轉位置編碼)處理才存入緩存,而RoPE對每個緩存位置做的旋轉操作都不一樣,是跟位置綁定的。研究者在附錄里詳細推導過:如果想把Key的變換也焊死進權重里,這個變換必須能跟RoPE這個旋轉操作"交換順序"而不改變結果,但數學推導下來發現,能夠同時滿足這個條件和RMS歸一化約束的變換,只剩下一些毫無意義的符號翻轉操作,根本沒法用來重新分配數值的重要性。

打個比方,這就像給一列正在跑的火車調整座位安排。如果火車還沒出發(對應權重階段),你隨便怎麼調座位都行,提前焊死就行。但如果火車已經在軌道上跑著(對應RoPE之後的位置相關處理),而且每一站乘客的上下車規則都不一樣,你想臨時重排座位,就必須在火車運行的過程里實時操作,沒法提前焊死規則。所以WUSH-KV選擇把Key的變換放在RoPE處理完之後再做,接受這部分計算必須在線上進行的代價,而不是去追求一個理論上更自由但實現起來會讓每個緩存位置都要單獨處理的方案。

這是一種務實的權衡:用稍微增加一點在線計算量,換來一個簡單、統一、不會把推理系統搞得異常複雜的緩存結構。

量化器的選擇:理論最優 vs 實際效果最好

論文裡還有一個挺有意思的"反差"。研究者在理論證明部分用的是QuEST量化器,這是一種對稱的、基於均方根(RMS)裁剪的量化方式,數學性質乾淨,適合寫證明。

但是到了真正要跑端到端的下游任務測試(比如做數學題、回答科學問題、寫代碼)時,研究者換成了另一種叫OSCAR給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存風格的量化器,這種量化器用的是非對稱的仿射量化,加上按百分位數裁剪的技巧。

**OSCAR:**另一個研究團隊提出的KV緩存量化方法,使用正交變換加上百分位裁剪的仿射量化方式,這篇論文中既作為對比基準,也借用了它的量化器實現方式。

有意思的是,論文坦誠地報告了一個反直覺的發現:在局部的、逐層的誤差測量上,QuEST量化器的表現其實比OSCAR風格的量化器更好,誤差數值更低。但一旦放到真實的、需要模型自己生成幾千個詞、層層遞推下去的下游任務上,OSCAR風格量化器反而贏了,有一次用QuEST量化器配合GPQA Diamond給大模型裝一個記憶壓縮器WUSHKV如何用數學方式省顯存測試,AIME 2025的分數直接掉到了0%。

這說明一件挺重要的事:實驗室里測得的"誤差指標好看",不代表實際跑起來模型就聰明。局部的數學最優性和一連串自回歸生成之後累積的實際表現,中間隔著相當遠的距離。研究者沒有迴避這個矛盾,而是老老實實地把這兩種結果都擺出來,這種態度在我看來比強行把兩個指標都說成"我們最好"要可信得多。

全精度安全區:給緩存留一道保險

除了變換和量化器,WUSH-KV還設計了一套"全精度窗口"機制,作為額外的安全墊。

具體來說,緩存的最開頭幾個位置(叫sink窗口,一般固定在128或者更靠前的位置)會一直保持全精度不被量化,因為注意力機制里有個已知現象,模型會把很多注意力權重"傾倒"在序列最開始的幾個token上,這些位置特別敏感,一旦量化出錯,影響面會很大。同時,最近生成的一段位置(叫keep窗口)也會保持全精度,因為這些剛生成的內容還在被頻繁讀取和參考。

剩下中間那一大段"陳年舊賬",才會被真正量化壓縮,而且是攢夠一批(比如8個或16個位置)才一次性量化,不是來一個就壓一個,這樣能減少系統層面頻繁操作的開銷。

這就像圖書館管理員整理書架。最新上架的幾本書和鑲在最顯眼位置的那幾本經典名著,會一直擺在最好拿、最清晰標註的區域(全精度區),不會被壓縮打包進倉庫。而那些已經放了很久、不常被翻閱的舊書,會被打包壓縮存進地下倉庫,而且管理員不會一本一本地單獨打包,而是攢夠一箱才統一處理一次,這樣效率更高。如果不設這個安全區,直接把所有書都塞進壓縮倉庫,哪怕是最新最常用的那幾本,一旦有人急著要用、卻發現要花時間從壓縮包里"解壓"出來,用戶體驗就會直線下降。

實驗結果:數字說話

論文做了三層實驗來驗證這套方法,層層遞進。

第一層是最細粒度的層面重建誤差測試,直接在Qwen3-8B這個80億參數的模型上,對比了六種不同的變換方案:什麼都不做(恆等變換)、隨機正交變換、Hadamard變換、OSCAR變換、WUSH變換,以及一個加強版WUSH-A(用了更精確的注意力感知Hessian)。結果顯示,在2比特量化下,WUSH和WUSH-A的幾何平均誤差分別是0.208和0.195,而Hadamard變換是0.325,OSCAR是0.309,差距相當明顯。

第二層是WikiText-2語言模型困惑度測試,這是衡量語言模型"說話順不順"的經典指標,數值越低越好。在2比特量化下,WUSH-KV拿到10.51的困惑度,而OSCAR是13.74,Hadamard變換直接崩到258.29,幾乎已經不能正常生成文字了。論文裡解釋說,這是因為第一層注意力模組的Key向量里有個異常尖銳的尖峰,集中在幾乎一個坐標上,而Hadamard變換會把這個尖峰強行打散成許多個大小接近、恰好卡在量化刻度中間最模糊區域的數值,造成大面積的量化誤差。

第三層是真正的下游任務測試,涵蓋AIME數學競賽題、MATH-500數學題、GPQA Diamond科學問答、LiveCodeBench代碼生成,測試了4B、8B、32B三種不同規模的Qwen3模型。

模型 | 方法 | AIME 2025 | MATH-500 | GPQA Diamond | LiveCodeBench v6

Qwen3-8B | BF16原始精度 | 67.8% | 95.1% | 57.4% | 47.8%

Qwen3-8B | OSCAR | 34.4% | 89.3% | 52.9% | 20.4%

Qwen3-8B | **WUSH-KV** | **46.7%** | **92.9%** | **54.5%** | **35.2%**

在8B這個尺寸上,WUSH-KV在全部四個任務上都超過了OSCAR,有些差距還相當懸殊,比如LiveCodeBench代碼生成任務上,WUSH-KV是35.2%,OSCAR只有20.4%,差了接近15個百分點。而在4B和32B模型上,兩種方法互有勝負,不過WUSH-KV整體表現的穩定性更好一些,隨著模型變大、任務變難,它掉分的幅度相對比較可控。

值得一提的是用來對照的那個"TurboQuant風格的純Hadamard變換"基準,在所有模型和任務上幾乎全線崩潰,很多測試里得分是0%,而且生成的token數量瘋狂飆升到接近用光整個預算上限,說明模型陷入了某種卡死循環說不出有效答案的狀態。這從反面印證了:僅僅依靠一個"一視同仁"地打散數值的固定變換,在2比特這種極端壓縮比下是遠遠不夠的,必須結合數據統計特性和下游敏感度做針對性優化。

長文本場景下的額外驗證

除了常規的推理任務,研究者還測試了長文本檢索能力,用了RULER NIAH(在超長文本里找一根"針")和MRCR(多輪對話里精確複述某一輪內容)這兩個長上下文基準。

在RULER NIAH測試里,WUSH-KV在從4k到128k token各種長度下,分數都穩穩壓過OSCAR,差距在128k這個最長的場景下拉得最大,WUSH-KV是57.26%,OSCAR只有25.69%,幾乎是對半砍。這說明WUSH-KV在真正考驗長距離記憶精度的場景下,優勢會隨著文本變長而更加凸顯。

MRCR這個任務對所有量化方法來說都是硬骨頭,BF16原始精度的分數本身就不算高(綜合AUC只有21.95),量化之後更是大幅下滑。不過在8B模型上,WUSH-KV的綜合AUC是8.35,比OSCAR的4.72要高出不少,而且隨著context變長(64k到128k這個區間),WUSH-KV的衰減曲線明顯更平緩一些。

Q&A

Q1:WUSH-KV是什麼?

A:WUSH-KV是ISTA等機構研究者提出的一種KV緩存低比特量化方法,它藉助數據的統計特性和下游計算敏感度,構造出專門的數學變換,分別作用於Key和Value緩存,讓2比特這樣極端壓縮下的大模型推理依然保持較好的生成質量。

Q2:WUSH-KV和OSCAR方法相比表現怎麼樣?

A:在Qwen3-8B模型上,WUSH-KV在AIME數學題、MATH-500、GPQA科學問答、LiveCodeBench代碼生成這四項任務上全面超過OSCAR,LiveCodeBench上甚至領先約15個百分點。在4B和32B模型上兩者互有勝負,但WUSH-KV整體表現相對更穩定。

Q3:為什麼Key緩存的變換不能像Value那樣直接融進模型權重?

A:因為Key要先經過RoPE位置編碼處理才存入緩存,而RoPE對每個位置的旋轉操作都不同,是和位置綁定的。研究者證明,能同時兼容RoPE交換規則和歸一化約束的變換隻剩下無意義的符號翻轉,所以Key的變換必須放在RoPE之後在線計算,無法提前焊死進權重。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新