type: concept tags: [KV Cache, 压缩, 推理优化, 端侧推理, 内存优化] related: [[kv-cache-quantization-ondevice]], [[edgeflow-cold-start]], [[ggml-llamacpp-hf]] sources: - url: https://arxiv.org/abs/2604.15356 title: "Sequential KV Cache Compression via Probabilistic Language Tries: Beyond the Per-Vector Shannon Limit" date: 2026-04-10 reliability: high created: 2026-04-20 updated: 2026-04-20
KV Cache 概率语言 Trie 压缩¶
利用语言模型的预测能力突破 KV Cache 单向量 Shannon 熵极限(arXiv:2604.15356)
核心问题¶
现有的 KV Cache 量化方法(如 TurboQuant)已接近单向量压缩的 Shannon 熵极限。但作者指出,这解决的是一个比实际问题更弱的问题——我们需要压缩的是 KV Cache 作为一个序列,而不是单独的向量。
KV Cache 中的 token 不是任意浮点数据——它们来自模型训练过的精确形式语言,而模型本身就是该语言的近似最优预测器。这一结构可以被利用。
方法/架构¶
两层顺序压缩架构:
第一层:概率前缀去重¶
使用 Probabilistic Language Tries(PLTs)的 trie 距离度量: - d_T(s, s') = -log2 P_M(s 和 s') - 识别不同会话之间语义等价的共享前缀
第二层:预测增量编码¶
只存储每个新 KV 向量与模型自身预测的残差: - 每个 token 位置的熵界:H(KV_{t+1} | KV_leq_t) <= H(token_{t+1} | token_leq_t)
实验结果¶
| 方法 | 每 token 压缩 | 来源 |
|---|---|---|
| TurboQuant | 3 bits/向量分量 | 单向量 Shannon 极限 |
| 本方法 | 3.3-4.3 bits/token 位置 | 利用语言结构 |
| 理论最优 | ~2-3 bits/token | Shannon 熵界 |
在典型语言模型困惑度(约 10-20)下,每 token 位置的平均熵界为 3.3-4.3 bits,相比 TurboQuant 的 per-component 压缩有显著改进。
关键洞察¶
- 序列压缩 vs 向量压缩:TurboQuant 压缩单个 KV 向量,但忽略了 token 之间的序列依赖关系
- 模型自预测:语言模型本身是 token 的最优预测器,用其预测作为编码基线可以大幅减少需要存储的信息量
- 跨会话去重:不同会话经常共享大量 prompt 前缀,概率 trie 可以识别这些共享模式
为什么重要¶
对端侧 LLM 推理而言,KV Cache 是内存消耗的主要来源。本方法通过利用语言结构实现了比传统量化更好的压缩率。在手机等内存受限设备上,这意味着: - 更长的上下文窗口在相同内存下成为可能 - 多会话共享 prompt 时的内存开销大幅降低 - 推理延迟因更小的 KV Cache 而减少
关联¶
- [[kv-cache-quantization-ondevice]] — 本方法超越了传统量化方案的 Shannon 极限
- [[ggml-llamacpp-hf]] — llama.cpp 的 KV Cache 管理可借鉴此方法
- [[edgeflow-cold-start]] — 冷启动时的 KV Cache 预热可利用前缀去重
- [[mnn-350]] — MNN 的推理引擎可集成此压缩方案