LLM 的缓存怎么做:三层缓存与三类不要缓存

人工智能 · 2026-10-07

LLM 缓存难在键的定义。本文给出三层缓存(精确、语义、前缀复用)、各自的键设计与风险、三类不该缓存的内容、该观测的指标(含最易忽略的误命中率)与落地顺序。


LLM 的缓存比传统缓存难在哪

传统接口缓存看 URL 与参数;LLM 的请求体是**自然语言**,同一个意思有无数种写法,

所以"键怎么定"就是核心难题。做错了会出现两种糟糕结果:**该命中没命中**(白花钱),

或者**不该命中却命中**(答非所问)。

三层缓存(强烈建议按这个顺序做)

**一、精确缓存(最稳)**

键 = 请求体的**规范化哈希**:模型 + 提示词版本 + 参数 + 输入文本(去首尾空白、统一换行、统一大小写规则按需)。

  • 只对**幂等、无时效**的任务开(分类、抽取、格式化);
  • 命中率通常已不低(模板化任务重复率很高);
  • 键里**必须含模型与提示词版本**,否则换了版本还在吃旧结果。
  • **二、语义缓存(要克制)**

    把输入向量化,相似度超过阈值就复用旧结果。

  • 阈值调低 → 把"相似但不同"的问题答错(这是它最大的风险);
  • 必须有**白名单**:只对"答案不依赖细节差异"的任务开(例如常见问题);
  • 必须记录命中率与**人工抽检命中结果**,否则你无法知道它错在哪。
  • **三、前缀缓存 / 上下文复用(省在输入侧)**

    很多推理服务对"相同前缀"有优惠。做法:把**稳定部分放前面**(系统提示、固定示例),

    **变化部分放后面**(用户输入)。这样前缀能复用,输入成本明显下降。

    三类**不要**缓存的东西

  • **带时效的**(价格、库存、新闻、政策);
  • **带个人数据的**(缓存键会泄露、结果会串号);
  • **有副作用的**(下单、发信、写库 —— 重放会重复执行)。
  • 该观测什么

  • 命中率(分精确/语义两侧看);
  • **误命中率**(抽检命中结果,错误的占比 —— 这个指标最容易被忽略);
  • 缓存带来的成本节省与延迟改善;
  • 失效策略是否生效(过期、版本变更后旧键是否被绕过)。
  • 落地顺序

    1. 先做精确缓存(含版本号),立刻见效且风险低;

    2. 加前缀复用(把稳定内容前置,几乎无风险);

    3. 最后才考虑语义缓存(白名单 + 抽检 + 可关闭开关)。

    想要你的品牌在AI回答里被推荐?

    免费诊断 →