---
title: "鍵值緩存（KV Cache）"
slug: kv-cache
language: zh-TW
source: https://aiterms.tw/terms/kv-cache
updated_at: 2026-06-22
tags: [模型部署, 大型語言模型, 推理優化, MLOps]
ipas_term: false
---

# 鍵值緩存（KV Cache）

在大型語言模型推理中，預先計算並存儲前面 token 的鍵和值向量，避免重複計算的優化技術。

## 完整說明

鍵值緩存（KV Cache）是 Transformer 模型推理中的一項重要優化技術。在自回歸文本生成過程中，每生成一個新 token，模型需要計算該 token 相對於所有之前 token 的注意力。無優化的情況下，每次都需要重新計算所有 token 對的鍵和值向量，導致大量冗餘計算。KV Cache 通過在生成每個新 token 時，只計算該新 token 的注意力查詢，而重複使用之前 token 的已緩存鍵值向量，大幅減少計算量。這是現代大型語言模型推理服務中不可或缺的優化。

## 常見問題

### 為什麼需要 KV Cache？

在自回歸文本生成中，模型逐個生成 token。每生成一個新 token，都需要計算該 token 相對於所有之前 token 的注意力。無優化的情況下，每次都會重新計算所有 token 的鍵和值向量，導致計算時間隨著生成長度的增長而二次方增長。KV Cache 通過存儲前面 token 已計算的鍵值向量，使得每一解碼步驟只需計算新 token 的鍵值，將時間複雜度從 O(N²) 降低到 O(N)。對於生成很多 token 的任務，這可以提升 10-20 倍的速度。

### KV Cache 會帶來多少的記憶體開銷？

KV Cache 的記憶體開銷與序列長度、模型大小和批次大小成正比。例如，對於 Llama 7B 模型（隱藏層大小 4096、32 層），處理一個 2000 token 的序列，單個請求的 KV Cache 大小約為 500MB（使用 FP16 精度）。對於 Llama 70B 模型，相同設置下可能需要 5GB 以上。在高並發推理場景中，多個請求的 KV Cache 會累積。這是推理服務可擴展性的主要限制因素。通過量化 KV Cache（使用 INT8 或更低精度），可以減少記憶體使用 50-75%。

### KV Cache 對推理延遲有什麼影響？

KV Cache 主要優化解碼階段，可以將解碼階段的時間複雜度從 O(N) 降低到基本常數（相對於序列長度）。但 KV Cache 不能加速預填充階段（處理輸入提示詞）。實踐中，總推理時間通常包括預填充和解碼兩部分。使用 KV Cache 後，生成很多 token 時延遲會大幅降低，但若只生成少量 token（如 1-10），預填充成為主瓶頸，KV Cache 的效果有限。此外，KV Cache 的訪問延遲取決於記憶體頻寬，高效的 GPU 記憶體實現對發揮 KV Cache 的優勢至關重要。

---

來源：https://aiterms.tw/terms/kv-cache
快查頁：https://aiterms.tw/terms/kv-cache
最後更新：2026/06/22
深度解說：https://aiterms.tw/learning/what-is-kv-cache