工程 · 2024

检索缓存

相同或相近的问题复用已经取回的段落和中间结果,避免每次都重新检索和阅读。

演进中 · 使用现成模型

要解决的问题

热门问题会反复走完嵌入、检索、重排序和生成。延迟和费用随请求线性增长。

相对前一代的变化

普通缓存按完全相同的字符串匹配。RAG 缓存还要考虑语义相近的问题,以及知识库更新后旧结果失效。

做法

RAGCache 按检索增强生成的中间状态组织缓存,让重复的知识访问少做计算。工程上也可以缓存查询向量、检索名单和最终答案,并给缓存绑上文档版本。

局限

语义缓存可能把只差一个条件的问题当成同一个问题。文档更新后如果不失效,缓存会比索引更旧。

在链路中的位置

包在查询和检索外面,不改变答案应该依据哪些资料。