基本概念
KV快取機制(Key-Value Cache),即鍵-值快取機制,是一種用於加速Transformers模型推理過程的技術。在自回歸解碼過程中,將先前計算得到的鍵(Key)和值(Value)向量快取起來,並在後續步驟中重複使用,以顯著減輕重複計算,提升推理效率。該機制旨在最佳化AI推理,特別是大型語言模型的推理過程,通過避免對已處理標記的冗餘計算來實現效率提升和計算成本降低,適用於需要實時回響的
自然語言處理套用(如
機器翻譯、
語音識別等)。
實現與性能分析
KV快取的常見實現方式包括使用快取表等數據結構。在具體代碼實現中,通常會設計專門的KVCache類來管理快取,並通過集成KV快取的注意力機制類如CachedMultiHeadAttention類進行計算。
使用KV快取機制後,在自回歸生成過程中,計算複雜度從O(N)降低到O(N),記憶體訪問複雜度也從O(N)降低到O(N)。性能測試數據表明,在序列長度為2048時,使用KV快取可將推理時間從1256.3毫秒減少到38.5毫秒,加速比達到32.6倍。這顯著提高了推理效率。
KV快取會帶來額外的記憶體開銷,例如,對於一個典型配置的模型,每個token的KV快取記憶體占用約為0.5 MB,這帶來了記憶體管理方面的挑戰。
最佳化策略與套用
針對KV快取機制帶來的記憶體占用與效率挑戰,研究者與實踐者提出了多種最佳化策略,這些策略已廣泛套用於各類
自然語言處理任務中。在快取管理方面,實際部署建議包括動態調整快取大小、進行記憶體監控、實施快取預熱以及使用多版本快取等策略。在快取壓縮與結構最佳化方面,常見方法包括共用KV快取以及量化技術,以減少顯存占用。
性能分析表明,使用KV快取後,計算複雜度從O(N)降低到O(N),記憶體訪問從O(N)降低到O(N)。在序列長度為2048時,推理加速比可達32.6倍。
然而,KV快取也帶來了顯著的記憶體壓力。每個token的KV快取記憶體占用約為0.5 MB。其記憶體低效性主要體現為三種類型:因未知輸出長度導致的過度分配引起的內部碎片、為將來token預留造成的預留浪費,以及處理不同序列長度請求導致的外部碎片。通常僅有20-40%的KV快取被有效利用。
隨著AI智慧型體服務的擴展,充當長期記憶的KV快取記憶體作用日益凸顯,過去由高頻寬記憶體(HBM)承擔的角色,正逐漸轉向由NAND記憶體來擔當。高頻寬快閃記憶體(HBF)是一種通過垂直堆疊
NAND快閃記憶體來顯著增加容量的記憶體,其堆疊方式與HBM類似。有觀點認為,為應對快速增長的需求,可能需要結合HBF等方案。大模型實時推理中的KV CACHE只有HBM或
DRAM能夠接納,但KV Off load到NAND的趨勢十分明確。由於AI推理需求爆發,存儲需求隨之增長,預計2026-2027年HBM產能已被完全預定,2028年在激進擴產下仍可能供不應求。
在AI晶片架構中,為應對快速增長的需求,可能需要結合
高頻寬記憶體(
HBM)和高頻寬快閃記憶體(HBF)等方案,如GPU兩側各搭載HBM和HBF的下一代記憶體架構方案。
該技術被廣泛套用於各種基於Transformers模型的自然語言處理任務中,如文本生成、機器翻譯、問答系統等,並常與分頁注意力等技術結合以進一步最佳化記憶體管理。
在AI產業實踐中,像素級的KV Cache工程微操等最佳化策略被用於降低算力成本,應對Token消耗指數級增長帶來的算力焦慮。
KV Cache技術的廣泛套用作為AI推理的關鍵需求,對上游存儲晶片產業生態和市場評估標準產生了影響。為應對AI套用帶來的記憶體需求增長,存儲晶片供應模式出現向長期穩定轉變的趨勢,市場評估也更多關注高端產品在
數據中心中的占比等指標。數據中心記憶體產值的提升部分反映了KV Cache等技術的驅動作用。