--- title: "SnapKV" created: 2026-06-18 updated: 2026-06-18 type: concept tags: ["kv-cache", "attention", "intra-head-eviction"] sources: [] --- # SnapKV ## 定义 SnapKV (Li et al., 2024) 是一种 KV Cache 驱逐的 [[heuristic-metric]] 指标,基于累积注意力分数和观察窗口来动态识别和保留关键 token。它是 LU-KV 实验中使用的默认 intra-head 指标之一(π_1)。 ## 核心机制 1. **观察窗口**:在 prefill 阶段的最后 W 个 token 上计算注意力模式 2. **累积评分**:对每个历史 token,累积其在观察窗口内的注意力权重 3. **Top-K 选择**:按累积分数排序,保留前 b 个 token ## 在 LU-KV 中的使用 LU-KV 使用 SnapKV 作为 π_1,但将预算分配决策从 SnapKV 的"固定每 head 预算"提升为"基于 [[marginal-utility]] 的差异化分配"。实验表明: - SnapKV 本身在不同 head 中的 [[optimality-gap]] 差异大 - LU-KV 将更多预算分配给 SnapKV-Oracle 对齐度高的 head - 80% 压缩率下 LU-KV + SnapKV 显著优于 Uniform + SnapKV ## 相关概念 - [[heuristic-metric]] — SnapKV 是启发式指标的一种 - [[keydiff]] — 另一种常用 intra-head 指标 - [[intra-head-eviction]] — SnapKV 属于头内驱逐方法 - [[tang-lukv|LU-KV]] — 可兼容 SnapKV 作为 intra-head scoring 方法 ## 参考 - SnapKV: LLM Knows What You are Looking for Before Generation (Li et al., 2024) - [[tang-lukv|LU-KV]] (Tang et al., ICML 2026)