news 2026/4/18 11:53:39

RAG系统-重排序与多跳检索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAG系统-重排序与多跳检索

🍋🍋AI学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


一、重排序(Re-ranking)详解

1. 为什么需要重排序?

初检阶段(如向量相似度检索)通常采用高效但粗糙的匹配方式:

  • 向量嵌入模型(如text-embedding-ada-002)虽然能捕捉语义,但对细粒度语义匹配、逻辑一致性、上下文依赖等能力有限。
  • 可能召回大量“表面相关但实质无关”的文档。

🌰 举例:
用户问:“Transformer 模型中 LayerNorm 的作用是什么?”
初检可能召回一篇讲“Transformer 架构综述”的文章(包含 LayerNorm 字眼),但真正解释其作用的段落可能在另一篇更专业的论文中。
重排序的目标就是把后者排到前面。


2. 重排序的核心思想

对初检返回的 top-K(如 K=50)候选文档,使用一个更强、更精细的模型重新计算 query 与每个文档的相关性分数,再按新分数排序,取 top-N(如 N=3~5)送入 LLM。

✅ 本质:粗排(fast but noisy) + 精排(slow but accurate)


3. 重排序的实现方式

(1)基于交叉编码器的重排序(Cross-Encoder Reranker)

这是目前最主流、效果最好的方式。

  • 原理:将 query 和 document拼接成一个序列,输入一个预训练语言模型(如 BERT、RoBERTa),输出一个相关性分数。
    1[CLS] query: What is LayerNorm? [SEP] passage: In Transformer, LayerNorm is applied after residual... [SEP]
  • 模型输出[CLS]token 的 logits,经 sigmoid 得到 0~1 的相关性分数。
  • 优点:能建模 query 与 document 的深度交互(token-level attention),远优于双塔模型(Bi-encoder)的独立编码。

对比:

  • Bi-encoder(初检用):query 和 doc 分别编码 → 计算余弦相似度(快,可索引)
  • Cross-encoder(重排用):联合编码 → 精确打分(慢,不可索引)
(2)常用重排序模型
模型特点适用场景
BGE-Reranker(智源)开源、支持中英文、轻量高效中文 RAG 首选
Cohere Rerank商业 API,效果极佳,支持长文本企业级应用(付费)
ColBERTv2延迟交互(late interaction),比 cross-encoder 快平衡速度与精度
LLM-based Rerank用 GPT-4 / Claude 直接判断相关性(Zero-shot)小规模、高价值场景

💡 推荐:BGE-Reranker-v2-m3(多语言、小模型、效果好)


4. 重排序的关键关注点

关注点说明
Top-K 选择初检召回太多 → 重排慢;太少 → 可能漏掉好结果。通常 K=30~100
计算开销Cross-encoder 无法预计算,需实时推理。可考虑缓存或异步处理
长文本处理超过模型最大长度(如 512)时需截断或滑动窗口
领域适配通用 reranker 在专业领域(如医疗、法律)效果下降,建议微调
多语言支持确保 reranker 支持你的语言(BGE 系列支持中文)
评分归一化不同 query 的分数分布不同,避免直接比较绝对值

二、多跳检索(Multi-hop Retrieval)详解

1. 什么是多跳检索?

  • 单跳检索:一次 query → 一次检索 → 得到答案(适用于简单事实问答)。
  • 多跳检索:需要多次检索 + 推理才能回答的问题。

🌰 经典例子(HotpotQA 数据集):

“Who is the founder of the company that created TensorFlow?”

需要两跳:

  1. TensorFlow 是谁开发的?→ Google
  2. Google 的创始人是谁?→ Larry Page & Sergey Brin

最终得到答案。


2. 多跳检索的挑战

  • 信息分散:答案分布在多个文档中。
  • 推理链构建:如何从第一跳结果推导出第二跳 query?
  • 错误传播:第一跳检索错误 → 后续全错。
  • 循环/冗余:重复检索相同内容。

3. 实现策略

