大模型推理降本落地:前缀缓存的提示词规范、监控与私有化实践
企业把大模型接进业务之后,成本曲线往往不是被算力单价拉起来的,而是被"重复计算"拉起来的。尤其是智能体这类多步流程,每一步都驮着同一份长上下文,同一段系统提示词会被反复计费。前缀缓存(Prompt Caching)针对的正是这块。这篇从企业落地的角度,讲清它的成本构成、提示词规范、失效排查、监控口径,以及在私有化环境中的选择。
一、成本源头:预填充被重复计费
模型不记事。每次请求进来,它先把整段上下文从头算一遍(预填充),这部分算在输入上。单轮问答时无妨,但一个 20 多步、几十次工具调用的智能体流程,每一步都带着同一份两万多 Token 的系统提示词——同一段内容被算、被计费了二十多次。
前缀缓存的思路,是把稳定前缀算完的中间状态(KV 缓存)存下来,后续请求直接复用,跳过重算。
二、计价口径:四种身份四个价
缓存不是白送的:第一次写入比不缓存贵一点,命中读取才便宜。以公开口径为例(Anthropic 官方文档,各模型有差异):
- 基础输入价:100%,即不缓存时
- 缓存写入(5 分钟档):125%
- 缓存写入(1 小时档):200%
- 命中读取:10%,部分模型 5% 或 2.5%
折扣只打在输入上,输出不减;1 小时档写入收两倍,一小时内只取一次会亏本,需取两次以上。回本很快:写入多付约 0.25,一次命中省约 0.9。
三、提示词规范:把"缓存友好"写进模板
对企业来说,最值得固化的是提示词模板的结构规范,而不是让每个业务各自发挥。核心原则一句话:静态前置,动态后置。
- 静态段(靠前):角色设定、系统规则、工具定义、固定示例、术语表等长期不变的内容。
- 动态段(置尾):当前状态、上一步结果、时间戳、本次问题等每次都会变的内容。
这条规范背后是一条硬约束:缓存以逐字一致的前缀为键,不认"意思相近"。前缀中改动一个字符,之后全部失效。而且失效是分层的——缓存前缀按"工具定义 → 系统提示词 → 消息"拼接,上面一层变更会让下面全部作废。所以哪怕只是给某个工具加一个字段、改一句描述,整段缓存也会清零。
有个公开案例值得引以为戒:某智能体缓存一直开着,命中率却只有 7%,根因就是工作记忆混在了系统提示词中段;把它挪到对话末尾后,命中率升到 74%、稳定后 84%,整体调用成本下降 59%。
因此建议:提示词模板要像代码一样纳入评审与版本管理,任何改动都应评估它对缓存前缀的影响。
四、静默失效排查清单
前缀缓存最大的坑是不报错:失手时无异常、无警告,返回内容与正常一致,只有账单变化。以下是常见四种静默不命中,建议做成排查清单:
- 太短,够不上门槛:最小可缓存长度按模型分档(Anthropic 512/1024/2048/4096,OpenAI 现行模型 1024),不够长会被静默跳过。
- 标记打在会变的块上:写入只发生在标记位置,标记若落在每次都变的内容上,就会每次都付写入、永远读不到,标记得前移到稳定段。
- 寿命从请求发出起算:默认寿命(Anthropic 5 分钟、OpenAI 30 分钟)包含生成本身耗时;命中读取会重置计时,因此持续调用能让缓存常驻。
- 标记名额不足:Anthropic 最多 4 个标记,回看窗口 20 个块,自动缓存还占一个。
五、私有化推理:vLLM 与 SGLang 的取舍
若模型部署在企业自有算力上(如昇腾),前缀缓存省的是算力时间,实现与云上不同:
- vLLM:按块匹配,默认 16 Token/块,前缀不是块整数倍时末块要重算(17 Token 命中 16 个)。其 V1 引擎已将开销压到接近零,默认开启。
- SGLang:基数树匹配,粒度细到单 Token,无块边界损耗,适合前缀碎片化的负载。
在托管平台上,可以把提示词模板与数据集统一放到对象存储(如 OBS),推理任务跑在托管平台(如 ModelArts),使模板版本、命中计数与业务版本可以对齐审计。
六、可观测:把命中计数纳入监控
不能依赖"开关是否打开",必须看计数:
- 云上:读取返回中的用量字段,写入计数与读取计数均为 0 即未命中,须与普通 Token 计数一起落库。
- 自建:同一段前缀冷、热两轮压测,对比命中计数。
- 口径一致性:控制台命中率是时间聚合值,单次响应的计数只说单个请求,二者不可直接比较。
七、落地清单
- 提示词模板按"静态前置、动态后置"重排一次,把会变的内容全部挪到末尾。
- 工具定义、系统提示词、对话断点统一规划,避免频繁改动上层。
- 命中计数与 Token 计费一起落日志,接入监控看板。
- 用同一段前缀做冷热压测,确认参数生效而非"写了就算"。
- 评估负载特征:短输入长输出、稀疏调用的场景,缓存收益有限,不必强上。
静态的放前面,会变的那几行挪到末尾;开着缓存不等于命中,先去看那两个计数。
- 点赞
- 收藏
- 关注作者
评论(0)