13.从 Query 改写到多路召回与精排

1. 什么是 RRF 以及为什么需要它?

一句话结论 :RRF 是一个"超级公平的投票计分员",专门用来解决把不同搜索方式(比如向量搜和关键词搜)的结果合并排序的问题,它只看排名,不看原始分数

混合检索的两大流派

  1. 向量检索(Dense Search):按"语义"搜。特点是聪明、懂变通,能理解同义词和上下文(比如搜"打车"能找出包含"滴滴"、"出租车"的文章)。它的得分通常是介于 0 到 1 之间的余弦相似度(如 0.85)。
  2. 关键词检索(Sparse Search / BM25):按"字面命中率"搜。特点是精准、死板,只看关键字是否命中及出现的频率(比如搜"报错 502",它就死盯"502"这个词)。它的得分通常是十几、几十的绝对数值(如 25.3)。

为什么需要 RRF(痛点)

正因为上述两种检索方式的"计分体系"完全不在一个维度上,就像一个是百分制,一个是千分制,我们无法将它们的分数直接相加来比较。这时候就需要 RRF 统一尺度。

RRF 是怎么计算的

彻底抛弃原始分数,根据文章在各自列表里的"名次"来算分。

  • 公式得分 = 1 / (常数k + 名次)(k 通常为 60)
  • 举例 :一篇文章在向量搜排第 2,关键词搜排第 4。那它的总得分就是 1/(60+2) + 1/(60+4)

RRF 的魔力

它偏爱"双料冠军"。如果一篇文章既在"语义上"匹配,又在"字面上"匹配(在两边排名都很高),它的倒数之和就会非常大,最终排名就会高。这能极大提升最终答案的准确度。


2. Query Rewrite 场景下的 4 路并发检索实例

一句话结论:一套顶级的 RAG 检索体系是"两段式"的:先用 4路并发搜索+RRF 进行"粗筛"(捞出几十篇候选),再交由专门的 Rerank 模型进行"精排"(挑出最核心的 3 篇),最后发给大模型。

工作流拆解(两段式黄金架构)

  1. 多路并发召回(粗筛)
    • 原问题 (Q1) ➡️ 发给 向量数据库 ➡️ 得到 Top 10 名单 A
    • 原问题 (Q1) ➡️ 发给 关键词引擎 ➡️ 得到 Top 10 名单 B
    • 改写问题 (Q2) ➡️ 发给 向量数据库 ➡️ 得到 Top 10 名单 C
    • 改写问题 (Q2) ➡️ 发给 关键词引擎 ➡️ 得到 Top 10 名单 D
  2. 合并与 RRF 打分(粗筛排序) 把 A、B、C、D 四份名单合并去重,用 RRF 公式统一计算得分,选出综合得分最高的 Top 20 篇文章作为初筛候选集。
  3. Rerank 重新打分(精排) 把这 20 篇文章和用户问题一起喂给 专用精排模型(Cross-Encoder) ,让它进行深度阅读和重新打分,真正根据逻辑匹配度选出最靠谱的 Top 3
  4. 大模型生成回答 最后,把这精挑细选的 Top 3 篇文章作为上下文拼接进 Prompt,发给生成式大模型(LLM)写出最终的回答。

为什么在 RRF 之后,非要加一道 Rerank (精排)?

  • 因为粗筛(Embedding 向量检索)排不准:Embedding 用的是 Bi-Encoder 架构,属于"盲婚哑嫁"。用户问题和文档是各自独立变成数字向量的。这就会导致:搜"VPN 密码重置"时,由于"VPN 客户端安装"话题相近,也会得到极高的相似度分数,但实际上它根本无法回答用户的问题。
  • Rerank (精排) 是降维打击 :精排用的是 Cross-Encoder 架构,属于"面对面对质"。它把用户问题和文章 拼接在一起 一口气读完。它能敏锐地判断出"虽然都提到 VPN,但一个是讲密码,一个是讲安装,逻辑不匹配",从而给不相关的文章打极低分。
  • 精排的代价是慢:精排极其耗时。这也是为什么我们不能一上来就全库直接精排,而是必须先靠前面的 4路并发+RRF 快速"粗筛"出 20 篇,再把好钢用在刀刃上,对这 20 篇进行"精排"。

3. RAG 系统中的幕后英雄(小模型串讲)

一句话结论 :除了大模型外,标准 RAG 还需要 Query Rewrite 模型Embedding 模型Rerank 模型,它们在流水线上各司其职,缺一不可。

3.1. Query Rewrite 模型(查询改写与路由 / Small LLM)

它的特点

  • 文字打磨工:它的职责不是回答最终问题,而是作为一个"翻译官"或"路由器",专门负责把用户随口说的、口语化的问题,改写成能够精确检索的关键词或子问题。
  • 轻量级大模型:为了省钱和追求极致的响应速度,通常不会用最庞大、最昂贵的模型(如 GPT-4o),而是采用"小一号"的大模型。

业界最常用模型排行

  1. GPT-4o-mini / Claude 3 Haiku:商业 API 中的性价比之王,速度极快,做问题改写和路由绰绰有余。
  2. Qwen2-7B / Llama3-8B 等开源小参数模型:企业私有化部署的标配,资源占用小,通常会针对"提问改写"做专门的微调(Fine-tuning)。

3.2. Embedding 模型(文本嵌入模型 / Bi-Encoder)

