一条 128K token 的长对话,在 Qwen3-32B 上光 KV 缓存就要吃掉约 32 GiB 显存——比模型权重的零头还金贵。这就是长上下文推理收的"显存税",而它按对话长度和并发数线性涨价(来源:arXiv:2608.23843 PuzzleKV,Qwen3-32B 按64层、8个KV头、头维128、BF16计算)。
《从首 Token 到最后一个 Token:大模型推理性能指标全景图》(算力网络架构手记,2026-08-10)算过同一笔账的另一头:显存被 KV 挤占后,批处理并发上不去,解码吞吐直接封顶。换句话说,你为"模型记性好"付的不只是 token 费,还有整张 GPU 的产能。推理服务商最怕的账单就是这个形状:客户上一份百页合同,KV 涨四倍,同一张卡能伺候的人数掉四倍,单价却没变。
图注:丢 token、降精度、降维度——三条压缩路线里,只有第三条不扔信息。
显存税是怎么收上去的
先说清楚 KV 缓存为什么是个麻烦。自回归解码每生成一个 token,都要回看之前所有 token 的 key 和 value 张量,把它们存下来避免重算。一个 L 层、H 个 KV 头、头维 d、上下文长度 T 的模型,单条请求就要存 2LH·T·d 个数字——长度和并发双双线性放大,没有上限。
三条压缩路线,各交各的学费
主流的 KV 压缩分三派:驱逐(token eviction)直接扔掉不重要的 token,问题是扔掉的永远回不来,H2O、StreamingLLM、SnapKV 都是这个思路;量化把 KV 存成低比特,省的是每个数字的位数;低秩分解把每个 token 的 key/value 投影到低维空间,省的是维度本身。前两派的缺陷都好理解:一个丢信息,一个降精度。第三派此前做不细——Palu、LoRC 从模型权重里导出固定投影空间,往往需要校准和逐模型离线处理;OjaKV、xKV 从推理时的缓存里在线建基,但整个缓存区域共享一组基,重建时优先保"大头方向",稀疏但关键的信息容易丢。检索任务里,那条被丢掉的信息往往正是答案所在的第三十七行。
arXiv 新论文 PuzzleKV 换了个粒度。它借用 vLLM 的 PagedAttention 已经在用的分页思想——KV 缓存本来就按固定大小的页来管理内存——把"页"重新解释为压缩单元。逐页观察后发现:单个 key/value 页内部就存在显著的低秩冗余,而且跨模型、跨层、跨 KV 头都稳定成立。于是每页独立分解,免训练、免校准;注意力汇聚的开头几个 token 和最近的窗口保留稠密存储,注意力核直接在稠密页和分解页上混算,不必重建历史 KV;解码时新写满的页增量转成低秩存储。每个 token 都在,只是存得更瘦。
六成的存储,九成的性能
结果在 Qwen3-8B 和 Llama-3.1-8B-Instruct 上测得:只用约 60% 的原始 KV 存储,两个模型、RULER 和 LongBench 全部基准设置上都保住了 Full KV 96% 以上的性能;在 RULER 16K/32K 长文任务上大幅超过共享基线的 Global SVD,LongBench 真实文档任务上也不落下风。再叠加因子级对称 INT4 量化,存储压到 18.7%,性能仍守住 93% 以上(来源:arXiv:2608.23843 实验部分)。
这给推理服务商划出了一条现实的省钱路径:PuzzleKV 与量化正交互补,与《PD分离技术详细分析》里的 Prefill-Decode 分离架构也不冲突——KV 页本来就是 PD 分离里要跨节点搬运的资产,搬运量减八成,分离架构最被人诟病的传输瓶颈就松一大截。显存、带宽、调度三本账,一个方法同时动。换算成生意语言:省下来的每一格显存,都会变成同一张卡上多出来的会话数。
论文还留了一个诚实的边界:页内低秩结构是在 Qwen3-8B 和 Llama-3.1-8B 上观察到的,换架构、换规模是否依然成立,需要后续验证。免训练方法的通病在此——数据上的漂亮曲线,终究要过工程部署那一关。
图注:18.7%的存储换93%的性能——交换比取决于业务能容忍多厚的"税"。
对 Token 生意意味着什么
按 token 计价的生意里,长上下文是毛利最深的坑:客户传一份百页文档进来,前缀的 KV 全部要算、要存,多轮追问里反复复用。Agent 工作流把坑又挖深了一层——每次工具调用回来的长结果都追加进上下文,KV 只涨不跌,一个任务跑到后半程,模型大部分算力花在重读自己的历史而不是思考。这就是为什么很多 Agent 应用在演示阶段跑得欢,一上量就撞显存墙:任务越长,单位算力产出的智能越少,边际成本反而是上升的。
架构端各家已在动手:Qwen3.8-Flash-Next 用稀疏注意力压长序列成本,原生 262K 上下文(来源:Qwen 官方博客);GLM-5.3-Flash 同样上了稀疏与线性注意力混合设计。推理引擎端,页式低秩这类免训练方法意味着同样的卡能扛更长、更密的会话,而不用等模型重训。两条腿走路:模型侧把注意力做稀,引擎侧把缓存做瘦。
"低秩+量化"的组合也不是 PuzzleKV 的独角戏。同一批 arXiv 论文里,北京工业大学的 SandwichQuant(2608.24173)做了个方向相反的印证:把可训练参数拆成骨干权重、归一化仿射、量化参数三组后发现,真正承担校正作用的是低维的归一化仿射子空间——只动归一化层的仿射参数,就能在低比特设置下找回大部分精度损失(来源:arXiv:2608.24173 SandwichQuant)。两篇合起来读结论一致:压缩各招数正交互补,钱要一起省才省得下来。
单位智能变便宜的杠杆,从来不在降价海报里,在显存页表里。
源势AI观点
我们做 Token 聚合路由,每天盯着各家的上下文价格和质量:同一个 128K 任务,不同供应商的完成成本能差出数倍,差异一大半来自各家 KV 管理和缓存复用的工程水位。标称同样的模型,实现可以完全不同。给客户选型时我们的建议是别再比较"标称上下文长度",直接跑一个真实长文负载,看 TTFT 和每任务成本。KV 这一层的瘦身进展,最终都会体现在下一轮降价里——先到的是显存,后到的是账单。