机房指示灯组成的计算集群

聊推理成本的人都在聊显卡,但真正拉开差距的往往是 KV Cache——那份随上下文增长、每一步生成都要反复读写的中间状态。它决定了同样一张卡能塞下多少并发、一秒钟吐出多少 token。

一、为什么上下文越长越贵

自回归生成的每一步,都要对全部已有 token 做注意力计算,其中大部分计算结果——Key 和 Value 矩阵——和上一步一模一样。KV Cache 把它们存下来换算力,代价是显存:缓存大小正比于上下文长度、批大小和模型层数,长上下文场景下它比模型权重本身更能吃显存。这就是为什么长上下文推理的报价从来不线性。

由此衍生出一整套取舍:页式管理减少显存碎片、量化缓存换容量、滑动窗口和稀疏注意力直接砍历史。每一条都是在「记住多少」和「服务多少人」之间做交易。

二、前缀复用才是真正的折扣

比压缩缓存更划算的,是根本不重算。系统提示词、few-shot 示例、RAG 检索出来的文档、多轮对话的历史——这些内容在成千上万次请求里反复出现,算一遍就够。前缀缓存命中时,这部分 token 的处理成本常常只按一个零头计费。

对使用者的启发很直接:

  1. 把稳定内容放到提示词最前面。前缀匹配是从头开始的,中间改一个字,后面全部作废;
  2. 动态内容往后放。把每次都不同的部分放在提示词尾部,保护前面的可复用段;
  3. 会话粘性有回报。多轮对话路由到同一个实例,命中率天差地别——这也是为什么有些 API 明着暗着区分「缓存命中价」。

三、看懂报价单的新技能

现在比较推理服务,光看每百万 token 单价会得出错误结论。要看的清单至少包括:缓存命中与未命中分别怎么计价、缓存的有效期多长、长上下文有没有额外溢价、批处理接口便宜多少。同一份负载,提示词组织得好坏不同,实际账单差出几倍是常态。

小结

推理优化上,模型架构决定了下限,缓存策略决定了日常成本的上限。KV Cache 是服务端的功夫,前缀复用却是使用者今天就能改的事——调整一下提示词的段落顺序,可能是回报率最高的一次「优化」。


说明:本文为公开资料的整理与评述,信息来源包括主流推理框架(vLLM、SGLang 等)的技术文档与各模型供应商的公开计价说明,数据以各官方原文为准。本文由 AI 辅助整理,不构成技术选型或投资建议。