![]()
這項(xiàng)由華為中央軟件院研究團(tuán)隊(duì)完成的研究,以預(yù)印本形式發(fā)布于2026年6月2日,論文編號(hào)為arXiv:2606.03458,感興趣的讀者可通過(guò)該編號(hào)查閱完整原文。
當(dāng)你和一個(gè)健忘的朋友聊天,他每隔幾分鐘就會(huì)忘記你剛說(shuō)的話,你們的對(duì)話會(huì)變得越來(lái)越混亂。越到后面,他說(shuō)的話就越?jīng)]法接上前面的邏輯,最終整個(gè)對(duì)話就崩掉了。現(xiàn)代AI大語(yǔ)言模型面臨著一個(gè)非常相似的困境——只不過(guò),這種"健忘"不是因?yàn)槟X子不好使,而是因?yàn)閮?nèi)存不夠用。
近年來(lái),AI領(lǐng)域掀起了一股"推理時(shí)擴(kuò)展"的熱潮。簡(jiǎn)單來(lái)說(shuō),就是讓模型在回答一個(gè)問(wèn)題之前,花更多時(shí)間思考,生成更長(zhǎng)的"思維鏈",就像人類在解一道難題時(shí)會(huì)先打草稿。DeepSeek、o系列模型這些推理大模型的崛起,正是這個(gè)思路的產(chǎn)物。但問(wèn)題隨之而來(lái):思考得越久,占用的"記憶空間"就越多。這里所說(shuō)的記憶空間,在技術(shù)上叫做KV緩存,你可以把它理解成AI在思考過(guò)程中隨手記在紙上的草稿。思考鏈越長(zhǎng),草稿紙就越多,GPU的內(nèi)存就越快被塞滿。
解決這個(gè)問(wèn)題的一個(gè)思路是"壓縮草稿"——也就是KV緩存量化技術(shù)。這就像把寫(xiě)滿字的A4紙拍成縮略圖存起來(lái),用更少的空間存更多的信息。極端情況下,可以把原本每個(gè)數(shù)據(jù)用16位二進(jìn)制表示,壓縮到只用2位。這樣一來(lái),內(nèi)存占用可以縮減到原來(lái)的八分之一。
但壓縮不是免費(fèi)的。就像把一份詳細(xì)地圖壓縮成一張小圖,細(xì)節(jié)必然會(huì)丟失。問(wèn)題在于:究竟哪些細(xì)節(jié)的丟失是致命的,哪些是無(wú)所謂的?華為的研究團(tuán)隊(duì)發(fā)現(xiàn),以往的方法在回答這個(gè)問(wèn)題上犯了一個(gè)關(guān)鍵性的錯(cuò)誤,而這個(gè)錯(cuò)誤在AI做長(zhǎng)篇推理時(shí)會(huì)越滾越大。他們由此提出了一種名為KVarN的新方法,在幾乎不增加計(jì)算成本的前提下,大幅改善了壓縮效果。
一、草稿紙的兩種損壞方式
要理解KVarN解決的問(wèn)題,先得搞清楚草稿被壓縮后會(huì)出現(xiàn)什么樣的損壞。
研究團(tuán)隊(duì)把壓縮誤差分成了兩種類型。第一種叫"方向誤差",第二種叫"幅度誤差"。以一支箭來(lái)打比方:一支箭既有方向(朝哪飛),也有長(zhǎng)短(飛多遠(yuǎn))。方向誤差就是箭飛歪了,幅度誤差就是箭飛遠(yuǎn)了或近了。
對(duì)于AI模型里的KV緩存來(lái)說(shuō),這兩種誤差對(duì)最終結(jié)果的影響是完全不同的。研究團(tuán)隊(duì)通過(guò)數(shù)學(xué)分析,把每一個(gè)壓縮誤差分解成這兩個(gè)分量,然后觀察最大的那些誤差主要是由哪種原因造成的。結(jié)果非常清晰:在最大的0.1%的誤差里,有超過(guò)80%來(lái)自幅度誤差;在最大的1%的誤差里,幅度誤差的貢獻(xiàn)也超過(guò)60%。換句話說(shuō),那些真正"壞得厲害"的壓縮,幾乎都是因?yàn)橐恢Ъ擄w100米,結(jié)果只飛了20米,或者飛了500米——方向其實(shí)還湊合,主要是遠(yuǎn)近出了大問(wèn)題。
這個(gè)發(fā)現(xiàn)直接指向了一個(gè)更具體的問(wèn)題:是哪些"箭"特別容易出現(xiàn)幅度誤差?答案是那些本身就特別"長(zhǎng)"或特別"短"的箭,也就是在KV緩存中,那些數(shù)值特別大或特別小的"異常詞元"。在AI模型處理語(yǔ)言的過(guò)程中,每一個(gè)詞(或子詞)都會(huì)產(chǎn)生一組數(shù)值,這組數(shù)值的整體大小就是所謂的"詞元幅度"。某些特殊位置的詞會(huì)產(chǎn)生異常大的數(shù)值,這些詞在壓縮過(guò)程中會(huì)被嚴(yán)重變形,而這種變形是致命的。
更糟糕的是,研究團(tuán)隊(duì)還發(fā)現(xiàn),這些大誤差對(duì)最終輸出質(zhì)量的破壞程度,遠(yuǎn)超它們?cè)诳傉`差中的占比。他們做了一個(gè)實(shí)驗(yàn):如果把最差的5%的誤差替換成精確值,最終輸出質(zhì)量的提升遠(yuǎn)超過(guò)修正剩余95%誤差所能帶來(lái)的提升。這就好像一個(gè)蛋糕配方里99%的步驟都做對(duì)了,但鹽放多了十倍,整個(gè)蛋糕就毀了——那1%的致命錯(cuò)誤的危害,遠(yuǎn)超過(guò)其他99%的小瑕疵之和。
二、錯(cuò)誤是怎樣像滾雪球一樣越來(lái)越大的
發(fā)現(xiàn)"幅度誤差是主要敵人"只是第一步。研究團(tuán)隊(duì)還揭示了一個(gè)更令人擔(dān)憂的現(xiàn)象:這種誤差會(huì)隨著AI生成文本的時(shí)間推移,不斷累積放大。
以往評(píng)測(cè)KV緩存壓縮效果的主流方法,是把一大段文字一次性送進(jìn)模型(叫做"預(yù)填充"模式),然后看壓縮后的結(jié)果有多準(zhǔn)確。這就像給一個(gè)人一本書(shū),讓他一次讀完,然后測(cè)試他的理解。但AI在實(shí)際推理時(shí)不是這樣工作的。它是一個(gè)詞一個(gè)詞地生成文本,每生成一個(gè)詞,這個(gè)詞的草稿就會(huì)被記錄下來(lái),然后在生成下一個(gè)詞時(shí)被用到。
這就意味著:如果早期生成的草稿已經(jīng)被壓縮變形了,那么之后的每一步都是基于這份變形的草稿繼續(xù)生成的。變形的草稿產(chǎn)生了略微錯(cuò)誤的下一個(gè)詞,錯(cuò)誤的詞產(chǎn)生了更錯(cuò)誤的草稿,更錯(cuò)誤的草稿又產(chǎn)生了更錯(cuò)誤的詞……這是一個(gè)雪球越滾越大的過(guò)程。
為了測(cè)量這個(gè)雪球效應(yīng),研究團(tuán)隊(duì)設(shè)計(jì)了一種叫做"偽解碼"的評(píng)測(cè)方法。具體做法是把一段長(zhǎng)文本切成若干小塊,每處理完一塊就壓縮一次草稿,然后用壓縮過(guò)的草稿處理下一塊。這樣就模擬了AI在實(shí)際生成長(zhǎng)文本時(shí)的真實(shí)狀態(tài)。通過(guò)對(duì)比不同壓縮方法在這種"累積"模式下和傳統(tǒng)"靜態(tài)"模式下的表現(xiàn)差異,可以直接觀察到錯(cuò)誤累積的速度。
研究結(jié)果令人警覺(jué)。在傳統(tǒng)的KIVI壓縮方法下,隨著上下文長(zhǎng)度從幾千詞增長(zhǎng)到三萬(wàn)詞,累積模式下的誤差比靜態(tài)模式下的誤差顯著更大,而且差距隨著長(zhǎng)度增加而擴(kuò)大。這意味著,那些在短文本上表現(xiàn)還不錯(cuò)的壓縮方法,在AI做長(zhǎng)篇推理時(shí)會(huì)越來(lái)越力不從心。
三、Hadamard旋轉(zhuǎn):一個(gè)有用但不夠用的老工具
在華為團(tuán)隊(duì)提出KVarN之前,學(xué)術(shù)界已經(jīng)有一種常用于模型權(quán)重壓縮的技術(shù),叫做Hadamard旋轉(zhuǎn)(也稱為"非相干處理")。這個(gè)名字聽(tīng)起來(lái)很玄,本質(zhì)上是做了一次數(shù)學(xué)上的"混合攪拌"。
可以用調(diào)雞尾酒來(lái)理解:原始的KV緩存就像一杯分層明顯的酒,某幾層數(shù)值特別大,某幾層特別小,這種不均勻性讓壓縮很難做。Hadamard旋轉(zhuǎn)就像用攪拌棒把這杯酒充分混合均勻,讓每一層的濃度都差不多,從而讓壓縮更容易。
研究團(tuán)隊(duì)測(cè)試了只用Hadamard旋轉(zhuǎn)的效果,并把它標(biāo)記為"HK"方法(Hadamard rotated K)。結(jié)果顯示,這種方法確實(shí)能改善"通道維度"上的不均勻性——也就是說(shuō),在同一個(gè)詞產(chǎn)生的那一組數(shù)值內(nèi)部,不均勻性減少了。但對(duì)于"詞元維度"上的不均勻性——也就是不同詞之間幅度的懸殊差異——Hadamard旋轉(zhuǎn)的改善效果非常有限。
從研究團(tuán)隊(duì)提供的圖示中可以看到,用Hadamard旋轉(zhuǎn)處理后,那些極端大或極端小的詞,壓縮前后的幅度差異依然很大。雪球效應(yīng)的根源——詞元幅度錯(cuò)誤——并沒(méi)有被根本解決。
四、KVarN的核心武器:雙軸方差歸一化
這正是KVarN的關(guān)鍵創(chuàng)新所在。研究團(tuán)隊(duì)在Hadamard旋轉(zhuǎn)的基礎(chǔ)上,引入了一種名為"方差歸一化"的額外處理步驟,而且是同時(shí)在兩個(gè)維度上做——既沿著通道維度(同一個(gè)詞內(nèi)部),也沿著詞元維度(不同詞之間)。
繼續(xù)用調(diào)酒的比喻:Hadamard旋轉(zhuǎn)只混合了每杯酒的內(nèi)部,但不同杯子之間的容量依然差異巨大——有的杯子裝了一升,有的只裝了一毫升。方差歸一化就像在混合之后,再給每杯酒換成統(tǒng)一大小的標(biāo)準(zhǔn)杯,把多余的倒掉,把不足的補(bǔ)滿,讓每杯酒的量級(jí)都大致相當(dāng)。
技術(shù)上,這個(gè)過(guò)程用的是一種叫"Sinkhorn-Knopp風(fēng)格"的迭代算法。聽(tīng)起來(lái)復(fù)雜,實(shí)際上思路很直接:交替對(duì)行和列做縮放,每次縮放都讓整個(gè)矩陣的行方差和列方差更接近均勻,重復(fù)幾次直到足夠均勻?yàn)橹埂Q芯繄F(tuán)隊(duì)把這個(gè)步驟記為VarN()。
在實(shí)際操作中,KVarN的完整流程是這樣的:每產(chǎn)生一個(gè)新詞,就先對(duì)這個(gè)詞的KV數(shù)值做Hadamard旋轉(zhuǎn)(混合內(nèi)部);積累了128個(gè)詞之后,對(duì)這128個(gè)詞形成的矩陣做方差歸一化(統(tǒng)一詞間量級(jí));然后再做標(biāo)準(zhǔn)的四舍五入量化壓縮,同時(shí)存儲(chǔ)兩個(gè)縮放系數(shù)——一個(gè)是量化時(shí)的標(biāo)準(zhǔn)尺度,另一個(gè)是方差歸一化時(shí)用到的額外尺度。
關(guān)鍵在于,這個(gè)額外的縮放系數(shù)在存儲(chǔ)時(shí)占用的空間極小,而在使用時(shí)(即從壓縮狀態(tài)還原時(shí))只需要額外做一次簡(jiǎn)單的乘法。研究團(tuán)隊(duì)測(cè)量了這個(gè)額外步驟的計(jì)算開(kāi)銷:在Qwen3-4B模型上,每生成128個(gè)詞的時(shí)間是1050毫秒,而對(duì)所有注意力層做一次方差歸一化只需要1.9毫秒,占比0.18%,基本可以忽略不計(jì)。
五、兩種工具相互補(bǔ)充,而不是簡(jiǎn)單疊加
Hadamard旋轉(zhuǎn)和方差歸一化的關(guān)系,并不是簡(jiǎn)單的"一加一等于二",而是兩種工具各有所長(zhǎng)、互相彌補(bǔ)。
從研究團(tuán)隊(duì)提供的每詞元幅度誤差分布圖可以看出這一點(diǎn)。對(duì)于那些幅度處于"中間范圍"的普通詞,Hadamard旋轉(zhuǎn)的效果相當(dāng)好,能把壓縮前后的幅度差異壓縮到很小的范圍。但對(duì)于那些幅度極大或極小的"異常詞",Hadamard旋轉(zhuǎn)就力不從心了,這些詞的壓縮誤差依然散布在很寬的范圍內(nèi)。方差歸一化則恰好在這些極端情況下表現(xiàn)突出,能有效約束這些異常詞的幅度誤差。兩者疊加之后的KVarN,在整個(gè)幅度范圍內(nèi)都能把誤差控制得很好,特別是那些之前無(wú)法處理的極端情況,幾乎被完全馴服了。
在聯(lián)合分布圖中,理想的壓縮應(yīng)該讓壓縮后的幅度與壓縮前的幅度完全一致,也就是所有點(diǎn)都落在一條對(duì)角線上。KIVI方法的點(diǎn)圖顯示出大量偏離對(duì)角線的散點(diǎn),特別是在大幅度區(qū)域。KVarN的點(diǎn)圖則幾乎所有點(diǎn)都緊貼對(duì)角線,說(shuō)明幅度保真度大幅提升。
六、在真實(shí)推理任務(wù)上的表現(xiàn)
研究團(tuán)隊(duì)在多個(gè)實(shí)際任務(wù)上測(cè)試了KVarN,涵蓋數(shù)學(xué)推理、代碼生成和指令遵循三大類,并與多種主流壓縮方法進(jìn)行了對(duì)比。
在數(shù)學(xué)推理方面,AIME24是一個(gè)競(jìng)賽級(jí)別的數(shù)學(xué)題庫(kù),題目難度極高,需要長(zhǎng)篇推理才能作答。在Qwen3-4B模型上,不壓縮的原始FP16精度下正確率為61.1%;KIVI壓縮到2位后,正確率降到55.5%;只加Hadamard旋轉(zhuǎn)的QuaRot方法則是56.7%;而KVarN在同樣的2位2.3比特每元素的壓縮率下,達(dá)到了60%,幾乎完全追平了不壓縮的精度。在體量更大的Phi-4-14B模型上,效果更為驚人——FP16精度下62.2%,KVarN為61.7%,壓縮幾乎沒(méi)有損失,而KIVI則降到57.8%。
在MATH500數(shù)學(xué)基準(zhǔn)測(cè)試上,Qwen3-4B在FP16下正確率為82.6%,KVarN壓縮后為79.2%,而KIVI只有77.8%。Phi-4-14B的結(jié)果更為突出:FP16精度84.9%,KVarN為84.8%,幾乎完全保留了模型能力,而KIVI則降至74.4%。
在代碼生成方面的HumanEval測(cè)試中,Qwen3-4B的FP16精度為88.8%,KVarN為88.4%,KIVI為86.4%。Phi-4-14B的FP16精度為88.9%,KVarN為88.2%,而KIVI則下滑到了74.6%。這個(gè)74.6%對(duì)應(yīng)的任務(wù)是讓模型把自然語(yǔ)言描述翻譯成能運(yùn)行的Python代碼,精度損失如此之大意味著大量代碼會(huì)運(yùn)行出錯(cuò)。
在指令遵循測(cè)試IFEval上,評(píng)測(cè)模型能否嚴(yán)格按照要求格式輸出——比如字?jǐn)?shù)限制、特定模板等。KVarN在三個(gè)模型上均表現(xiàn)最佳或與最佳持平,而且是在所有方法中唯一同時(shí)做到低比特率、均勻精度、且性能接近FP16的方法。
在長(zhǎng)上下文檢索測(cè)試"行檢索"中,測(cè)試要求模型從包含數(shù)百行文字的長(zhǎng)文本中找到特定行的內(nèi)容。隨著行數(shù)增加,任務(wù)難度急劇上升,因?yàn)樯舷挛脑絹?lái)越長(zhǎng),錯(cuò)誤累積效應(yīng)越來(lái)越明顯。KVarN在100到600行的各個(gè)測(cè)試點(diǎn)上,均優(yōu)于KIVI和其他所有2比特方法,且在600行時(shí)仍能維持較高準(zhǔn)確率,而KIVI在600行時(shí)準(zhǔn)確率已顯著下降。
相比之下,研究團(tuán)隊(duì)還測(cè)試了KVQuant(保留1%通道為FP16的混合精度方法)、PolarQuant(用極坐標(biāo)表示鍵值)、TurboQuant(基于向量量化的高精度編碼本方法)和Kitty(動(dòng)態(tài)通道精度提升方法)。KVarN在2.3比特每元素的最低存儲(chǔ)開(kāi)銷下,取得了所有方法中最高的綜合性能。特別值得一提的是,KVarN使用的是"均勻精度"——每個(gè)元素都用相同的位數(shù)表示,不需要針對(duì)不同位置使用不同精度,這大大簡(jiǎn)化了硬件實(shí)現(xiàn)。
七、偽解碼測(cè)試:錯(cuò)誤積累的直接證據(jù)
研究團(tuán)隊(duì)用他們提出的偽解碼評(píng)測(cè)方法,直接展示了KVarN在抑制誤差累積方面的優(yōu)勢(shì)。
實(shí)驗(yàn)對(duì)象是Qwen3-4B模型,輸入約三萬(wàn)詞的長(zhǎng)文本,對(duì)比了KIVI和KVarN在靜態(tài)模式(一次性壓縮,不累積)和累積模式(逐塊壓縮,模擬真實(shí)推理)下的注意力輸出重構(gòu)誤差。
結(jié)果呈現(xiàn)出幾個(gè)清晰的規(guī)律。在任何上下文長(zhǎng)度下,KVarN的誤差都低于KIVI,這是基本的量化質(zhì)量提升。在累積模式下,兩種方法的誤差都隨著上下文長(zhǎng)度增加而增大,但KIVI的增速明顯更快。KVarN的累積模式誤差與KIVI的靜態(tài)模式誤差大致相當(dāng),這意味著KVarN的累積誤差幾乎和KIVI靜態(tài)時(shí)一樣低。換句話說(shuō),KVarN不僅基準(zhǔn)誤差更低,而且對(duì)時(shí)間累積效應(yīng)更有抵抗力,隨著上下文拉長(zhǎng),KVarN相對(duì)于KIVI的優(yōu)勢(shì)還在不斷擴(kuò)大。
這個(gè)結(jié)果直接解釋了為什么KVarN在AIME24這類需要超長(zhǎng)推理鏈的任務(wù)上優(yōu)勢(shì)最為顯著——那正是誤差累積效應(yīng)最嚴(yán)重的場(chǎng)景。
說(shuō)到底,這篇研究揭示的核心洞察其實(shí)并不復(fù)雜:在壓縮AI的"記憶草稿"時(shí),最危險(xiǎn)的不是那些均勻分布的小誤差,而是少數(shù)幾個(gè)"跑偏得離譜"的詞,它們的幅度被嚴(yán)重改變,然后在漫長(zhǎng)的推理過(guò)程中把這種改變不斷放大。華為團(tuán)隊(duì)的解法——先攪拌均勻,再統(tǒng)一量級(jí)——既有效又廉價(jià),額外開(kāi)銷不足0.2%,卻在競(jìng)賽數(shù)學(xué)、代碼生成等高難度任務(wù)上把2位壓縮的質(zhì)量提升到了接近不壓縮的水平。
這項(xiàng)研究的意義超出了技術(shù)本身。隨著AI推理模型被越來(lái)越廣泛地部署,對(duì)內(nèi)存效率的需求只會(huì)越來(lái)越迫切。KVarN提供的是一個(gè)可以直接在現(xiàn)有推理框架(如vLLM)中實(shí)現(xiàn)的實(shí)用方案,研究團(tuán)隊(duì)已將相關(guān)代碼開(kāi)放,感興趣的技術(shù)讀者可以通過(guò)arXiv編號(hào)2606.03458找到原論文,進(jìn)一步了解算法細(xì)節(jié)和實(shí)現(xiàn)方式。
一個(gè)值得思考的問(wèn)題是:隨著推理鏈越來(lái)越長(zhǎng),AI模型產(chǎn)生的"草稿紙"會(huì)繼續(xù)膨脹,壓縮技術(shù)的重要性會(huì)越來(lái)越突出。下一個(gè)值得關(guān)注的方向,或許是如何把量化技術(shù)與另一大類壓縮策略——"丟棄不重要的詞"(即KV驅(qū)逐和詞元合并)——有機(jī)結(jié)合,兩條路線天然互補(bǔ),組合使用有望進(jìn)一步突破內(nèi)存瓶頸。
Q&A
Q1:KV緩存量化會(huì)不會(huì)讓AI變笨,特別是在做數(shù)學(xué)題的時(shí)候?
A:KV緩存量化確實(shí)會(huì)帶來(lái)一定精度損失,但KVarN方法把這種損失壓到了非常低的水平。以Phi-4-14B模型為例,在MATH500數(shù)學(xué)測(cè)試中,不壓縮時(shí)正確率84.9%,KVarN壓縮到2位后仍有84.8%,幾乎沒(méi)有差別。關(guān)鍵在于KVarN專門針對(duì)長(zhǎng)篇推理場(chǎng)景設(shè)計(jì),抑制了誤差隨時(shí)間累積的問(wèn)題,而這正是數(shù)學(xué)推理任務(wù)最需要的特性。
Q2:KVarN比KIVI好在哪里,為什么以前沒(méi)有人這樣做?
A:KIVI在量化時(shí)沒(méi)有專門處理"詞元幅度"的問(wèn)題,導(dǎo)致某些詞被壓縮后幅度嚴(yán)重失真,而這種失真在長(zhǎng)文本生成時(shí)會(huì)不斷放大。KVarN通過(guò)增加一步方差歸一化,直接用一個(gè)額外的高精度縮放系數(shù)來(lái)記錄和還原每個(gè)詞的幅度信息,從根本上解決了這個(gè)問(wèn)題。以前沒(méi)有人這樣做,是因?yàn)閷W(xué)術(shù)界通常在"一次性預(yù)填充"場(chǎng)景下評(píng)測(cè)壓縮方法,這個(gè)場(chǎng)景下誤差不會(huì)累積,問(wèn)題不明顯,真正的弱點(diǎn)被掩蓋了。
Q3:KVarN實(shí)現(xiàn)起來(lái)復(fù)雜嗎,普通開(kāi)發(fā)者能用上嗎?
A:KVarN的核心操作包括Hadamard旋轉(zhuǎn)和迭代方差歸一化,這兩步都可以高效地在GPU上實(shí)現(xiàn)。研究團(tuán)隊(duì)已經(jīng)在vLLM推理框架中實(shí)現(xiàn)了KVarN,并開(kāi)放了代碼。額外的計(jì)算開(kāi)銷只有約0.18%,解壓時(shí)的額外乘法操作也可以融合進(jìn)現(xiàn)有的量化內(nèi)核中,實(shí)測(cè)延遲增加不超過(guò)1.4%。對(duì)于有GPU推理部署經(jīng)驗(yàn)的開(kāi)發(fā)者來(lái)說(shuō),接入成本相對(duì)較低。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.