跳到主要內容
AI News HubLIVE
站內改寫2 分鐘閱讀

LLM 服務中的四種快取:KV、字首、提示詞與語義快取

文章摘要

隨著 LLM 應用日趨複雜,推理成本和延遲成為瓶頸。一個請求常包含系統提示、對話歷史、檢索文件與工具定義等海量 token,重複處理浪費算力。本文梳理 KV 快取、字首快取、提示詞快取與語義快取四種技術,分別說明它們如何在不同層面避免重複計算、降低成本並縮短響應時間。

來源Analytics Vidhya作者: Shaik Hamzah Shareef
LLM 服務中的四種快取:KV、字首、提示詞與語義快取
回報錯誤

更正管道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

大語言模型應用日益複雜,推理成本與延遲越來越重要。一次請求可能包含系統提示、對話歷史、檢索文件、工具定義和使用者輸入,累計數千甚至數百萬 token。如果不加快取,服務端每次都把相同上下文重新計算一遍,既耗時又浪費算力。實際上,LLM 服務中的快取不是一個單一功能,而是位於服務堆疊不同層次的四種機制:KV 快取、字首快取、提示詞快取和語義快取。

KV 快取是現代自迴歸模型推理的基礎。模型並不是一次生成完整回覆,而是一個 token 一個 token 地生成;每生成一個新 token,注意力機制都要計算它與此前所有 token 的關係,為已處理 token 生成 Key 和 Value 張量。KV 快取把這些張量存放在記憶體(通常為 GPU 視訊記憶體)中。prefill 階段處理完提示後快取 K/V 狀態,後續解碼步驟直接複用並增量追加,避免序列變長後反覆從頭重建注意力狀態。它的侷限是通常只服務於當前請求:該請求結束後,相關 K/V 狀態不會自動成為另一個無關請求的快取。

字首快取把 KV 快取的複用擴充套件到不同請求之間。實際場景中,許多使用者的請求共享長長的系統提示、公司政策、工具定義,只有末尾的使用者問題不同。若新請求與某先前請求有相同的開頭,服務系統直接複用那部分 K/V,無需重新計算。實現上,字首快取把提示切成定長的 token 塊,併為每個塊計算基於內容和位置的雜湊;新請求透過雜湊檢查詢到 CACHE HIT,命中塊直接複用,只有 CACHE MISS 的部分送入模型計算。快取空間有限時,系統通常用 LRU 策略淘汰舊塊。多模態場景中則要注意:文本相同但圖片不同,不能僅憑文本判定可複用。vLLM 等系統已經以塊式 KV 管理、雜湊、查詢和淘汰機制實現了字首快取。

提示詞快取則把快取責任交給 API 提供商。對於透過雲 API 使用模型的應用,請求裡的系統提示、文件、工具定義等常達數萬 token,且幾乎不變。提供商可以在基礎設施層快取這些重複內容,使後續請求只按快取的一部分重新處理。多家大模型 API 採用分割槽定價:例如快取命中約為不快取價格的 0.1 倍,寫入快取約為 1.25 倍或更高(有些還會額外收儲存費,有些則自動快取且不另計費)。因此,提示詞快取能同時改善輸入處理成本與延遲。

語義快取是四種快取中離模型最遠的一種:它可以完全跳過 LLM。當使用者提出的問題與歷史問題語義相近時,系統直接返回之前生成的答案,而不呼叫模型。通常會用嵌入向量而不是文本雜湊來判斷語義相似度。它把響應時間降到最低、避免昂貴推理,但要處理閾值設定、答案新鮮度和多輪語境等問題,適合 FAQ 和知識庫等重複性較高的場景。

綜合來看,四種快取解決的是不同環節的重複勞動:KV 快取服務於單次請求的解碼提速;字首快取讓共享字首的請求減少 prefill;提示詞快取把固定上下文放到服務商快取層;語義快取則在請求進入模型之前就用相似答案命中。實際系統中它們並非互斥,而是可以疊加部署。理解它們之間的差別,有助於針對成本、延遲和快取命中率做出正確取捨。

展開要點與分析

文章情報

工程師進階

要點

  • KV 快取為正在生成的請求儲存已處理 token 的 Key/Value 張量,讓解碼步驟不再重複計算,是自迴歸推理的基礎最佳化。
  • 字首快取將提示拆分為帶雜湊的 token 塊,可在不同請求之間複用相同開頭的 KV 狀態,顯著減少 prefill 計算;vLLM 等系統已實現該機制。
  • 提示詞快取通常由 API 提供商管理,讓包含大量固定系統上下文的重複請求按快取命中計費,從而降低輸入處理成本。
  • 語義快取適用於不需要呼叫 LLM 的場景:對語義相似的問題直接返回已有答案,徹底跳過模型推理。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。