AI Pulse

别只盯着输入输出价格,缓存读取成本才是大头

别只盯着输入输出价格,缓存读取成本才是大头

我知道自己一直也有这样的毛病:只是扫一眼 OpenRouter 的定价表,盯着每百万 token 的输入和输出成本。我意识到如今这个数字已经不是该关注的重点了,缓存读取成本其实重要得多。

你的大部分支出可能都来自缓存读取

如果你在跑智能体工作负载,缓存读取几乎肯定是你成本的最大驱动因素。既然上下文窗口已经变得长得多,你可能需要更新一下自己的心理账,把这对定价的影响算进去。

拿一个假设的智能体会话为例:从 60k 上下文长度开始,每次工具调用写入 500 token、读取 5,000 token,20 轮之后我们会得到类似这样的结果:[1]

模型缓存读取新增输入输出总计
DeepSeek V4-Flash$0.01 (18.4%)$0.02 (72.8%)$0.00 (8.8%)$0.03
Claude Opus 5$1.04 (44.9%)$1.03 (44.3%)$0.25 (10.8%)$2.32
GPT 5.6 Sol$1.04 (48.1%)$0.82 (38.0%)$0.30 (13.9%)$2.16

缓存读取几乎占掉一半账单。现在看看同一个会话跑到 100 轮会发生什么:

模型缓存读取新增输入输出总计
DeepSeek V4-Flash$0.09 (48.1%)$0.08 (44.5%)$0.01 (7.4%)$0.19
Claude Opus 5$16.31 (76.4%)$3.78 (17.7%)$1.25 (5.9%)$21.34
GPT 5.6 Sol$29.55 (81.6%)$4.70 (13.0%)$1.96 (5.4%)$36.20

你很快就会看到问题所在。主要成本驱动因素变成了缓存读取——尽管每轮只新增 5.5k token,但已有的上下文窗口在每一轮都要被读取,因此累计成本随轮数呈二次方增长。[2]

这同时也凸显出,减少每次运行的调用次数对成本的影响远超想象。如果你能给智能体提供更专门的工具、让它用更少的轮次完成任务,哪怕只把轮次减少 10%,每次智能体运行的成本也能降低约 16%。

KV 缓存正在不断缩小

在上下文窗口尺寸飙升的同时,它们在内存中的体积却在迅速缩小。例如 DeepSeek 的 KV 缓存算法(Compressed Sparse Attention 和 Heavily Compressed Attention),可以做到在约 5GB 内存里以 ~fp8 精度支持 1M 上下文窗口。

这使得 KV 缓存可以被卸载到系统内存,而且越来越常被卸载到 NVMe 闪存盘上——这也解释了为什么最近 NVMe 的成本一路飙升。鉴于 KV 缓存压缩的巨大进步,一个 1-5GB 的 KV 缓存可以写入 SSD 再极快地读回,尤其是在 RAID 式配置和 PCIe 5.0 闪存存储下(理论上完全可以做到远低于 100ms)。而且 Nvidia 和 AMD 都支持 GPU 直接读写 NVMe,数据甚至不需要经过系统内存。正因如此,一组 NVMe 硬盘就能承载成千上万个智能体会话。

DeepSeek 把这一点变成了自家推理 API 的一大卖点——同样模型的缓存读取,价格只有其他提供商的十分之一。就在我写这篇文章时,有传言说他们要提价,但我确信这是由于他们那边严重的硬件配置失衡,而不是什么根本原因。我也确信市场会开始把缓存读取的价格显著压低。

这(大概?)是一个巨大的利润中心

缓存读取对前沿实验室来说几乎肯定是暴利来源。你实际上是在反复付费读取几 GB 的(V)RAM。由于大多数服务架构都允许你把这块数据快速从 VRAM 卸载到系统内存(甚至 NVMe),你实质上是在以高得离谱的加价率租用几 GB 系统内存。

上面那 100 轮运行的计算告诉我们,Opus 5 在缓存读取上要花 $16.31。按每轮两分钟算,这个会话大约运行 3.3 小时,上下文在其整个生命周期内平均大约 330k token,所以即使按远大于 DeepSeek 的 30KB/token 计算,你持有的也只有大约 10GB。这样算下来大约合 $0.5/GB·小时。而 AWS 租给你内存的价格远低于 1 美分/GB·小时。

我在这里显然是过度简化了,因为分层 KV 缓存存储确实有超出内存和 NVMe 的成本(比如非常复杂且昂贵的网络,要确保 KV 缓存在正确的时间出现在正确的位置)。但是,如果我们开始看到更多本地和私有化部署的 LLM 方案,对大多数组织来说这笔成本是非常小的——只有到超大规模时才会变得极其复杂。

我从这件事中得到的关键教训是,缓存读取成本将越来越成为你最需要留意的成本。底层缓存的体积已经通过巨大的创新被压缩得越来越小,但定价机制还没有真正调整过来。

[1] 这点上结果可能因人而异,但对很多文档分析的智能体任务来说,这符合我的实际经验——模型先思考一会儿,然后执行一条很“短”的 bash 命令去 grep 文档,返回大量 token。我的编码会话也类似,大部分时间都花在 grep 现有代码而不是写代码上。我还假设了 100% 的缓存命中率,对大多数自主智能体来说这大概是合理的。

[2] 这两个表格里还藏着第二件事。20 轮时 GPT 5.6 Sol 比 Opus 5 便宜($2.16 vs $2.32)。到 100 轮时它贵了 70%($36.20 vs $21.34)。这不是四舍五入造成的假象——一旦输入 token 超过 272k,OpenAI 会对整个调用按输入 2 倍、输出 1.5 倍重新计价,所以那之后的每一轮成本都会翻倍。Anthropic 明确不这么做,而且白纸黑字写着:“一个 900k token 的请求,每 token 费率与 9k token 的请求一样。”在上面这个运行里,光是这一价格断崖就让 GPT 5.6 Sol 的账单多了 76%。而这正是问题的关键——价目表告诉你 GPT 5.6 Sol 是更便宜的选择,但对任何跑得很长的会话来说,这个结论是错的。

阅读原文
📚 相关主题 大模型AI成本推理

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新