隨機淘汰也能行:KV Cache 壓縮的「選擇分數」可能根本不重要
Random Attention: Rethinking KV Cache Eviction for Efficient Reasoning
背景
近年大型語言模型靠「拉長思考鏈」(chain-of-thought)在數學、程式、科學推理等任務上突飛猛進——像 Qwen3、Phi-4-reasoning 這類模型,遇到困難題目時往往會產生數千甚至上萬個 token 的內部推理過程才給出答案。但這種「邊想邊寫」的模式有一個代價很高的副作用:KV cache(存放每個已生成 token 的 key/value 向量,供注意力機制查詢用)會隨推理長度線性膨脹,很快就變成推理服務中最吃記憶體的部分,直接限制了可同時服務的併發請求數與吞吐量。
為了解決這個瓶頸,過去幾年學界提出了大量「KV cache 淘汰(eviction)」演算法,例如 SnapKV、H2O、StreamingLLM、R-KV、TriAttention、VaSE 等。這些方法雖然細節各異,但幾乎都遵循同一套範式:針對快取中的每個 token,用某種分數(例如過去注意力權重的統計量、與當前 query 的相似度等)估計它「未來還會不會被用到」,然後只保留分數最高的一批 token,把其餘的丟棄。這個範式背後有個沒有被真正驗證過的假設——選擇分數是有效的、能挑出真正重要的 token。
由 Salesforce AI Research 團隊(Heng Wang、Jielin Qiu、Wenting Zhao 等人,2026 年 9 月發表於 arXiv,編號 2609.03430)所做的這篇研究,直接對這個假設提出質疑:如果把「算分數挑 token」整個步驟拿掉,改成在每個注意力頭(attention head)內部完全隨機丟棄 token,結果會怎樣?他們把這個極簡方法稱為 Random Attention。
方法
Random Attention 的設計刻意做到「幾乎沒有方法」:
- 保留 prompt(輸入提示):完整保留使用者輸入的原始提示部分的 KV cache,不做任何淘汰。
- 在推理軌跡(reasoning trace)中均勻隨機淘汰:對於模型自己生成的推理過程,不計算任何重要性分數,而是在每個注意力頭內部,按照固定的快取預算(budget)均勻隨機抽樣保留一部分 token,其餘直接丟棄。
- 不同注意力頭獨立抽樣:由於各頭的隨機抽樣互相獨立,同一段推理內容有機會在不同頭裡各自留下不同的「隨機副本」。
研究團隊把快取預算設定在「大約壓縮到原本推理軌跡長度的 4 倍(LiveCodeBench 約 3 倍)」,依任務不同每個頭的 token 預算 K 落在 1024–4096 之間,與主流淘汰方法的實驗設定一致,確保比較公平。
為了搞清楚「為什麼隨機也行」,作者做了兩組關鍵的控制實驗:
- Prompt 保護消融實驗:把所有基準方法(SnapKV、R-KV 等)都額外加上「強制保留 prompt」的規則,結果發現原本方法之間的效能差距大幅縮小——SnapKV 在加上 prompt 保護後準確率最多提升 22.5 個百分點,顯示各家方法過去的表現差異,有很大一部分其實只是「該方法的分數機制是否恰好保住了 prompt」,而不是分數本身有多聰明。
- 「埋設事實」探針實驗(planted-fact probe):研究者在推理軌跡中人為植入需要被記住的關鍵事實,觀察它在不同注意力頭間的分布情形。結果顯示:如果一個事實只被一個頭保留下來,它幾乎不會被後續正確提取利用;但只要有好幾個頭各自保留了一份副本,幾乎必定能被成功取用。這證明了推理軌跡存在「跨頭冗餘」——模型會在生成過程中不斷用文字重述自己還需要的資訊(文字層級冗餘),同時這些訊息也會被多個注意力頭各自複製保存(結構層級冗餘)。
正是這兩層冗餘,讓「隨機丟棄」也能大機率留下至少一份關鍵資訊的副本,完全不需要計算分數去精準挑選。
實驗結果
研究團隊在四個模型(Qwen3-4B、Qwen3-14B、Qwen3-32B、Phi-4-reasoning-14B)與六個推理任務/基準(MATH500 共 500 題、GPQA-Diamond 共 198 題、AIME 2025 & 2026 合併共 60 題、HMMT 共 60 題、LiveCodeBench-v6 medium 共 383 題,以及一項科學/程式綜合推理任務)上,將 Random Attention 與 SnapKV、R-KV、VaSE、TriAttention、StreamingLLM 等五種主流淘汰方法,以及一個「recency+prompt」診斷性基準做比較。
準確率方面,Random Attention 在多數任務上都能追平甚至略勝過去表現最好的方法。例如在 MATH500(Qwen3-4B)上,Random Attention 得到 0.874,優於當前最強基準 TriAttention 的 0.864;在 GPQA-Diamond(Phi-4-reasoning)上則是 0.678 對 0.684,幾乎打平。整體而言,六個任務、四個模型的組合中,Random Attention 的表現都落在最強基準的誤差範圍內,而不需要做任何額外的分數計算。
效能方面的差異則相當顯著:在 vLLM 部署環境下,針對 32K token 長度的生成任務,Random Attention 的吞吐量比表現最強的 TriAttention 高出 32–43%,相對於完整保留全部 KV cache(full attention)的基準,吞吐量提升可達 1.58–2.67 倍。這個差距的來源很直觀:分數式方法(如 TriAttention、SnapKV)每一步都要額外計算並排序 token 重要性分數,這在計算圖和記憶體存取上都有不小開銷;而 Random Attention 完全跳過這一步,只需一次隨機抽樣操作,因此在同等記憶體預算下能服務更多並發請求、達到更高吞吐量。
意義
這篇論文的價值不在於提出了一個「更強」的 KV cache 壓縮演算法,而在於它動搖了整個領域過去幾年的隱含假設:精心設計的重要性評分機制,是取捨快取內容不可或缺的關鍵。作者的控制實驗顯示,過去各家方法之間看似有意義的效能差距,很大程度上只是「有沒有意外保住 prompt」的差異;而推理軌跡本身因為模型會不斷自我複述、加上多頭注意力天然的冗餘結構,即使隨機丟棄大部分內容,也大機率留下足夠的關鍵資訊副本。
對從業者而言,這意味著在生產環境部署長鏈推理模型時,與其投入工程資源去實作、維護複雜的逐 token 評分邏輯(這些邏輯往往還需要額外的計算開銷、且難以在 vLLM 等高吞吐服務框架中高效實現),不如採用「保留 prompt + 頭內隨機淘汰」這種近乎零開銷的策略,換取 32–43% 的吞吐量提升,而準確率幾乎不受影響。這對於需要大規模服務長推理鏈模型(如數學競賽解題、程式生成、科學問答代理)的公司來說,是直接可落地、能顯著降低服務成本的發現。
更廣義地看,這項研究也提醒研究社群:在设计資源受限下的模型優化方法時,應該先用簡單的隨機基準(random baseline)去檢驗「看似聰明的機制」到底貢獻了多少價值——很多時候,真正起作用的可能是模型自身的內在冗餘與魯棒性,而不是我們外加的啟發式規則。作者已將程式碼公開於 GitHub(SalesforceAIResearch/Random-Attention),方便後續研究者驗證與延伸這一發現。