Prompt Caching(提示词缓存/前缀缓存) 是大模型推理的核心优化技术,通过 跨请求复用相同前缀的KV Cache,减少重复计算,显著**降低延迟、节省成本**。它也被称为 **Prefix Caching**。
一、核心原理:KV Cache 的跨请求复用
KV Cache:模型处理输入时,为每个 Token 计算的注意力 Key/Value 状态,存在显存中,
用于后续生成 Token 时复用,单次请求内有效。
Prompt Caching:把 KV Cache **跨请求持久化**。新请求若与缓存中的 **前缀完全一致(token 级精确匹配),
则直接复用该前缀的 KV Cache,跳过重复的 **Prefill(预填充)阶段**,仅计算新增部分。
工作流程(以 OpenAI 为例)
1. 缓存启用:提示词长度 ≥ 1024 tokens 自动开启,缓存命中以 128 tokens 为增量。
2. 缓存查找:系统检查当前 Prompt 前缀 是否存在缓存。
3. 命中(Cache Hit):复用缓存的 KV Cache,TTFT(首包时间)可降 90%+,输入成本低至原价 10%。
4. 未命中(Cache Miss):全量处理并将前缀 KV Cache 存入缓存,TTL 通常 5–10 分钟。
二、为什么效果显著?
延迟:长 Prompt 场景下,首包时间从秒级降至 百毫秒级。
成本:缓存输入计费通常为原价的 1/10(Anthropic、OpenAI 新模型)。
算力:避免重复的 Transformer 注意力计算,GPU 占用大幅降低。
三、关键规则:前缀精确匹配
必须前缀完全一致:任何 Token 差异(包括空格、标点、大小写)都会导致缓存失效。
结构优化原则:静态内容放前面,动态内容放后面。
✅ 推荐:`[系统指令/角色设定/背景知识] + [动态用户输入/对话历史]`
❌ 避免:动态内容穿插在静态前缀中。
四、主流厂商实现对比
| 厂商 | 触发条件 | 缓存粒度 | 价格折扣 | 缓存控制 |
|---|---|---|---|---|
| OpenAI | ≥1024 tokens 自动 | 128 tokens 增量 | 最高 90% | 自动,无需配置 |
| Anthropic | 可手动标记缓存区 | 自定义区间 | 90%(缓存读) | `cache_control` 显式标记 |
| Google Gemini | 长上下文自动 | 前缀匹配 | 随模型调整 | 自动优化 |
五、最佳实践(立即落地)
1. 重构 Prompt 结构
把 系统指令、角色设定、工具定义、固定知识库 放在最前面(静态前缀)。
把 用户问题、对话历史、动态参数 放在最后(可变后缀)。
2. 长对话优化
采用 滑动窗口 时,尽量保持 前缀不变,仅在末尾追加新对话,避免破坏前缀匹配。
3. 监控缓存命中率
目标:≥60%(高并发模板化场景可达 90%+)。
低命中率时,检查前缀是否频繁变动、是否存在无关随机字符。
六、适用场景与局限
✅ 最适合:
RAG 系统:固定 Prompt + 动态检索结果。
多轮对话:系统提示固定,仅用户输入变化。
批量处理:相同指令处理不同数据(如客服、内容审核)。
不适合:
完全随机 Prompt(无固定前缀)。
实时性极强、每次输入都不同 的短对话。
需要严格隔离、不可缓存敏感数据 的场景。
七、总结
Prompt Caching 是大模型应用的“加速器+省钱利器”。核心在于 前缀精确匹配、静态前置、动态后置。
在 RAG、多轮对话、批量任务中,合理利用可实现 延迟降低 90%、成本节省 80%+。
下一讲:Prompt结构优化模板 和 缓存命中率监控脚本
我要赚赏金
