RAG 多路召回:原理、组件与融合策略
RAG 多路召回:原理、组件与融合策略
在 RAG(检索增强生成)系统中,多路召回(Multi-Route Retrieval / Hybrid Search) 是提升检索质量的关键技术。
核心思想:不把鸡蛋放在一个篮子里——同时使用多种检索算法,互补短板,提高召回率。
1. 为什么需要多路召回?
单一检索方式都有局限:
- 向量检索:擅长语义理解,但对关键词、缩写、型号(如
iPhone 15 Pro Max)匹配很差。 - 传统搜索(BM25/倒排索引):擅长精确匹配,但无法理解语义(搜“土豆”找不到“马铃薯”)。
👉 多路召回正是为了解决这个矛盾。
2. 典型的两路召回构成
A. 语义召回(Dense Retrieval)
- 原理:用 Embedding 模型将文本转为高维向量。
- 工具:Milvus、Pinecone、FAISS、Elasticsearch
- 优势:语义匹配、跨语言检索
B. 关键词召回(Sparse Retrieval)
- 原理:基于词频统计(TF‑IDF / BM25)
- 工具:Elasticsearch、Meilisearch、ZincSearch
- 优势:专有名词、编码、生僻词匹配准确
C. 其他可选路径
- 知识图谱:处理复杂逻辑关系
- 元数据过滤:按时间、类别、地域等预筛选
3. 结果融合策略
多路返回的结果需要合并,常见两种方式:
RRF(Reciprocal Rank Fusion)
只关心各路的排名,不依赖原始分数。
公式:score = Σ 1/(k + rank),k 通常取 60
- 优点:稳定、无需调参、不受不同模型分数尺度影响
加权得分
最终得分 = α × 向量分 + β × BM25 分
- 缺点:需反复调参,分数归一化困难
4. 必不可少的重排序(Rerank)
多路召回后通常得到 50~100 个候选文档(Top K)。
直接喂给 LLM 会导致上下文过长、中间内容丢失(Lost in the Middle)。
- 做法:用 Cross‑Encoder 模型(如 BGE‑Reranker、Cohere Rerank)精细打分
- 效果:大幅提升 Top‑K 准确率,保证送给大模型的内容最相关
总结
多路召回的本质是 “先求全,再求精”:
- 向量检索 → 抓取语义意图
- 关键词检索 → 锁定精确细节
- RRF 融合 → 稳定合并结果
- Rerank → 精选 Top‑K
浙公网安备 33010602011771号