Kara:透過滑動視窗KV快取壓縮實現高效推理LLM服務
本文提出Kara,一種滑動視窗KV快取壓縮方法,透過僅在最近生成的上下文上操作並進行解碼時壓縮,利用雙向注意力機制評分和選擇資訊性KV對,並設計Token2Chunk模組靈活保留重要語義資訊。實驗表明,Kara和基於vLLM的推理框架KvLLM顯著降低了KV快取記憶體使用並提高了輸出吞吐量。
推理語言模型(如思維鏈推理模型)在生成長鏈式思維(CoT)時,解碼階段會積累大量KV快取,導致高延遲和有限的吞吐量。KV快取壓縮透過選擇性地移除不重要的KV對來減輕記憶體負擔,是一項有前景的技術。然而,現有方法存在兩大侷限:第一,閾值觸發的壓縮策略可能無法提升甚至降低吞吐量,並且可能完全刪除某些序列塊的KV對,加劇資訊損失;第二,它們通常只保留孤立的KV對或固定大小的chunk,無法靈活保留任意位置的重要語義資訊。
針對這些問題,研究團隊提出了Kara,一種滑動視窗KV快取壓縮方法。Kara僅在最近生成的上下文視窗內執行解碼時壓縮,利用雙向注意力機制計算視窗內每個KV對的注意力得分,從而選擇資訊量最高的KV對。為了靈活保留重要語義,他們設計了Token2Chunk模組,將選中的KV對擴充套件為可變大小的chunk,避免剛性邊界造成的資訊割裂。這種設計允許保留任意位置的可變大小語義塊,克服了先前方法的缺陷。
Kara還被適配到PagedAttention中,並基於vLLM構建了推理框架KvLLM。PagedAttention是一種高效的記憶體管理技術,透過分頁管理KV快取減少碎片化。Kara與PagedAttention的結合進一步最佳化了記憶體使用。實驗在多種任務上進行,包括語言建模、問答和推理,結果顯示Kara和KvLLM一致地降低了KV快取記憶體使用,並顯著提升了輸出吞吐量。例如,在長序列生成任務中,Kara相比基線方法減少了高達50%的KV快取大小,同時保持甚至提高了生成質量。
這項工作的意義在於,它為長上下文推理的高效部署提供了實用解決方案,尤其適用於需要大量CoT推理的應用場景,如數學推理、程式碼生成和多步問答。Kara的設計兼顧了壓縮效率和資訊保留,為未來推理模型的服務最佳化指明瞭方向。