(1)迭代式检索(Iterative Retrieval)
  • 步骤:
    1. 用原始 query 检索第一批文档。
    2. 用 LLM 分析这些文档,生成新的 sub-query(用于下一跳)。
    3. 用新 query 再次检索。
    4. 重复直到满足停止条件(如找到答案、达到最大跳数)。

📌 关键:Query 生成质量决定成败。

(2)基于图的检索(Graph-based Retrieval)
  • 将知识库构建成实体关系图(如 Wikidata)。
  • 从问题中提取实体,进行图遍历(如 2-hop neighbors)。
  • 适合结构化知识,但构建成本高。
(3)FLARE(Forward-Looking Active Retrieval)
  • 在 LLM 生成过程中动态判断是否需要检索
  • 当模型预测的下一个 token 置信度低时,触发检索。
  • 实现“按需检索”,减少冗余。
(4)Self-Ask / Chain-of-Thought + Retrieval
  • 让 LLM 先生成推理链(CoT),再对每个子问题单独检索。

4. 多跳检索的关键关注点

关注点说明
跳数控制通常 2~3 跳足够,更多跳易引入噪声
查询改写质量使用强 LLM(如 GPT-4)生成 sub-query 效果更好
去重机制避免重复检索相同文档(可用 embedding 或 hash 去重)
融合策略如何合并多跳结果?可拼接、加权、或让 LLM 综合
评估难度需要多跳 QA 数据集(如 HotpotQA、2WikiMultihop)
延迟 vs 精度多跳增加响应时间,需权衡用户体验
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:35:56

Spring Aop详细讲解

要快速理解 Spring AOP,核心是抓住 **“什么是 AOP”“Spring AOP 解决什么问题”“核心概念”“执行流程”“实际使用”** 这几个关键维度,用 “生活化例子 + 核心原理 + 代码实践” 的思路来拆解,就能快速入门。 一、先搞懂:AOP 到底是什么?(生活化类比) AOP 是面向…

作者头像 李华
网站建设 2026/4/18 8:07:39

高效办公新利器:基于LobeChat的团队内部AI聊天系统搭建

高效办公新利器:基于LobeChat的团队内部AI聊天系统搭建 在今天的科技企业里,一个常见的场景是:新入职的工程师反复询问同一个接口调用方式;产品经理为写不清需求文档而苦恼;运维同事被重复的故障排查问题缠得焦头烂额。…

作者头像 李华
网站建设 2026/4/18 7:59:04

FLUX.1-dev:120亿参数文本生成图像模型

FLUX.1-dev:120亿参数文本生成图像模型 在AI生成内容(AIGC)领域,高保真文生图模型的演进正以前所未有的速度推进。当大多数用户还在使用Stable Diffusion系列模型时,Black Forest Labs悄然推出了FLUX.1-dev——一款基…

作者头像 李华
网站建设 2026/4/18 6:58:28

0x3f第五天复习(9.39-13:21)

两数之和2min思考aclowerbound20min10minx x(对于target的特殊情况处理)旋转排序最小值5min 7minac x(看清楚题目要什么)峰值2min7minac ac长度最小子数组5min思考ac无重复字符的最长字串5min思考ac乘积小于k的子数组思考了流程10minac x(移动窗口…

作者头像 李华
网站建设 2026/4/18 10:51:48

可视化总结,AI在培训/咨询/共创/讨论/会议……场景的小实践

上周在客户现场,一天的工作坊,安排了5次共创。尝试用Nano Banana Pro,跑通了一个小小的工作流——话题讨论结束,几分钟后出一张可视化总结(视觉引导图)——反馈不错。以下贴图都是脱敏后的简版现场有十几位…

作者头像 李华
网站建设 2026/4/18 7:05:18

解决350兆公安PDT集群信号覆盖问题

350兆公安PDT集群信号覆盖背景PDT集群通信系统是以话音为主的无线指挥通信系统,是目前指挥调度、救灾抢险、交通管理、社会治安、重大保卫活动以及日常警务必不可少的重要无线通信手段。国内PDT建设主要集中为基站进行大范围的覆盖以及公安消防等保卫单位内部保障信…

作者头像 李华