RAG 系统的瓶颈常被误认为是模型能力不足,实则根源多在于检索环节。即便升级模型与向量库,若检索不稳,回答质量依旧飘忽不定。本文聚焦于检索链路,拆解了五种在工程实践中被验证行之有效且回报率高的优化策略,旨在从根本上提升 RAG 系统的稳定性和准确性。
智能速览
RAG 的核心瓶颈通常在于检索而非生成环节。
通过多向量策略,可处理表格、图片等非纯文本内容。
引入标量字段(如时间、来源)能实现更可控的检索过滤与排序。
为文本块补充上下文信息,能有效避免模型对孤立句子的误读。
结合 BM25 与向量检索,能兼顾语义相似与关键词精确匹配。
人工预处理补充结构和语义,是性价比极高的优化手段。
精华内容
既然检索是 RAG 的命脉,那么如何精准地优化它?以下五个工程策略,从数据表示、逻辑控制和召回增强等角度,提供了一套系统性的解决方案。
多入口检索
多向量检索的核心在于将用于检索的表示和用于回答的原文解耦,为同一份内容提供多种“检索入口”。例如,在处理表格数据时,可以用易于召回的总结性文本来检索,但最终回答时依据原始表格字段和数值。这种策略能将 RAG 的能力从纯文本扩展到表格、图片等多模态内容,尤其在表格、代码和图文混合三类数据上收益稳定。其关键在于为不同查询意图提供最优的检索路径,而非简单地存储更多向量。
补全业务结构
许多团队追求全自动的数据接入,但工程实践中,轻量级的人工预处理往往性价比更高。通过人工进行文档切分和打标,可以先把检索所需的“结构”(如章节、部门)和“业务语义”(如标签、关键词)补充完整。例如,为不同业务线的文档打上对应标签。这些预处理后的标签和数据结构,能直接影响后续的向量表示、重排序和路由策略,为整个检索链路打下坚实基础。初期不必追求复杂的本体论,优先补充对业务最有价值的结构化信息。
标量控制边界
此处的“标量”指时间、版本、来源、权限、质量分等非向量的元数据字段。将这些字段纳入检索逻辑,能让结果从“不可控的相似”走向“精确的可控”。常见做法有两种:一是“先过滤后检索”,利用 metadata 先将候选集缩小到业务相关的范围,例如只检索近三个月的文档;二是“先召回后重排”,向量检索返回 TopK 结果后,再由标量字段根据业务优先级(如官方文档权重更高)进行重打分,最后合并分数排序。这让检索结果更贴合业务规则。
上下文防误读
上下文增强旨在解决文本块被切断后可能产生的“孤句误读”问题,即一个脱离了背景的句子容易被模型误解。实现方式多样:一是在 Embedding 前,将 chunk 的标题、文档名等轻量上下文拼接到文本前;二是采用 Parent/Window 思路,先召回一个精确的小块,但在给模型时扩展为其父章节或前后窗口的内容;三是构建结构化索引,模仿人类阅读方式,先在目录树中定位,再下钻到具体段落,如 PageIndex 方法。这些方式确保模型在回答时能看到更完整的证据。
召回兜底策略
纯向量检索在处理包含特定编号、字段名或专业术语的查询时常会失手,而这正是 BM25 这类传统稀疏检索算法的优势所在。BM25 基于关键词精确匹配,能有效兜底这类强相关的查询。工程上通常采用两种集成模式:并行召回模式,同时用向量和 BM25 召回,合并去重后统一重排序,适合对召回率要求高的场景;两段式模式,先用 BM25 进行大范围初筛,再用向量模型和重排序模型对小集合进行精排,适合超大规模语料库,能有效控制向量检索的计算成本。
RAG 的优化是一项系统工程,单一策略难以解决所有问题。将多向量、标量控制、上下文增强和 BM25 集成等策略组合使用,才能构建一个稳定可靠的检索链路。最终目标是让系统不仅能回答问题,更能提供可追溯、可信赖的答案。你的 RAG 系统,准备好从这些策略开始升级了吗?