新一代增强式生成架构: RAG + CAG【AI大模型教程】
内容预览
在大模型应用的浪潮中,**RAG(检索增强生成)**一直是提高模型回答准确性的关键技术。而几个月前,另一个词——**CAG(缓存增强生成)**开始频频出现,很多人都在讨论它的潜力。 但真正的魔力,其实发生在 RAG 与 CAG 的融合 之中。
记得之前看过一篇文章,Manas 为了解决推理速度及算力的问题,就使用了类似这样的技术。
那CAG + RAG 架构到底是什么?怎么做?
- RAG 与 CAG 是什么? =================
RAG(Retrieval-Augmented Generation):通过语义检索,把外部知识库中的内容取出来,拼接进 Prompt 里,辅助模型生成更准确的回答。 适合应对动态、实时变化的信息。
CAG(Cache-Augmented Generation):把不常变化的高频知识(如企业规则、核心数据)提前预计算成模型的 KV 缓存,加载进 LLM 内存中,随时调用。适合提供稳定、快速响应的静态知识。
如过再粗暴一点,你可以将 CAG 理解为内存,RAG 理解为硬盘,都是装知识的地方
- CAG + RAG 的融合流程 ==================
整个流程可以分成两个阶段:数据准备 和 查询执行。
CAG + RAG 的融合流程
2.1 数据准备(Data Preprocessing)
① 缓存冷数据(CAG 部分)
找出那些变化极少但被频繁查询的数据源,比如企业政策、产品手册、固定文档。
将这些数据预计算为 LLM 的 KV 缓存(Key-Value Cache),加载到模型内存中。
只需执行一次,后续可以长期复用。
② 构建向量索引(RAG 部分)
对动态或外部信息(如新闻、知识库、网页)计算向量嵌入(embeddings),
存入向量数据库(Vector DB)或普通数据库,供后续检索使用。
2.2 查询执行(Query Path)
③ 构造提示(Prompt)
将用户问题 + 系统指令组合起来,并明确告诉模型:“哪些信息来自缓存(CAG),哪些来自检索(RAG),以及如何综合使用。”
例如:告诉模型可从缓存的公司内部规章(CAG部分)中获取固定政策信息,从检索到的外部数据(RAG部分)中获取最新补贴标准。
④ 检索外部信息
将用户问题向量化,在向量数据库中执行语义搜索,
获取最相关的上下文内容。
如果无需语义检索,也可直接查实时数据库或网络。
5. 融合上下文
将检索到的外部信息与缓存的内部知识合并,
构成最终的 Prompt 输入。
6. 生成回答
将融合后的 Prompt 送入大模型,生成最终回答并返回给用户。
3 注意事项
① 区分冷热数据
- “冷数据”是变化极少的知识,适合缓存;
- “热数据”更新频繁,应通过 RAG 检索。混用会导致数据过时、应用不同步。
② 敏感数据要谨慎缓存
缓存数据往往对所有用户可见,如果其中包含敏感信息,会引发安全问题。
③ RBAC(权限控制)难题缓存机制下很难做细粒度的角色权限区分。若业务对权限敏感,建议每个角色使用独立模型与独立缓存。
- 总结 =====
在传统 RAG 中,模型每次都要检索所有信息,效率受限;而 CAG 把核心知识“预热”进模型,使得回答更快、更稳定。
一个不是特别恰当的比喻,你可以把 RAG 看成是检索装在“硬盘”里知识的技术,而把 CAG 看成是检索装在“内存”里的知识。当两者融合,AI 助手既能实时搜索新信息,又能快速调用内部知识库。