注意缓存读取成本

Lobsters Hottest 新闻

摘要

一篇博客文章,解释了在代理型工作负载中,缓存读取成本主导了LLM推理开销,随着每轮重新读取上下文,累计成本呈二次方增长,并建议减少工具调用次数以降低成本。

<p><a href="https://lobste.rs/s/bgvipl/watch_out_for_cache_read_costs">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/08/11 01:04

# 注意缓存读取成本 来源:https://martinalderson.com/posts/watch-out-for-cache-read-costs/ 我知道自己过去常常只是扫一眼 OpenRouter 的价格表,关注每百万 token 的输入和输出成本。我意识到,如今这个数字已经不是应该关注的重点,缓存读取成本实际上重要得多。 ## 你的大部分支出很可能来自缓存读取 如果你在运行智能体(agentic)工作负载,*缓存读取*几乎可以肯定是成本的最大驱动因素。既然我们已经有了*更长的上下文窗口*(https://martinalderson.com/posts/why-claudes-new-1m-context-length-is-a-big-deal/),你可能需要更新你的心算,把这对定价的影响考虑进去。 以一个假设的智能体会话为例,从 60k 上下文长度开始,每次工具调用产生 500 个输出 token 和 5,000 个读取 token,20 轮后我们得到类似这样的结果:[\[1\]](https://martinalderson.com/posts/watch-out-for-cache-read-costs/#fn1) | 模型 | 缓存读取 | 新输入 | 输出 | 总计 | |---|---|---|---|---| | 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\]](https://martinalderson.com/posts/watch-out-for-cache-read-costs/#fn2) 这也凸显了*减少*每次运行的工具调用数量对成本的巨大影响。如果你能赋予智能体更专门的工具,从而减少所需轮数,即使只把轮数减少 10%,每次智能体运行的成本也能降低约 16%。 ## KV 缓存缩小的情形 虽然上下文窗口的规模急剧膨胀,但它们在内存中的大小已经*迅速缩小*(https://martinalderson.com/posts/a-brief-history-of-kv-cache-compression-developments/)。例如,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。鉴于大多数服务架构允许你快速将缓存从显存转移到系统内存(甚至 NVMe),你实际上是在以惊人的加价租用几 GB 的系统内存。 上面 100 轮运行的数学计算显示,Opus 5 在缓存读取上花费了 16.31 美元。按每轮两分钟计算,该会话运行约 3.3 小时,上下文在其生命周期内平均约为 330k token,因此即使假设每个 token 占用 30KB(远超 DeepSeek),你也在持有约 10GB 数据。这大约相当于**每 GB-小时 0.5 美元**。AWS 出租内存的价格远低于每 GB-小时 1 美分。 我在这里显然过度简化了,因为分层 KV 缓存存储确实存在超出 RAM 和 NVMe 的成本(例如非常复杂且昂贵的网络,以确保 KV 缓存在正确的时间出现在正确的位置)。但是,如果我们开始看到更多本地和本地部署的 LLM 解决方案,这个成本对大多数组织来说就相当微小——它只会在超大规模下变得非常复杂。 我从中学到的一个关键教训是,缓存读取成本将日益成为你需要关注的主要成本。在使底层缓存变得更小、更小方面已经出现了*巨大*创新,而定价机制却没有真正调整。 --- 1. 你的具体情况可能有很大差异,但对于许多文档分析型智能体任务来说,这与我的真实世界经验相符——模型思考一会儿,然后执行一条非常“简短”的 bash 命令来 grep 文档,并*返回*大量 token。我的编码会话也很类似,大部分时间都花在 grep 现有代码而不是编写代码上。我还假设了 100% 的缓存命中率,这对于大多数自主智能体来说可能是合理的。↩︎ (https://martinalderson.com/posts/watch-out-for-cache-read-costs/#fnref1) 2. 这两张表里还藏着第二件事。在 20 轮时,GPT 5.6 Sol 比 Opus 5 *更便宜*(2.16 美元对比 2.32 美元)。到 100 轮时,它贵了 70%(36.20 美元对比 21.34 美元)。这不是四舍五入造成的假象——一旦输入 token 超过 272k,OpenAI 会按 2 倍输入和 1.5 倍输出的价格对*整个调用*重新定价,因此此后的每一轮成本都会翻倍。Anthropic 明确不这样做,并如此表示:“一个 900k-token 的请求按与 9k-token 请求相同的每 token 费率计费”。在上述运行中,仅这一处悬崖就使 GPT 5.6 Sol 的账单增加了 76%。而这正是重点所在——价目表告诉你 GPT 5.6 Sol 是更便宜的选择,但对于任何长时间运行的会话来说,这个说法都是错误的。↩︎ (https://martinalderson.com/posts/watch-out-for-cache-read-costs/#fnref2)

相似文章