RAG数据召回优化方案——先进行标量召回再进行相似度召回 原创

发布于 2025-10-9 06:56
浏览
0收藏

“ RAG召回时最好进行多次过滤,这样才能大大提升召回文档的质量。”

关于RAG数据召回技术,大家都都知道现在普遍使用的是相似度(语义)召回方式;但对没有真正实际操作过的人来说,可能会认为RAG只能进行相似度召回;但在真正的业务场景中,标量召回的效果可能会比相似度召回更好。

原因在于,RAG的目的是为了更准确的召回与问题相关的内容,但并没有限制具体的召回方式,不论是传统的字符匹配,分词技术(如es),还是现在爆火的相似度计算都可以作为数据召回的手段,而且可以根据不同的场景选择合适的召回方式。

标量召回和相似度召回

标量召回就是基于传统的字段匹配的方式,而相似度召回是基于向量计算的方式;其分别对应传统的关系型数据库和现在的向量数据库。

向量数据库作为一个相对比较新的中间件,可能部分刚开始学习向量数据库的人并不了解其运作机制,可能会有人认为其只支持向量计算。

但事实是,向量数据库和传统的数据库并没有什么特别本质的区别,其更像是在传统数据库的基础之上,增加了向量计算,以及单独的向量字段,因此向量数据库同样支持传统的字符匹配模式。

RAG数据召回优化方案——先进行标量召回再进行相似度召回-AI.x社区

我们都知道在RAG中有一个非常重要的组件——Embedding嵌入模型,其作用是把自然语言转换成向量形式。

而向量数据库的运作原理就是,在文档处理阶段,通过对文档进行拆分,然后再通过embedding模型把拆分之后的文档转换成向量模式,之后保存到向量数据库中的向量字段中。

然后在用户提问时,通过同样的方式把用户问题转换成向量模式,之后再通过某种计算方式对用户问题和拆分的文档进行向量匹配,如欧式距离,余弦相似度计算等方式,来计算用户问题和具体文档之间的相似度,相似度越高,其语义相关性越大;这就是相似度召回的基本原理。

但是呢,相似度计算毕竟不是很准确,特别是在语义不明确的情况下;其召回的数据质量真的无法保证,因此这时就需要使用标量召回配合相似度召回来提升文档的召回质量。

RAG数据召回优化方案——先进行标量召回再进行相似度召回-AI.x社区

举例来说,针对不同的用户可能存在不同的特性,然后可以把这些特性作为文档的属性进行数据隔离;如有些文档属于部门专有文档,有些文档属于用户文档,有些文档又属于企业内部文档;而部门名称,用户文档,企业文档等都属于数据特征。

因此,不同用户提出的问题,可以先根据用户所在的部门,或者属于消费者和管理者的角色,先筛选出对于角色的文档;然后再次基础之后,在进行相似度召回,这样就能大大提升文档召回的准确率。

本文转载自​​AI探索时代​​ 作者:DFires

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
收藏
回复
举报
回复
相关推荐