Skip to content

RAG 与 CAG 的对比

RAG vs CAG

RAG 改变了我们构建知识落地系统的方式,但它仍然存在一个弱点。

每次查询到来时,模型往往需要从向量数据库里重新取一遍相同的上下文,这既昂贵,又冗余,还慢。

缓存增强生成(Cache-Augmented Generation,CAG)解决了这个问题。

它让模型能够直接把稳定不变的信息缓存进自己的键值(key-value)记忆中,从而「记住」这些信息。

你还可以更进一步,把 RAG 和 CAG 融合起来,如下图所示:

rag p142 1

简单来说,它是这样运作的:

  • 在常规的 RAG 方案里,你的查询会发送给向量数据库,检索出相关分块,再把它们提供给 LLM。

  • 但在 RAG + CAG 方案里,你会把知识分成两层。

    • 静态的、很少变化的数据——比如公司规章制度或参考手册——会被一次性缓存进模型的 KV 记忆中。
  • 动态的、频繁更新的数据——比如最近的客户互动记录或实时文档——则依然通过检索来获取。

这样一来,模型就不需要每次都重新处理同一份静态信息。

它可以直接从缓存中即时调用这些信息,再用检索补充最新内容,从而实现更快的推理。

这里的关键在于,你要有选择地决定缓存哪些内容。

你应该只缓存那些稳定、不常变化、且高价值的知识。

如果你把所有东西都缓存起来,就会触及上下文长度限制。所以,区分「冷」数据(可缓存)和「热」数据(需检索),是保持这套系统可靠运行的关键。

你也可以在上图中看到这一实际应用效果。

像 OpenAI 和 Anthropic 这样的许多 API 已经支持提示词缓存(prompt caching),你可以立刻动手尝试。

本站内容仅供学习交流,版权归原作者所有。