KV快取
KV 快取儲存轉換器已經為先前的標記計算的鍵和值向量,因此它不必為它產生的每個新單字重新計算它們。
概述
It is the single biggest reason text generation is fast — and the main thing eating your GPU memory during long conversations.
深入探討
Transformer 一次產生一個 token 的文本,每個新 token 的注意力層需要與每個先前的 token 進行比較。注意力機制將每個標記轉換為查詢、鍵和值向量。如果沒有緩存,產生令牌數量 1,000 將意味著在每一步重新計算所有 999 個早期令牌的鍵和值 - 二次方,浪費工作。 KV 快取在首次計算並重複使用這些鍵和值向量後保存這些向量,因此每個新步驟僅計算單個最新令牌的向量並參與儲存的快取。這將每個令牌的成本從隨序列長度縮放到大致恆定。權衡是記憶體:快取隨著上下文長度、層數和注意力頭線性增長,通常成為長上下文服務中的主要記憶體消耗者。
技術洞察
在「預填充」階段,模型處理整個提示並填充快取;在「解碼」期間,它會在每一步附加一個令牌的 K/V 並重新參與。快取大小依所選精確度縮放為 2(K 和 V)× 層數 × 頭數 × head_dim × 序列長度 × 批次。為了解決這個問題,現代模型使用分組查詢或多查詢注意力來跨頭共享鍵/值,並且像 vLLM 這樣的服務系統使用 PagedAttention 在非連續區塊中分配緩存,從而減少碎片和浪費。
戰略影響
速度與規模
語言工作流程可以在不犧牲一致性的情況下更快地移動。
交通與覆蓋範圍
它擴展了跨語言和溝通方式的訪問。
更明確的決策
團隊可以花更多時間進行判斷,而自動化則可以處理重複。
KV緩存的未來
隨著上下文視窗擴展到數十萬個令牌,KV 快取成為中心瓶頸,因此創新非常激烈:快取量化到 8 或 4 位元、丟棄低重要性令牌的逐出策略、跨請求前綴共享以及卸載到 CPU 或磁碟。諸如多頭潛在註意力之類的架構轉變會壓縮快取本身。預計注意力變體和記憶系統將繼續共同設計,旨在以低成本和高吞吐量服務很長的上下文。
現實世界的實施
透過重複使用對話歷史記錄中快取的鍵/值而不是每輪重新處理它來加快聊天機器人的回應速度。
前綴緩存可在多個用戶之間共享長系統提示的緩存,從而降低成本和延遲。
vLLM 的 PagedAttention 以區塊的形式管理 KV 緩存,以便在一個 GPU 上有效地服務許多並發請求。
將 KV 快取量化為較低精度,以將較長的上下文放入有限的 GPU 記憶體中。
風險與防護欄
幻覺的事實可以悄悄地進入報告、支持流程或研究成果。
及時的敏感性可能會在類似的請求中產生不一致的結果。
如果存取控制薄弱,敏感文字資料可能會暴露。
實施路線圖
在推出之前定義輸出格式、語氣和品質標準。
當準確性很重要時,請使用可信任來源進行地面回應。
為高風險輸出保留人工審查檢查點。
追蹤故障模式並定期重新訓練提示或工作流程。
不斷探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the KV Cache quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常見問題
What is KV Cache?
KV 快取儲存轉換器已經為先前的標記計算的鍵和值向量,因此它不必為它產生的每個新單字重新計算它們。這是文字產生速度快的最大原因,也是長時間對話期間消耗 GPU 記憶體的主要原因。
KV快取儲存什麼?
KV 快取保存來自早期標記的鍵和值向量,因此註意力可以重複使用它們而不是重新計算。
KV快取主要解決什麼問題?
如果沒有緩存,每個新令牌都需要重新計算每個先前令牌的 K/V,這是浪費的;緩存使每個令牌的成本大致恆定。
KV 快取的主要缺點是什麼?
快取隨著序列長度、層和頭而增長,通常成為長上下文服務中 GPU 記憶體的主要消耗者。
哪種技術透過在註意力頭之間共享鍵和值來減少 KV 快取大小?
分組查詢和多查詢注意力讓多個查詢頭共享更少的鍵/值集,從而大大縮小快取。
與 KV 快取相關的 Transformer 推理分為哪兩個階段?
Prefill 以提示的 K/V 填充快取;解碼每一步都會附加一個新令牌的 K/V,並重新參與快取。