它的特点

  • "背对背"独立模式 :用户问题和知识库文档是独立分开进行转换的,互相不知道对方的存在(业界叫双塔架构)。
  • 极速海选:因为不需要两两比对,它的速度极快,主要用于在几十万、上百万篇文档中做第一波"粗排(Recall)"。
  • 不会说话:它是个纯粹的翻译机,只能把文字翻译成几百上千个浮点数(向量)。

业界最常用模型排行

  1. BGE (BAAI General Embedding) :智源研究院出品(如 bge-m3, bge-large-zh-v1.5)。开源、免费、中文效果极佳,几乎是国内企业私有化部署的首选统治者。
  2. OpenAI Text Embedding (如 text-embedding-3-small/large):如果不要求私有化部署且有预算,直接调 API 最省事,综合素质顶尖。
  3. Jina Embeddings:支持高达 8K 长文本,最近在业界非常火,适合直接整篇长文档向量化。
  4. Cohere Embeddings:多语言支持强悍,国际上的标杆之一。

3.3. Rerank 模型(精排模型 / Cross-Encoder)

它的特点

  • "面对面对质"模式 :它把用户问题和初筛出来的文档拼接在一起同时阅读,能够深刻理解两者间的逻辑关系(比如到底能不能回答这个问题),而不是仅仅看"字面或者主题长得像不像"。
  • 非常慢但极准:计算成本极高,不能拿去搜全库,只能对粗筛捞回来的 Top-N(比如前 20 篇)进行"精排",吐出一个极准的 0~1 的相关性分数。

业界最常用模型排行

  1. BGE Reranker (如 bge-reranker-v2-m3):同样由智源出品,国内绝大多数开源 RAG 精排环节的标配,效果拔群。
  2. Cohere Rerank:商业 API 领域的精排天花板(SOTA),很多追求极致体验的大厂场景的首选。
  3. Jina Reranker:效果优秀且 API 价格相对便宜,开源版本也备受好评。
  4. BCE-Reranker (网易有道):专为中英双语优化,在跨语种(比如用中文搜英文资料)检索时表现非常出色。

阶段核心总结

一个满配的 RAG 后台其实是个极其严密且分工明确的"AI 接力赛": 小参数 LLM 负责润色改写问题 ➡️ Embedding 模型 负责极速海选捞人 ➡️ Rerank 模型 负责精细打分挑出前三名 ➡️ 大参数 LLM 拿着前三名的资料写最终总结。


4. RAG 检索核心概念全局大串联 (终极总结)

这篇文章一路走下来,RAG 检索的核心概念基本就全部串起来了。真正决定 RAG 效果的核心往往是 Query Rewrite + Chunking + Recall + Rerank,而不只是 LLM 本身。

RAG 标准全链路图

Query Rewrite (问题改写) ➡️ Metadata Filter (元数据过滤) ➡️ Recall (ANN+BM25 粗排) ➡️ RRF (排名融合) ➡️ Rerank (精排) ➡️ LLM (生成最终回答)

关键结论提炼

  1. Chunking (切块) 是基础 切块策略决定了知识如何被"打包",直接影响检索能找到什么。固定切块、滑动窗口、语义切块、Parent-Child 各有适用场景。注意"Lost in the Middle"现象------喂给大模型的 Chunk 并不是越多越好。
  2. Embedding 把语义变成数学 把文本变成向量,让语义相近的词在空间中距离更近。Dense (向量) 抓语义,Sparse (BM25) 抓字面关键词,两者完美互补。
  3. 相似度认准"余弦 (Cosine)" 主流 Embedding 模型就是为余弦相似度训练的,用别的距离度量方式相当于给考试临时换了评分标准,会导致算不准。
  4. HNSW 算法解决速度问题 百万级向量如果逐条对比会卡死。HNSW 用"跳表的分层思想 + 图的贪心搜索",用可控的召回损失,换来了数量级的速度提升。它通过三个参数(Mef_constructionef_search)来控制精度和性能的平衡。
  5. Query Rewrite 是隐藏的高收益点 用户往往不会提问。让 LLM 先改写 query 再去检索,通常是投入产出比最高的单点优化。而元数据过滤 (Metadata Filter) 则是生产环境的第一道防线------先缩减安全范围,再去做召回。
  6. 混合检索才是终局 任何单一路径都有盲区。语义搜索管意思,BM25 管字面,两路互补;用 RRF 融合它们的排名,再用 Rerank 面对面精排------多路协同,缺一不可。检索的本质,从来不是单一技术,而是多条防线的完美配合。
相关推荐
小小张自由—>张有博2 小时前
memory 渐进式
agent·ai编程·claude code
怕浪猫2 小时前
第10章 实战项目一:智能数据分析Agent
openai·agent·ai编程
莪_幻尘2 小时前
手把手书写你的第一个 AI Skill:从原则到工程化
前端·agent·ai编程
爱昏羔12 小时前
下篇:从检索到交互 — 物流RAG问答系统与WebUI全实现
python·langchain·agent
DO_Community12 小时前
Claude Opus 5 现已上线 DigitalOcean AI 推理云
人工智能·llm·agent·claude
煎饼学大模型13 小时前
Agent 的“大脑-手“解耦架构:当推理层和工具执行层各自独立演进
数据库·人工智能·oracle·架构·agent
人间凡尔赛14 小时前
2026多智能体系统深度解析:从GPT-5.6 Ultra到开源框架,构建你的Agent军团
ai·agent·多智能体·langgraph·crewai·gpt-5.6
武子康17 小时前
GAIA、Cosmos、Genie 等视频模型纷纷自称"世界模型",为什么说视觉逼真度不构成决策证据?
人工智能·llm·agent
思考着亮17 小时前
12.Query改写
agent