news 2026/4/23 1:45:59

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/17 4:06:54

Qwen3-VL-8B微调实战:轻量多模态模型定制指南

Qwen3-VL-8B微调实战:轻量多模态模型定制指南 你有没有遇到过这样的场景? 客服系统里,用户上传一张模糊的电器说明书截图,问:“这个红圈里的按钮是干嘛用的?” 电商平台中,买家发来一张商品实拍…

作者头像 李华
网站建设 2026/4/14 0:55:39

人工智能之数学基础 线性代数:第四章 矩阵分解

人工智能之数学基础 线性代数 第四章 矩阵分解 文章目录人工智能之数学基础 线性代数前言一、为什么需要矩阵分解?二、1. 奇异值分解(Singular Value Decomposition, SVD)✅ 定义🌐 几何意义🔧 应用场景💻…

作者头像 李华
网站建设 2026/4/13 15:36:55

ABAQUS混凝土细观3D模型-含界面过渡区的多面体骨料密堆积

混凝土细观结构对其宏观力学性能具有决定性影响。界面过渡区(ITZ)作为骨料与水泥基体间的薄弱相,显著影响混凝土的力学行为与耐久性。在ABAQUS中构建含界面过渡区的多面体骨料密堆积3D模型,能够真实反映混凝土细观非均质特性&…

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

旅行记录应用全文搜索 - Cordova OpenHarmony 混合开发实战

欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。 📌 概述 全文搜索功能允许用户通过关键词快速查找旅行记录。搜索功能支持在旅行的多个字段中进行搜索,如目的地、描述、标签等。全文搜索提供了快速访问特定旅行的便利。…

作者头像 李华
网站建设 2026/4/23 11:20:38

Qwen3-VL-8B本地部署与多模态应用实战

Qwen3-VL-8B本地部署与多模态应用实战 你有没有遇到过这样的场景?客服系统收到一张用户上传的产品故障图,却只能回复“请描述问题”;电商平台每天涌入成千上万张商品截图,却要靠人工逐个核对信息;内容审核平台面对图文…

作者头像 李华