PromptCaching / ContextCache 区别
- Prompt Caching :站在"计费 + 文本比对"角度------"这段文字我上次已经付费处理过"。
- Context / KV Cache :站在"底层推理加速"角度------"这段 token 的注意力 Key/Value 已经算好,直接拷贝显存"。
两者经常被打包,但并不完全等同:前者可以单独存在于费用层,后者则是深度优化推理流程。
概念 | 关注点 | 工作层级 | 典型叫法 |
---|---|---|---|
Prompt Caching | "提示词文本" 是否已经付费处理过 | 计费 / API 层 | OpenAI "cached prompt tokens"、DeepSeek "prompt_cache_hit_tokens" |
Context (KV) Cache | Transformer 已算好的 Key/Value 表 是否能直接复用 | 推理核心 / GPU 显存层 | vLLM "KV‑Cache reuse"、Gemini "context cache"、Anthropic "retrieved cache" |
1. Prompt Caching(计费缓存)
-
判断粒度: 纯文本(token 序列)是否与历史请求前缀 哈希一致。
-
目的:
- 计费折扣 ------ 同一前缀不重复收钱或少收。
- 省前序推理时间 ------ 服务端跳过对这段文本的 tokenization 和 embedding。
-
和模型本身无关:即使你用的是不支持 KV cache 的旧模型,厂商仍可在 API 网关层做 Prompt 缓存。
-
局限: 只能整段命中;你只要改动一个标点就会 MISS。
实际应用:在助手型应用里,一段 "系统指令 + few‑shot 示例" 经常复用,Prompt Caching 能立刻省钱。
2. Context / KV Cache(推理缓存)
-
判断粒度: Transformer 层每个 token 生成的 Key/Value 向量。
-
目的:
- 显著降低 GPU 计算量 ------ 后续 token 只需与新输入交互,而不用重复扫老 token。
- 支持超长上下文 ------ KV 存在外部高速缓存或 CPU 内存,避免显存爆炸。
-
与模型 Serve 框架强绑定:需要 vLLM、Triton 等在后端维护 KV‑Cache 映射;不同 batch 共享。
3. 如何利用两种缓存
目标 | 做法 |
---|---|
省钱(封装 API) | 把固定 System/Few‑shot Prompt 提前传,确保格式稳定(别多空格),让 Prompt Cache 命中率 > 90%。 |
提速(自托管模型) | 用 vLLM / TGI 开启 KV Reuse,分批送 token;并在长对话中保留 message‑id,让服务端知道可复用 KV。 |
可控性 | 需要明确 TTL 和手动失效,则选支持显式 Context Cache 资源的方案(Gemini、Claude)。OpenAI/Qwen 走隐式策略,无法设 TTL。 |
主流模型的差异
启用方式、最小缓存阈值、默认 TTL、计费规则、开发者可控性 等方面的差异。
模型 | 启用方式 | 最小可缓存 tokens | 默认 TTL(Time 2 Live) | 计费规则(写入 / 命中) | 开发者可控点 |
---|---|---|---|---|---|
GPT‑4o / 4.1 | 自动,只要前缀 > 1024 tokens 即生效 | 1 024 | 官方未公开(内部策略) | 写入 = 正常价;命中 = ‑75 %(0.5×) | 仅统计字段 cached_tokens ;TTL 不可调 |
Claude 4 (Opus / Sonnet) | 显式 cache_control 标记前缀 |
任意长度 | 5 min / 1 h 二档 | 写入 = 1.25× / 2×;命中 = 0.1× | TTL 档位、是否缓存由开发者决定 |
Gemini 2.5 Pro / Flash | 两种 : ① 自动(同上阈值) ② 显式创建 cache 资源并引用 | Pro = 2 048 Flash = 1 024 | 60 min,可设更长 | 写入 = 正常价;命中 = ‑75 % | 可创建 / 更新 / 删除 cache;可设 TTL |
DeepSeek V3 / R1 | 自动;64 tokens 为存储块 | ≥ 64 | 几小时‑数天,自动清理 | 写入 = 1 元 / MTok;命中 = ‑90 %(0.1 元) | 无 TTL 控制;prompt_cache_hit_tokens 计数 |
Qwen 2.5 | 自动;内容 < 256 tokens 不缓存 | ≥ 256 | 不公开(空闲后自动回收) | 命中部分按 0.4× 单价收费 | 仅展示 cached_tokens ;TTL 不可调 |
Grok 4 | 自动开启,可在控制台关闭 | 未公开 | 未公开 | 命中部分按「Cached prompt tokens」优惠价 | 只能查看 usage.cached_prompt_tokens |