@digitalocean: 停止为每次LLM请求重复处理相同上下文付费。DigitalOcean AI-Native Cloud上的提示缓存自动…
摘要
DigitalOcean推出了LLM推理的提示缓存功能,自动缓存系统提示等重复上下文,无需更改代码即可将输入令牌成本降低多达80%,并附有关于盈亏平衡计算的详细教程。
查看缓存全文
缓存时间: 2026/07/30 03:47
停止为每次 LLM 请求重复处理相同上下文并付费。DigitalOcean AI 原生云上的提示缓存会自动缓存系统提示、工具定义和参考文档等共享上下文,无需修改代码即可将重复输入 Token 的成本降低高达 80%。在本演示中,超过 70% 的输入 Token 来自缓存。https://do.co/3U1c5JS
提示缓存如何工作,以及何时真正削减 LLM 成本?
来源:https://www.digitalocean.com/community/tutorials/prompt-caching-cost-break-even?utm_medium=social_organic&utm_source=twitter
提示缓存被宣传为一种免费折扣。但它并非自动生效,也不是所有提供商都免费。节省取决于流量的三个特征:每个请求中有多少内容重复,有多少请求共享该重复部分,以及这些请求之间的时间间隔。如果这三个条件都合适,在长对话会话中,缓存可以将输入 Token 成本降低 80% 到 90%。如果条件不合适,至少在一个主要提供商那里,缓存可能比不缓存成本更高。本文提供了计算公式,而不只是空口断言。它根据各提供商已发布定价推导出精确的盈亏平衡数学公式,然后提供了一个 DIY 测试工具,你可以在 DigitalOcean 的无服务器推理(https://docs.digitalocean.com/products/inference/details/features/)上运行,测量自己的工作负载,而不是轻信供应商宣传的百分比。文中还包括我首次实测的结果——在搭载单块 NVIDIA H200 的 DigitalOcean GPU 云主机(https://www.digitalocean.com/products/gpu-droplets)上,使用 vLLM 0.24.0 运行 Llama 3.3 70B (FP8) 模型,所有命中率和延迟数据均来自该测试。
快速摘要(https://www.digitalocean.com/community/tutorials/prompt-caching-cost-break-even?utm_medium=social_organic&utm_source=twitter#tl-dr)
- 提示缓存取决于工作负载,而非提供商。 同一提供商的缓存可能成为明显优势,也可能造成净亏损,具体取决于流量形态。
- 三个变量决定结果: 前缀稳定性、会话深度和到达间隔时间。本文精确定义每个变量,并展示如何测量。
- Anthropic 收取写入溢价;DigitalOcean 上的大多数 OpenAI 模型不收取,不过 OpenAI 自身文档称最新模型(GPT-5.6)现在收取。 这一差异改变了计算方式,本文针对每种情况推导出精确的盈亏平衡点。下面 Anthropic 和大多数 OpenAI 模型的费率已在 DigitalOcean 自身价格页面上确认;GPT-5.6(https://www.digitalocean.com/blog/whats-new-on-inference-engine#week-of-july-6)的缓存写入费率在 OpenAI 价格页面上确认,但尚未在 DigitalOcean 上独立验证,因为该模型在价格页面最后一次验证后才在 DigitalOcean 上线。
- 一个结构性门槛比任何百分比都重要: 对于 OpenAI 模型(https://docs.digitalocean.com/products/inference/how-to/use-prompt-caching/#openai-models),DigitalOcean 不会缓存低于 1,024 个 Token 的提示。DigitalOcean 上的开源模型没有此下限,自托管引擎也没有,本文直接测量了这一差异。
- DigitalOcean 无服务器推理上的开源模型自动支持提示缓存。 它处于公开预览阶段(https://docs.digitalocean.com/products/inference/details/features/#prompt-caching),且提示缓存是自动的(无需
cache_control或prompt_cache_retention),按账户隔离,适用于 DeepSeek V3.2 等模型。在无服务器推理的聊天补全(https://docs.digitalocean.com/products/inference/how-to/use-chat-completions-api/)和响应 API(https://docs.digitalocean.com/products/inference/how-to/use-responses-api/)中使用提示缓存,可缓存上下文并在后续请求中复用。如果请求的一部分已缓存,则缓存 Token 按较低价格计费,其余输入 Token 按标准价格计费。这显著降低了推理成本。开源模型自动缓存上下文。支持提示缓存的模型列表,请参见基础模型(https://docs.digitalocean.com/products/inference/details/models/#foundation-models)。更多详情,请参阅无服务器推理中的提示缓存(https://docs.digitalocean.com/products/inference/how-to/use-prompt-caching/)文档。 - 在 DigitalOcean GPU 云主机(H200, vLLM 0.24.0, Llama 3.3 70B FP8)上实测: 对于 3,110 个 Token 的提示,缓存命中将首次输出 Token 时间从 462 毫秒降至 39 毫秒,降低 92%。一个 12 轮对话会话,稳定 2,080 个 Token 前缀,在首轮后维持了 98.7% 的 Token 命中率。
- 一行动态内容即可破坏一切,本文精确测量了影响程度: 在系统提示顶部放置时间戳和请求 ID,将测量的 Token 命中率从 98.7% 降至 0.7%,并且每轮都回到全价预填充延迟。
- 在 GPU 云主机上自托管是任何没有托管缓存的开源模型的备用方案。 vLLM 默认启用自动前缀缓存,无写入溢价,也无 1,024 个 Token 的最小值。下面的实测运行确认了在 Llama 3.3 70B 上对仅 155 个 Token 的提示也能缓存,而该模型没有托管无服务器缓存费率。
提示缓存关键术语表(https://www.digitalocean.com/community/tutorials/prompt-caching-cost-break-even?utm_medium=social_organic&utm_source=twitter#table-of-key-terms-in-prompt-caching)
如果你刚接触提示缓存,以下是本文所用术语的简单定义:
| 术语 | 定义 |
|---|---|
| 提示 (Prompt) | 你发送给 AI 模型以获取响应的消息或输入(文本、指令)。 |
| Token | 提示或输出的一小部分——通常是一个词或词的一部分——AI 模型用来处理文本。 |
| 预填充 (Prefill) | AI 模型将输入 Token 转换为其内部格式的步骤,之后才能开始回答。 |
| 缓存 (Cache) | 一个存储区域,用于保存重复工作或结果,以便下次更快、更便宜地访问。 |
| 缓存命中 (Cache hit) | 当前请求匹配缓存中已有内容,系统可使用缓存结果而非重新处理。 |
| 缓存未命中 (Cache miss) | 当前请求未匹配缓存中任何内容,系统必须从头开始重新处理所有工作。 |
| 缓存写入 (Cache write) | 将新信息(如已处理的提示)首次存储到缓存中。 |
| 缓存读取 (Cache read) | 使用缓存中已存储的信息——无需再次处理提示。 |
| 前缀 (Prefix) | 提示的开头或重复部分,可能在后续请求中复用。 |
| TTL (生存时间) | 缓存项在自动过期并移除前保留的时间长度。 |
| 延迟 (Latency) | 发送请求后,AI 模型开始响应所需的时间。 |
| 会话 (Session) | 一组相关请求,通常像与 AI 模型的对话,其中过往消息可能作为上下文重复。 |
提示缓存的真实工作原理及成本(https://www.digitalocean.com/community/tutorials/prompt-caching-cost-break-even?utm_medium=social_organic&utm_source=twitter#how-prompt-caching-actually-works-and-what-it-costs)
当你向模型发送请求时,平台必须先将每个输入 Token 转换为内部表示,然后才能生成响应。这一步称为预填充。对于长系统提示、一组工具定义或大型检索文档,这是请求中成本和延迟最高的部分,因为平台每次都要从头开始重新处理相同内容,即使一秒钟前刚见过完全相同的文本。提示缓存存储已处理的表示(注意力层使用的键值状态),以便后续前缀相同的请求跳过重新处理,直接读取已存储状态。这仅适用于输入 Token。输出 Token 始终是全新生成的,因为响应取决于你本次询问的内容,而非上次。
该机制依赖于精确匹配。提供商基于提示前缀的哈希值进行缓存。如果缓存边界之前的任何位置有一个字符发生变化,包括时间戳、请求 ID 或重新排序的工具列表,整个前缀将无法匹配,请求回退到全价处理。这就是为什么提示结构与提示内容同等重要。
图:请求前缀流入缓存检查。匹配的前缀读取缓存的键值状态并跳过预填充。不匹配的前缀回退到完整预填充并写入新缓存条目。
缓存命中跳过匹配前缀的高成本预填充步骤。缓存未命中处理完整提示,并在有显式缓存的提供商处为下次写入新条目。
各提供商成本结构(https://www.digitalocean.com/community/tutorials/prompt-caching-cost-break-even?utm_medium=social_organic&utm_source=twitter#the-cost-structure-provider-by-provider)
每个主要提供商对缓存的定价各不相同,这些差异并非表面功夫。它们决定了哪种工作负载能从缓存中受益。
DigitalOcean 上的 Anthropic 模型使用显式缓存。你在请求中用 cache_control 字段标记边界,类型为 type: ephemeral,ttl 为 5m(默认)或 1h。首次写入该边界的请求按高于标准输入费率的溢价计费,DigitalOcean 自身价格页面确认了乘数:对于 Claude Haiku 4.5,标准输入为每百万个 Token 1.00 美元,5 分钟缓存创建为 1.25 美元(1.25 倍),1 小时缓存创建为 2.00 美元(2.0 倍),缓存读取为 0.10 美元(0.10 倍,即 90% 折扣)。这些 1.25 倍 / 2.0 倍 / 0.10 倍比率在 DigitalOcean 上的 Claude 模型系列中保持一致。响应中的 usage 对象在写入请求中报告 cache_creation_input_tokens,在后续命中中报告 cache_read_input_tokens。Claude 模型的最小可缓存前缀长度取决于模型,通常在512 个 Token 到 4,096 个 Token 之间。如果你标记的缓存块小于模型要求的限制,该提示段将不会被缓存,你将继续按正常输入 Token 费率付费。请对照你当前特定模型的文档确认。来源:DigitalOcean 提示缓存操作指南(https://docs.digitalocean.com/products/inference/how-to/use-prompt-caching/)和推理定价(https://docs.digitalocean.com/products/inference/details/pricing/),最后验证于 2026 年 7 月 14 日;Anthropic 提示缓存文档(https://platform.claude.com/docs/en/build-with-claude/prompt-caching)。
DigitalOcean 上的 OpenAI 模型缓存 1,024 个 Token 及以上的提示,并且在 DigitalOcean 上,你通过 prompt_cache_retention 参数(设置为 in_memory 或 24h)按请求选择加入。缓存是尽力而为的:当请求的输入 Token 与之前响应的前缀匹配时适用,但不保证命中。缓存读取折扣并非单一数字,这是值得注意的细节,因为 DigitalOcean 自身价格页面显示不同模型差异很大。对于 GPT-4o 系列,缓存读取费率恰好是输入费率的一半(GPT-4o:输入 2.50 美元,缓存读取 1.25 美元),即 50% 折扣。对于 GPT-4.1 和 o3,则为 75% 折扣。对于 GPT-5 系列,折扣为 90%(GPT-5:输入 1.25 美元,缓存读取 0.125 美元)。这些数字直接来自 DigitalOcean 自身的推理定价页面,验证于 2026 年 7 月 14 日。另外,OpenAI 自身的定价文档称最新的 GPT-5.6 模型(Sol, Terra, Luna)增加了缓存写入费率,为输入价格的 1.25 倍,这将使其行为更接近 Anthropic 的显式模型,而非旧 OpenAI 模型。我无法在 DigitalOcean 自身价格页面上确认这一具体条目,因为 GPT-5.6 在该页面上次验证日期之后才在 DigitalOcean 上线。请在你当前模型的推理定价页面(https://docs.digitalocean.com/products/inference/details/pricing/)上核实当前费率,而不是假设一个固定百分比。来源:DigitalOcean 提示缓存操作指南(https://docs.digitalocean.com/products/inference/how-to/use-prompt-caching/)和推理定价(https://docs.digitalocean.com/products/inference/details/pricing/),验证于 2026 年 7 月 14 日。
DigitalOcean 无服务器推理上的开源模型支持提示缓存。根据 DigitalOcean 当前文档(https://docs.digitalocean.com/products/inference/how-to/use-prompt-caching/#open-source-models),开源模型的提示缓存处于公开预览阶段,DeepSeek V3.2 等模型自动缓存。你完全不需要设置 cache_control 或 prompt_cache_retention;只要请求的 Token 与之前请求的前缀匹配,缓存就会以尽力而为的方式应用。缓存按客户账户隔离,基于每个账户的密钥派生,因此一个账户永远无法读取或推断另一个账户的缓存内容。两个特性使开源路径的行为与上述商业模型不同。首先,没有 1,024 个 Token 的最低限制:DigitalOcean 自身文档示例显示一个 214 个 Token 的 DeepSeek 请求从缓存中提供了 128 个 Token。其次,没有固定的 TTL;文档称缓存保留时间无界,但应视为机会性,因此你不应依赖缓存命中来实现可预测的成本。缓存的 Token 在 usage 对象中的两个位置报告:cache_read_input_tokens 和 prompt_tokens_details.cached_tokens,并按模型的折扣缓存读取费率计费。根据 DigitalOcean 价格页面,该折扣大致为输入价格的 46% 到 80%,具体取决于模型(DeepSeek V3.2:输入 0.425 美元,缓存读取 0.15 美元;Qwen3 Coder Flash:输入 0.45 美元,缓存读取 0.09 美元),且无单独的写入溢价。来源:DigitalOcean 提示缓存操作指南(https://docs.digitalocean.com/products/inference/how-to/use-prompt-caching/)、推理功能参考(https://docs.digitalocean.com/products/inference/details/features/)和推理定价(https://docs.digitalocean.com/products/inference/details/pricing/),验证于 2026 年 7 月 14 日。请注意,并非每个开源模型都带有托管缓存费率。DigitalOcean 价格页面列出了 DeepSeek V3.2、Qwen 3 系列、GLM、Kimi 以及多个 NVIDIA 和 MiniMax 模型的提示缓存费率,但未列出其他模型,包括本文基准测试所使用的 Meta 的 Llama 3.3 70B。完整当前列表请参见基础模型(https://docs.digitalocean.com/products/inference/details/models/)。
在 DigitalOcean GPU 云主机上自托管的模型是任何没有托管缓存费率的开源模型的备用方案,同时提供对缓存层的完全控制。现代推理引擎——vLLM、SGLang 和 TensorRT-LLM——都在副本内支持自动前缀缓存,将传入提示与之前缓存的 KV 状态进行匹配,无需用户配置,正如 DigitalOcean 的博客文章大规模高级提示缓存(https://www.digitalocean.com/blog/advanced-prompt-caching)中详细介绍的那样。vLLM 默认启用此功能。无写入溢价,无需追踪每 Token 折扣,而且正如本文后面实测运行所确认的,也没有 1,024 个 Token 的最低限制:vLLM 以 16 个 Token 为块进行缓存,一个 155 个 Token 的提示命中
相似文章
API 中的提示词缓存
OpenAI 推出提示词缓存功能,这是一项自动特性,通过在 GPT-4o、GPT-4o mini、o1-preview 和 o1-mini 模型上重用最近缓存的输入令牌,可将 API 成本降低 50% 并改善延迟。该功能会自动应用于超过 1,024 个令牌的提示词,无需开发者进行集成更改。
为什么感觉大型LLM提供商在故意隐藏提示缓存?
一篇文章讨论提示缓存如何大幅降低LLM API成本,指出提供商对此解释不足,并提供一个简单的规则来构建提示以获得最大缓存命中率。
TokenPilot:面向LLM代理的缓存高效上下文管理
TokenPilot是一个双粒度上下文管理框架,通过稳定提示前缀和保守管理上下文片段,降低长时程LLM会话中的推理成本。在基准测试中实现了61-87%的成本降低,同时保持竞争性性能。
@Alacritic_Super: 如果你在构建生产级 LLM 应用,学习 LLM 缓存。缓存可降低延迟、GPU 利用率和 AP…
本文强调了在生产系统中使用 LLM 缓存的重要性,以减少延迟、GPU 利用率和成本,并介绍了 LMCache,这是一个用于可扩展 LLM 推理的开源 KV 缓存管理层。
我如何在长时间智能体运行中轻松减少约90%的输入token消耗
作者分享了一个实用技巧,通过提示缓存(prompt caching)在长时间智能体运行中将输入token成本降低约90%:将不变文本(系统提示、工具定义、上下文)放在每个提示的开头,以利用LLM提供商的缓存前缀。