在大規模生產級LLM推論中,KV快取的記憶體壓力已經超過模型權重,成為承重約束。本週三Marktechpost技術綜述給的資料:300億參數模型在batch 128、輸入1024 token的情況下,光KV快取狀態就需要約180GB;7B模型的KV快取(72GB)是模型參數本身(FP16下14GB)的5倍。這是把一個研究方向推到台前的反轉——不重訓練基模,只壓縮KV快取,你就能多騰出batch大小的餘地、提升吞吐、在同一硬體上服務更多並發使用者。綜述涵蓋了10種生產相關技術,分布在四大策略族裡。
第一族是「驅逐」——保留一部分token、丟棄另一部分。H2O(Heavy Hitter Oracle,NeurIPS 2023)觀察到一小部分token承載了大部分注意力質量,動態保留這些重擊者(Heavy Hitters)加上最近的token,在OPT-6.7B/30B上相對HuggingFace Accelerate達到29倍吞吐。StreamingLLM保留前幾個token(它們充當「注意力匯」)加一個最近性滑動窗——快速、硬體友善,但對中段語意重要性是盲的。SnapKV在長prompt的末尾使用一個「觀察窗」,專攻prefill階段的壓縮,這是H2O留白的部分。PyramidKV / PyramidInfer根據觀察到的注意力模式按層分配不同的快取大小,聲稱2.2倍吞吐、54%的GPU記憶體削減。驅逐族的失敗模式是資訊損失:被丟掉的內容在生成的剩餘部分都找不回來,需要在中段散落點上回憶的任務品質會下降。
第二族是「量化」——保留所有token,但每個token用更少的位。KIVI是即插即用的2-bit KV量化,無須微調,鍵按通道量化、值按token量化;報告2.6倍峰值記憶體削減、4倍更大批次、2.35-3.47倍吞吐提升。KVQuant加入校準的混合精度(每通道鍵量化、pre-RoPE量化、密-稀分解),把精度推到sub-4-bit,適配長達1000萬token的上下文。TurboQuant是Google的較新方法,使用隨機正交旋轉(PolarQuant)加1-bit量化Johnson-Lindenstrauss修正,聲稱在3-bit下達到6-8倍記憶體削減,且無需離線校準。第三族是架構層:Grouped-Query Attention(GQA)與Multi-Query Attention(MQA)從設計上減小KV快取——多個查詢頭共享更少的key/value頭。GQA現在是Llama 3、Mistral和多數開放權重模型的事實預設。DeepSeek的Multi-head Latent Attention(MLA)走得更遠:在推論時把鍵和值投影到壓縮的潛向量,DeepSeek-V2上報告93.3%的KV快取削減且無品質損失。第四族——Palu / LoRC的低秩權重分解——透過分組頭的低秩投影削減快取,且與量化和驅逐正交,可以與其他族疊加。
對builder而言,有三點收穫。第一,選哪個技術取決於哪一階段卡你。如果prefill延遲是約束(prompt非常長),SnapKV與Pyramid類方法有用;如果decode吞吐是約束(長生成、多併發),H2O、KIVI、StreamingLLM佔優。如果你從零訓練新模型,架構修復(GQA/MLA)是第一槓桿——推論時是免費的,且能與其他全部疊加。第二,留意哪些推論棧整合了哪些技術:vLLM、TensorRT-LLM、SGLang、llama.cpp、TGI各自支援的集合不同,「研究論文聲稱X」與「生產函式庫給出在你的GPU上能跑的X的核心」之間的鴻溝是真實的。第三,這個反轉(KV快取 > 模型權重)正是為什麼2025-2026每一次前沿模型發布都內建了對注意力的修改(Llama 3的GQA、DeepSeek-V2/V3的MLA、Qwen3的GDN+attention混合)。你現在下載的「開放權重」裡,內含隱式的KV快取壓縮押注;如果你拿模型互相比較推論成本,必須在你具體的batch大小和序列長度下測量KV快取佔用,不能只看參數量。builder的教訓是:當記憶體是瓶頸時,模型權重數已經不再是合適的比較單位。
