【机器学习&深度学习】向量模型与重排序模型:RAG 的双引擎解析

目录

前言

一、什么是向量模型

[向量模型(Vector Model)](#向量模型(Vector Model))

二、什么是重排序模型

[重排序模型(Rerank Model)](#重排序模型(Rerank Model))

三、向量模型与重排序模型对比表

四、向量模型与重排序模型在RAG中的应用流程

[4.1 简化流程](#4.1 简化流程)

[4.2 RAG总体运行流程](#4.2 RAG总体运行流程)

五、应用场景

[5.1 法律问答系统](#5.1 法律问答系统)

[5.2 医疗知识检索](#5.2 医疗知识检索)

[5.3 金融知识库](#5.3 金融知识库)

六、RAG检索阶段核心平衡点

[6.1 性能](#6.1 性能)

[6.2 精度](#6.2 精度)

[6.3 平衡点](#6.3 平衡点)

[七、RAG 中的重排序模型推荐](#七、RAG 中的重排序模型推荐)

[7.1 中文 & 英文场景模型推荐](#7.1 中文 & 英文场景模型推荐)

[7.2 LlamaIndex 中的重排序组件](#7.2 LlamaIndex 中的重排序组件)

[7.3 小结](#7.3 小结)

总结



前言

在检索增强生成(RAG, Retrieval-Augmented Generation)系统中,信息检索的质量直接决定了最终答案的准确性与可靠性。其中,向量模型重排序模型扮演着两类互补的角色:一个负责"广撒网",另一个负责"精挑细选"。本文将深入解析它们的区别、联系,以及在 RAG 流程中的协同工作方式。


一、什么是向量模型

向量模型(Vector Model)

  • 核心作用:用来把文本(问题、文档)转换成向量,用于计算相似度。

  • 代表方法:BERT embedding、Sentence-BERT、m3e、text-embedding-ada 等。

  • 典型流程

    1. 用户 query → 向量化。

    2. 文档库里的文档 → 向量化。

    3. 用相似度(余弦相似度、内积)计算 query 与文档的相关性。

    4. 取出 Top-k(比如 20 条)候选文档。

  • 特点

    • 高效(向量检索能快速在大规模语料中找到候选)。

    • 召回率高,但不一定精准。

    • 更多是 粗排(初筛)

👉 举例:

输入 query = "加班工资怎么算",向量模型可能返回:

  • 文档 A(加班工资法律条款)

  • 文档 B(最低工资规定)

  • 文档 C(带薪年假制度)

    其中 B、C 可能相关性弱,但因为是高维语义空间的"近邻",还是被召回了。


二、什么是重排序模型

重排序模型(Rerank Model)

  • 核心作用 :对候选文档进行 更精细的相关性判断与排序

  • 代表方法:BERT cross-encoder、monoT5、ColBERT(交互式)、各种 reranker。

  • 典型流程

    1. 向量模型取出 top-20 候选。

    2. 重排序模型逐个输入 (query, 文档) 对。

    3. 模型输出一个相关性分数。

    4. 按分数高低重新排序,取前 N 条(比如 top-5)。

  • 特点

    • 计算量大(因为需要逐对计算)。

    • 精准度高(能更好判断"语义相关" vs "语义相似但无关")。

    • 属于 精排(精筛)

👉 举例:

上面 query = "加班工资怎么算" 的候选文档,重排序模型会排出:

  1. 文档 A(加班工资法律条款) ✅

  2. 文档 B(最低工资规定)

  3. 文档 C(带薪年假制度)

这样就保证用户看到的前几条是最相关的。


三、向量模型与重排序模型对比表

方面 向量模型(Vector Model) 重排序模型(Rerank Model)
主要作用 初筛、召回候选文档 精排、精确排序
输入 文本 → 向量 (query, 文档) 成对输入
计算方式 相似度(余弦、点积) 模型预测相关性分数
效率 高,能处理海量数据 低,通常只在候选集上用
精准度 中等,可能召回噪声 高,能剔除伪相关
应用位置 检索第一步 检索后处理

一句话总结:

  • 向量模型 是"广撒网",帮你找潜在相关文档。

  • 重排序模型 是"精挑细选",帮你从候选里挑出最相关的。


  • 向量模型:保证"不漏"。

  • 重排序模型:保证"准确"。


四、向量模型与重排序模型在RAG中的应用流程

4.1 简化流程

复制代码
                            用户Query
                                │
                                ▼
                            Query向量化 
                                │
                                ▼
                       向量检索(粗排,Top-K)
                                │
                                ▼
                     (可选)重排序(精排,Top-N)
                                │
                                ▼
                        相关文档拼接成上下文
                                │
                                ▼
                         LLM生成最终回答

4.2 RAG总体运行流程

1. 数据准备阶段(离线)

  • 文档预处理:对原始资料进行清洗、切分(chunking)。

  • 向量化存储 :用 向量模型(embedding model) 将每个文档块转成向量,并存入向量数据库(如 Faiss、Milvus、Chroma)。

2. 在线问答流程

当用户提出一个问题(Query)时,RAG大致有以下步骤:

(1)Query 向量化

  • 输入:用户问题(自然语言)。

  • 处理:用同一个向量模型(embedding)将 query 转换成向量。

(2)向量检索(粗排)

  • 在向量数据库里计算 query 向量与文档向量的相似度。

  • 取出 top-K(比如 20 条)候选文档。

  • 特点:快速,确保不漏掉相关内容,但可能有噪声。

(3)重排序(精排,可选)

  • 使用 重排序模型(reranker,如 cross-encoder BERT/T5),逐个对 (query, 文档) 进行相关性打分。

  • 重新排序候选文档,通常只保留 top-N(比如 3~5 条)。

  • 特点:更精准,减少噪声。

(4)上下文拼接

  • 把最终选出的文档内容拼接成一个"上下文窗口"。

  • 形成提示词(Prompt):

    复制代码
    用户问题:xxx
    检索到的相关文档:doc1, doc2, doc3 ...
    请基于以上文档回答。

(5)生成回答

  • 把 Prompt 输入到大语言模型(LLM)。

  • LLM 利用检索到的知识生成答案。


五、应用场景

向量模型与重排序模型的组合已经在多个行业场景中落地:

5.1 法律问答系统

  • 向量模型快速召回相关法规条款;

  • 重排序模型确保最终结果严格对齐用户问题,避免出现相似但不适用的条款。

在法律问答中,用户可能会提出模糊问题,例如:"辞退员工需要补偿吗?"

  • 向量模型 会召回多类候选:劳动合同法、劳动仲裁案例、劳动补偿条款等。

  • 重排序模型 则会精准识别出与"辞退补偿"直接相关的法律条款(如《劳动合同法》第四十七条),过滤掉不直接相关的内容。

  • 结果:用户得到基于真实法规的回答,而不是模糊的解释。


5.2 医疗知识检索

  • 向量检索能快速找到病症相关文档;

  • 重排序模型帮助精准匹配症状与治疗方法,减少误导性信息。

患者提问:"糖尿病人可以吃什么水果?"

  • 向量模型 可能返回:糖尿病饮食指南、膳食均衡建议、不同水果的营养成分等。

  • 重排序模型 会优先保留与"糖尿病 + 水果摄入"最直接相关的医学文献,而不是泛泛的营养知识。

  • 结果:系统给出的答案更贴合患者需求,并避免产生误导。


5.3 金融知识库

  • 向量模型召回各类政策、财务报告;

  • 重排序模型确保匹配到的是用户关心的具体细节,而不是模糊的相似文本。

分析师提问:"最新的存款准备金率是多少?"

  • 向量模型 会检索到央行公告、历史政策解读、经济研究报告。

  • 重排序模型 则会将"最新公告中的存款准备金率数值"排在最前,而不是泛化的背景信息。

  • 结果:用户快速获取到最关键的数值型信息。

这些场景的共性是:既需要 覆盖广度 (不漏掉关键信息),也需要 保证深度(答案足够精准),这正是向量模型与重排序模型协同的优势所在。


六、RAG检索阶段核心平衡点

RAG 的检索阶段 ,Embedding + 重排序模型的选择和组合,核心平衡点确实就是 性能(速度、算力消耗)精度(检索结果的相关性、排序质量)

具体来说:

6.1 性能

  • Embedding 模型:一般计算量相对小,可以快速批量生成向量,适合大规模检索。

  • Reranker 模型:需要对候选 (Query, 文档) 两两计算,成本远高于 embedding。

  • 如果追求高性能,就要减少候选数量,或选用轻量级的 reranker。

6.2 精度

  • Embedding 粗排 → 能找到大体相关的候选,但结果里可能夹杂噪声。

  • Reranker 精排 → 让真正相关的内容排在前面,提高最终回答质量。

  • 模型越大、训练越充分,精度通常越高。

6.3 平衡点

  • 大模型 Reranker:精度好 → 适合离线处理、结果要求极高的场景。

  • 小模型 Reranker:速度快 → 适合在线问答、用户实时交互的场景。

  • 常见做法:Embedding(快速粗排) + 中等规模 Reranker(兼顾性能与精度)。


七、RAG 中的重排序模型推荐

7.1 中文 & 英文场景模型推荐

在中英文双语场景下,北京智源(BAAI) 出品的重排序模型表现很突出:

  • bge-reranker 系列(比如 BAAI/bge-reranker-largeBAAI/bge-reranker-base):

    • 针对中文和英文都有很好的适配能力;

    • 在开放域问答、法律、医疗、金融等检索任务上效果稳定;

    • 提供了不同规模的模型,方便按需权衡 精度 vs 性能

👉 一般推荐:

  • 在线问答bge-reranker-base(更快,适合低延迟场景)

  • 离线知识库构建 / 高精度任务bge-reranker-large(精度更高,适合对结果质量要求严格的应用)


7.2 LlamaIndex 中的重排序组件

LlamaIndex 里,可以通过不同的 Reranker 类来加载和使用这些模型:

🔹 SentenceTransformerRerank

  • 依赖 sentence-transformers 库;

  • 可加载很多 transformers / sentence-transformers 格式的模型;

  • 常用来快速接入 BAAI/bge-reranker-baseBAAI/bge-reranker-large

使用示例:

python 复制代码
from llama_index.postprocessor import SentenceTransformerRerank

reranker = SentenceTransformerRerank(
    model="BAAI/bge-reranker-base", 
    top_n=5
)

🔹 FlagEmbeddingReranker

  • 针对 HuggingFace 上的 FlagEmbedding / BGE 模型优化;

  • 对中文和英文的效果都很好;

  • 是推荐的加载 BAAI/bge-reranker 系列的组件。

使用示例:

python 复制代码
from llama_index.postprocessor import FlagEmbeddingReranker

reranker = FlagEmbeddingReranker(
    model="BAAI/bge-reranker-large", 
    top_n=5
)

7.3 小结

  • 推荐模型 :中文 & 英文 → BAAI/bge-reranker-base/large

  • 推荐组件(LlamaIndex)

    • 快速接入 → SentenceTransformerRerank

    • 专门优化 → FlagEmbeddingReranker

  • 选择逻辑

    • 在线、速度优先 → bge-reranker-base

    • 离线、高精度 → bge-reranker-large


总结

在RAG中:

  1. 向量模型 负责 召回候选文档(快速、覆盖广)。

  2. 重排序模型 负责 精确筛选文档(精确、噪声少)。

  3. LLM结合用户问题 + 文档上下文,生成最终答案。

RAG 的优势在于:

  1. 避免 LLM 直接"幻觉",提升回答可信度;

  2. 支持动态知识更新,只需更新数据库而无需重新训练模型;

  3. 能在效率与准确性之间灵活取舍。

可以说,RAG 已经成为企业级大模型应用落地的首选方案之一。

相关推荐
飞哥数智坊7 小时前
元宝AI:微信中帮我看阅兵的“朋友”
人工智能
lypzcgf8 小时前
Coze源码分析-工作空间-资源查询-后端源码
人工智能·后端·系统架构·开源·go
zl298 小时前
论文学习30:LViT: Language Meets Vision Transformerin Medical Image Segmentation
深度学习·学习·计算机视觉·transformer
海天一色y8 小时前
动手学深度学习
人工智能·深度学习
恒点虚拟仿真8 小时前
AI+虚拟仿真实践教学,照亮智慧能源教育之路
人工智能·ai·能源·虚拟仿真实验·人工智能+虚拟仿真·ai教学
fzy00858 小时前
教育项目管理工具新趋势:可视化与自动化如何提升效率?
大数据·人工智能·自动化
AI Echoes8 小时前
LangGraph 重要注意事项和常见问题
人工智能·python·langchain·agent
AIbase20249 小时前
GEO排名优化:AI如何重新定义搜索引擎的可见性规则?
人工智能·搜索引擎
hanniuniu139 小时前
F5发布后量子API安全解决方案,以AI驱动全面防护应对量子计算威胁
人工智能·安全·量子计算