news 2026/11/6 0:12: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/11/4 9:36:43

年度福利:如何申请真正可用的一年期免费SSL证书?

一、核心申请渠道(支持一年期)JoySSL(政务/教育类首选)特点:国内CA服务商,提供单域名/通配符免费一年期证书,支持无限续签,兼容主流浏览器。申请步骤:访问 JoySSL官网 &a…

作者头像 李华
网站建设 2026/11/5 9:22:07

Qwen3-VL-30B 4bit量化版发布:单卡部署降本75%

Qwen3-VL-30B 4bit量化版发布:单卡部署降本75% 在自动驾驶系统里,摄像头捕捉到施工围挡遮挡了右转车道——但导航指令还没更新。这时候,AI能不能结合画面和文本语义判断:“前方无法右转,建议提前变道”? …

作者头像 李华
网站建设 2026/11/5 20:09:10

飞腾D3000安装debian12后无法加载RTL8852BE驱动的问题处理

这个 RTL8852BE 在UOS V20 4.19内核或者debian13 6.12内核下面都可以正常驱动但是这个debian12的6.1内核就驱动不了我也找了很多方案,找代码进行编译,最终它应该是合并到了rtl89,但是我编译安装了以后依然无法使用,能看到模块加载了&#xff…

作者头像 李华
网站建设 2026/11/4 12:08:18

LobeChat能否实现语音指令控制?免动手操作场景探索

LobeChat能否实现语音指令控制?免动手操作场景探索 在驾驶途中想查询天气,双手却握着方向盘;在厨房忙着切菜,却记不清菜谱步骤;或是家中长辈不擅长打字,只能对着智能设备干瞪眼——这些日常困境背后&#x…

作者头像 李华
网站建设 2026/11/4 3:15:42

LobeChat能否推荐电影?个性化娱乐顾问

LobeChat能否推荐电影?个性化娱乐顾问 在流媒体平台内容爆炸的今天,用户面对成千上万部影片时常常陷入“选择困难”——不是没有好片,而是不知道哪一部真正适合自己当下的心情和场景。传统的推荐系统依赖算法标签匹配,往往给出千篇…

作者头像 李华
网站建设 2026/11/4 22:52:51

docker 搭建 grafana+prometheus 监控主机资源之node_exporter

服务基本信息 服务 作用 端口(默认) Prometheus 普罗米修斯的主服务器 9090 Node_Exporter 负责收集Host硬件信息和操作系统信息 9100 MySqld_Exporter 负责收集mysql数据信息收集 9104 Cadvisor 负责收集Host上运行的docker…

作者头像 李华