构建RAG系统,召回策略是决定效果的关键。本文深入解析了稀疏向量、密集向量及混合召回的核心原理与优劣,并针对“设置几路召回”这一实际问题,给出了兼具效果与效率的实战方案,为开发者设计检索系统提供了清晰的决策依据。
智能速览
稀疏向量召回基于词频匹配,擅长精确检索但无法理解语义。
密集向量召回利用嵌入模型,能解决同义词问题但依赖模型质量。
混合召回结合二者优势,通过RRF等策略融合,效果最全面。
实践中通常采用2路召回(BM25+向量)以平衡效果与复杂度。
精华内容
选择合适的召回方式,是搭建高效RAG系统的第一步。从关键词匹配到语义理解,不同的技术路径决定了系统检索能力的上限。下面将详细拆解这些方案的内在逻辑与实际考量。
关键词精确匹配
稀疏向量召回,常被称为关键词召回,其核心是基于词频统计算法,如BM25或TF-IDF。该方法将查询和文档转化为高维稀疏向量,通过计算词语的重叠度来判断相关性。
它的主要优势在于处理包含精确关键词或命名实体的查询时表现出色,并且可解释性强,能清晰地知道匹配了哪些词。然而,其最大短板是无法处理词汇鸿沟问题,即无法理解“电脑”与“计算机”这类同义词,也无法区分“苹果”作为公司与水果的多义性。
语义深度理解
密集向量召回则依赖深度学习嵌入模型,如BERT或Sentence-Transformer,将文本映射到低维的密集向量空间。在这个空间中,语义相近的文本在几何距离上也更接近。
这种方法最大的优点是具备了语义理解能力,能有效解决同义词和多义词带来的困扰。例如,当查询“苹果最新手机”时,系统能够召回关于“iPhone 15”的相关内容。其缺点则在于对嵌入模型质量的严重依赖,对于模型未充分学习过的专业领域或生僻词,处理效果可能会打折扣。
优势互补方案
为了兼顾关键词的精确性和语义的广泛性,混合召回应运而生。它同时运行稀疏召回和密集召回,获得两个独立的结果集,再通过特定策略进行融合。
常见的融合策略包括倒排排名融合(RRF)和线性加权融合。RRF通过计算两个列表中每个文档排名的倒数之和来重新排序,是当前最主流的方法。这种方案的优点是召回效果最鲁棒、最全面,但代价是需要同时维护两套索引,带来了更高的计算与架构开销。
实战配置建议
在工程实践中,设置几路召回是一个在效果和成本之间权衡的问题。最常见的配置是“2路召回”:一路基于BM25的稀疏向量召回,加上一路密集向量召回,二者通过RRF等策略融合。
这种配置能够在大多数场景下取得优异的效果,同时将系统复杂度控制在可接受范围内。当然,在某些对关键词匹配要求极高的简单场景(如法律条文检索),也可能仅使用一路BM25召回。但对于追求综合效果的通用RAG系统,2路召回是经过验证的最佳实践。
总而言之,RAG的召回策略设计需要在效果与成本间找到平衡。理解稀疏与密集召回的互补性,并合理配置混合方案,是构建高质量检索系统的基础。随着技术演进,未来的召回策略或许会更加智能化,为更精准的信息获取提供支持。