TurboQuant 将 KV Cache 压到 3 比特每分量、约 5 至 6 倍压缩比时,已逼近每向量压缩的香农极限。但这并非终点。最新研究表明,当把 KV Cache 视为序列而非独立向量时,存在一个更紧的理论下界 —— 在典型困惑度 10 至 20 的英语文本上,该下界仅为 3.3 至 4.3 比特每 token 位置,而非每分量 3 比特。按此计算,理论上可达 91.4 万倍 压缩比(相对 TurboQuant),即使考虑实际编码器 1000 倍的冗余开销,仍有约 914 倍 的压缩空间。这一差距的工程实现路径,正是本文的核心议题。
从每向量到每序列:香农极限的重新定义
理解这一突破的关键在于认识到两种不同的信息论约束。TurboQuant 及其前身 KIVI、KVQuant 所解决的问题是:给定一个孤立的 KV 向量(在旋转后的分布中抽取的样本),最小需要多少比特才能无误差地表示它?答案是约 3 比特每分量,TurboQuant 通过 PolarQuant 旋转加 QJL 残差校正几乎达到了这个下界。
然而,KV Cache 实际上并非独立向量的集合。每当模型处理一个 token,它产生的 key 向量和 value 向量都与之前的所有向量在同一个自回归过程中紧密耦合。第 i 个位置的 KV 向量是前 i 个 token 的确定性函数,而语言模型本身就是一个近乎最优的该分布预测器。因此,第 i 个 KV 向量给定前序缓存向量后的条件熵,满足 H (KV_i | KV_{<i}) ≤ H (token_i | token_{<i}) = log₂(PP),其中 PP 为模型的困惑度。在困惑度 10 至 20 时,这约为 3.3 至 4.3 比特每位置,远小于 TurboQuant 的 3 比特每分量。
这一差距的量级可以通过具体参数量化。对于一个 70B 规模的模型(80 层、64 头、每头 128 维),fp16 下每个 token 位置占用约 2100 万比特;TurboQuant(3 比特每分量)占用约 393 万比特;而序列压缩的理论下界仅为 4.3 比特。对应的压缩比分别为:相对 fp16 约 490 万倍,相对 TurboQuant 约 91.4 万倍。即使采用更为保守的 1000 倍实际开销(远高于典型算术编码器的 2 至 5 倍),仍可达到约 914 倍的压缩比。这个数字正是 90 万倍压缩突破的来源。
两层架构:概率前缀去重与预测性差分编码
实现这一压缩比的技术路径分为两个正交的信息压缩层,它们可以叠加在现有的每向量量化方法(如 TurboQuant)之上。
第一层:基于概率语言 Trie 的语义前缀去重
现有的 vLLM 和 SGLang 已经实现了精确前缀共享 —— 当多个会话的 token 序列完全相同时,共享 KV 缓存指针。但这种方法的局限性在于它只能在词法层面工作:两个以不同措辞开头但语义相近的会话(如「You are a helpful assistant」与「You are an AI assistant」)无法共享任何缓存,即使它们的 KV 向量在每层都非常相似。
概率语言 Trie(Probabilistic Language Trie,PLT)提供了在概率空间中度量前缀相似性的框架。其核心是 trie 度量 d_T (s, s') = -log₂ P_M (s ∧ s'):两个序列的共享前缀概率越高,它们的距离越小。基于这一度量,系统将语义相近的前缀聚类为「语义前缀簇」,簇内所有会话共享同一中心前缀的完整 KV 缓存,仅存储各自的分叉位置之后的差分。这一层的存储节省率取决于两个因素:簇的覆盖率 f(进入簇的会话比例)以及分叉后尾部长度 ℓ 与总长度的比值。在典型的聊天模型部署中(固定系统提示词加少样本示例),f 可接近 1,分叉后尾部长度占比极小,从而实现近乎完整的前缀复用。
第二层:预测性差分编码
在单一会话内部,KV 缓存的每个位置还可以进一步压缩。模型在生成第 i 个 token 之前,已经计算了其在整个词表上的概率分布。该分布对应一个「预测 KV 向量」—— 每个可能 token 的 KV 向量按模型概率加权的期望。实际 KV 向量与预测 KV 向量之间的残差 R_i = KV_i - KV̂_i 的熵,同样被每 token 的困惑度所界定。关键观察是:当模型对下一个 token 高度确信时(低困惑度),残差趋于零,其幅值的期望以 O (√H_i) 的速度随条件熵 H_i 衰减。
基于这一特性,可以实现惊喜自适应的量化策略:为低惊喜位置分配更少的比特(残差接近零、粗粒度量化即可),为高惊喜位置分配更多比特。量化后的残差随后可以通过 TurboQuant 或其他每向量方法进行第二轮压缩,形成完整的三层堆栈:语义前缀去重 → 预测性差分编码 → 每向量量化。
异步行为:随上下文增长的压缩效率
与每向量方法的一个根本性区别在于,序列压缩的效率随上下文长度单调提升。每向量方法无论上下文多长,每个 token 始终占用固定的比特数(如 TurboQuant 的 3 比特每分量),内存增长率为常数 2L・H_head・d・b 比特每 token。然而,在单调递减的惊喜条件下(后续 token 的条件熵不高于之前的平均值),序列压缩的边际成本正是当前 token 的条件熵 H_n,它随上下文增长而下降。换言之,长上下文推理的边际成本不增反降 —— 这与当前的「内存墙」叙事形成鲜明对比。
工程落地的关键参数与监控点
虽然理论压缩比高达 90 万倍,但工程实现需关注以下实际参数与监控指标。
在残差预测层面,精确计算预测 KV 向量需要遍历整个词表(通常约 5 万词),成本不可接受。工程上采用 Top-K 近似 —— 在低困惑度场景下,概率质量高度集中在前 5 至 20 个 token,K=20 足以捕捉预测的主要信息。另一个更激进的近似是将 KV 函数线性化为 F_M (t_{<i}, t) ≈ c (t_{<i}) + A (t_{<i}) E (t),其中 E (t) 为 token 嵌入、A (t_{<i}) 为基于当前隐藏状态的投影矩阵,此时预测 KV 向量仅需一次词表期望嵌入的计算,而非 K 次前向传播。
在差分存储层面,残差 R_i 的存储需要三个组件:原始预测 KV 向量(由前序上下文和模型概率可重新计算,因此只需存储模型输出分布)、残差的量化表示、以及每个位置的比特分配方案。实际部署中,建议将残差分为「可压缩区」和「不可压缩区」:可压缩区对应低惊喜位置(模型置信度高、残差小),使用 1 比特或 2 比特量化;不可压缩区对应高惊喜位置,使用更高比特预算。
在系统集成层面,推荐的推理循环改造如下。在写入缓存时,计算 Top-K 预测、获取预测 KV 向量、计算并量化残差 R_i、写入残差而非完整 KV 向量。在读取缓存时,解码残差、重新计算预测 KV 向量、两者相加得到完整 KV 向量。这一集成需要修改推理内核以支持 TurboQuant 式的在线量化,但额外计算成本仅为 O (K・d_model) 每 token,其中 K 远小于词表大小,可忽略不计。
在监控与调优层面,应持续追踪以下指标:平均每 token 比特数(目标趋近于困惑度的对数)、残差幅值的 95 百分位(用于校准量化步长)、前缀簇的平均覆盖率(用于评估语义去重效果)、以及边际压缩比随上下文长度的变化趋势(验证单调递减特性)。这些指标应作为仪表盘核心显示,以便在模型更换或数据分布漂移时及时调整 K 值、量化步长或聚类阈值。
与投机解码的协同
一个值得关注的工程协同效应是:投机解码(Speculative Decoding)使用的 Draft 模型正是 Top-K 预测的副产品。当使用模型自身的 Top-K 分布作为 Draft 分布时,投机解码的接受率等于 Top-K 概率质量的总和,而同一份概率计算同时产生了 KV 预测向量。这意味着两套优化可以共享一次计算,在提升推理吞吐量的同时降低 KV 缓存的存储开销。
局限性与开放问题
90 万倍的工程实现仍面临若干开放挑战。首先是理论下界的紧致性:虽然定理本身是等式(条件熵精确等于 token 级别的惊喜),但实际量化器能否接近该下界,取决于在真实模型和文本分布上残差的实际熵值。其次是预测效率:当前框架需要访问模型的内部 KV 计算图,主流推理框架(vLLM、TensorRT-LLM)的在线 KV 缓存管线可能需要相应改造以支持预测性差分计算。最后是跨会话场景的验证:语义前缀去重在固定系统提示的多会话场景中效果显著,但在动态前缀、更短共享前缀或高度异构的会话分布下的实际压缩比仍有待实测。
当这些工程路径逐步落地,KV Cache 的内存墙将不再是硬件问题的唯一答案 —— 软件层面的序列结构挖掘,能够将有效上下文窗口在同等硬件上再推高一个数量级。
资料来源:arXiv 2604.15356 《Sequential KV Cache Compression via Probabilistic Language Tries: Beyond the Per-Vector Shannon Limit》