BM25 与向量召回为什么并用,各召回多少条进入重排?

考查重点:召回互补与候选预算。BM25 补精确词,向量补语义;各路候选与重排输入/最终上下文分别设预算,用召回增益和延迟曲线定数量

本题目录

参考答案

核心回答

BM25擅长保留明确词项、实体、版本和错误码,向量召回擅长覆盖同义表达与语义改写。两路并用是为了互补漏召回:先分别取候选,按统一片段ID合并去重和融合,再让重排判断哪些证据最能回答当前问题。

每路取多少没有固定答案,需要区分BM25候选数、向量候选数、送入重排的去重数量,以及最终进入生成上下文的数量。项目中应报实际配置、评测依据和代价,不能把某份面经的数字当默认最优值。

为什么不是候选越多越好

精确型号可能被向量检索成相似型号,BM25能补词项约束;用户说“怎么撤销申请”,文档写“申请作废流程”,语义检索可能更有帮助。二者并非绝对分工,中文分词、领域词典、Embedding和文档质量都会改变效果。

增加候选通常提高覆盖机会,也会增加噪声、重排计算和尾延迟。两路高度重合时,加量可能只引入重复;某路一直输出无关项时,应先查查询与索引,而不是按固定比例分配更多预算。

候选预算怎样确定

在固定问题和语料上,从几组可承受的候选配置建立曲线,统计各路独有正确证据、并集证据覆盖、去重后数量、重排耗时和最终答案。按错误码、缩写、自然语言和多条件问题分桶,判断是否需要不同配额或查询路由。

例如每路各取20条,合并后最多40条,实际可能因重合和过滤更少;随后可以只让有限候选进入重排,再按生成token预算取证据。这里的20是说明集合关系的假设,不是推荐配置或项目实测。

融合到重排还要注意什么

使用稳定片段ID处理重复,记录各路原始名次与分数。RRF可避免先校准异构分数;加权融合则要说明归一化和权重依据。权限、租户与有效版本在所有检索路径一致执行,不能让某一路漏掉过滤。

重排判断相关性,不补回两路都没有找到的证据。最终上下文还需去重、补条件和控制总长度;重排分数也不天然表示回答正确概率。

常见追问

可不可以只保留一路? 可以。若问题主要是精确字段查找或单路已经满足质量和成本要求,简单方案更易维护;应比较单路、双路及加入重排的增量收益。

参考资料

  • 国内:JavaGuide:RAG检索优化:依据关键词、向量和重排的阶段分工,说明正文中初筛覆盖、去重融合及最终证据选择的区别。
  • 国内:JavaGuide:RAG向量存储与检索:依据两路能力对照,说明正文中错误码、型号与同义表达分别可能由哪些信号补回。
  • 国内:zero2Agent:RAG与检索:借鉴多路候选、RRF 和截断的组织,说明正文中统一 ID、保留来源排名及分别配置阶段预算的做法。
  • 国外:Microsoft Azure Hybrid search ranking:依据混合检索与排名融合,解释正文中异构原始分数不能直接混加、可用 RRF 合并的原因。
  • 国外:Qdrant Hybrid and Multi-Stage Queries:依据混合查询的预取与返回数量分工,说明正文算例中每路候选、去重并集和最终上下文数量不能混作同一个值。

相关面经

2 篇

快手

前端开发工程师
一面
查看原面经 →
为什么选BM25

联影

Agent 开发工程师
一面
查看原面经 →
为什么采用 BM25 + 向量检索的两路召回?BM25 和向量检索分别召回多少条进入 reranker?

收录题集

1 个来源,共1 份题集

RAG 面试题

卡码笔记 · 个人整理 · 1 条原题

查看题集 →

相关题目

4 题