← 关联知识节点:RAG 进阶:混合检索、重排与评估
交互工具 · 原理

RAG 三路检索对照

朴素 RAG 只有一条向量路,会被字面骗;生产标配是混合检索两段式:向量路与 BM25 路并行召回(快,粗筛),RRF 融合成一份候选,再交重排精挑顺序(准,逐对细读)。三个查询各考一路——错误码考编号精确、退款是双路都稳的对照组、发票丢失考「意思近不等于最相关」。

三路里两路半是真数学:余弦用预设 2D 单位向量(与「语义坐标与相似度」同一套坐标系)、BM25 用真实 IDF + TF 公式(k1=1.2、b=0.75,7 篇小语料可算)、RRF 用标准 k=60 倒数排名融合;重排用预设相关性标注示意(界面明示,真实实现为交叉编码器逐对打分),E-4021 召回错案例可复现。零 API、零随机。

朴素 RAG 只有一条向量路,会被字面骗。生产标配是混合检索两段式: 向量路与 BM25 路并行召回(快,粗筛),RRF 倒数排名融合成一份候选,再交重排精挑顺序(准,逐对细读)。 下面三个查询各考一路——向量路被编号近邻骗、BM25 分得清编号、重排救回顺序。

同一查询 · 三路排名并排

这个查询在考:考编号精确——E-4021 与 E-4022 字面只差一个数字,看哪一路分得清。文档库 7 篇: E-4021 / E-4022 知识库条目、退款 / 退货 / 发票×2 / 天气——每篇一个预设向量(角度制,与「语义坐标与相似度」工具同一套坐标系)。

① 向量路余弦 · 预设向量
  1. 1第一名0.9998

    错误码 E-4022:请求触发限流保护

  2. 2正确答案0.9981

    错误码 E-4021:上下文超过窗口上限

  3. 30.6494

    发票怎么开:订单完成后可开具电子发票

  4. 40.6225

    发票丢了怎么补:电子发票可在订单详情重新下载

  5. 50.0785

    今日天气晴:适合出行与晾晒

  6. 6-0.4462

    退货政策是什么:七天无理由退货

  7. 7-0.9483

    怎么申请退款:订单页发起,款项原路退回

  8. ↑ top-5 进融合 · ↓ 落选

管「意思接近」——查询与文档各自编码成向量再比夹角,文档可离线编码,检索飞快。

② BM25 路真公式 · k1=1.2 b=0.75
  1. 1正确答案第一名4.269

    错误码 E-4021:上下文超过窗口上限

  2. 22.569

    错误码 E-4022:请求触发限流保护

其余 5 篇词面零重叠 · 不召回

管「字面精确」——稀有词 IDF 高、一票定音;编号整串不拆,E-4021 ≠ E-4022。

③ RRF 融合倒数排名融合 · k=60
  1. 1第一名0.03252

    错误码 E-4022:请求触发限流保护

  2. 2正确答案0.03252

    错误码 E-4021:上下文超过窗口上限

  3. 30.01587

    发票怎么开:订单完成后可开具电子发票

  4. 40.01563

    发票丢了怎么补:电子发票可在订单详情重新下载

  5. 50.01538

    今日天气晴:适合出行与晾晒

只看名次不看分数:两路都靠前就排最前;两路名次恰好互换时打平,按向量路序保持——融合不分内容,顺序糙。

④ 最终进提示词融合列直出
  1. 1第一名0.03252

    错误码 E-4022:请求触发限流保护

  2. 2正确答案0.03252

    错误码 E-4021:上下文超过窗口上限

  3. 30.01587

    发票怎么开:订单完成后可开具电子发票

  4. 40.01563

    发票丢了怎么补:电子发票可在订单详情重新下载

  5. 50.01538

    今日天气晴:适合出行与晾晒

重排未开:融合列直出。召回快但顺序糙——拧开上面的开关,看重排怎么把正确答案顶回第一。

三路对照 · 错误码 E-4021 的准确含义

向量路被长得像的编号骗了:E-4022 与 E-4021 的向量近得危险(0.9998 vs 0.9981,肉眼分不出),E-4022 排第一。 BM25 路靠 e-4021 整串精确命中一票定音,把正确答案顶到第一。RRF 融合后两票恰好互换、分数打平 (1/61 + 1/62),并列时保持向量路序——错的第一名还在;开启重排逐对细读,才把它换下来。混合检索保「候选不丢」,重排管「谁排第一」——两段各司其职。

两路各守一端向量补「字面岔开但意思仍近」(换个说法就搜不到的那端),BM25 补「编号必须精确」(E-4021 分得清 E-4022 的那端)——两个极端,一路守一个。
RRF 公式RRF(d) = Σ 1/(k + rank),k=60——只看名次不看原始分数,向量分和 BM25 分不可通约也没关系;两路都靠前的候选不会丢。
双塔快 · 交叉准双塔(bi-encoder)问题与文档各自编码,毫秒级、可离线,适合百万级粗筛到百级;交叉编码器(cross-encoder)逐对拼接打分,精度显著更高,但每对都要跑一次模型——只精挑几十个候选。生产标配:混合召回 top-20 → 重排 → top-3 进提示词。
示意边界本页余弦、BM25、RRF 全是真数学(7 篇小语料可算);唯重排的相关性数字是预设标注示意——界面已注明,真实系统用交叉编码器现算。

BM25: score = Σ IDF·tf·(k1+1) ÷ (tf + k1·(1−b+b·|d|/avgdl)) · RRF: Σ 1/(60 + rank)