当前位置: 首页 > article >正文

RAG检索系统的两大核心利器——Embedding模型和Rerank模型

在RAG系统中,有两个非常重要的模型一个是Embedding模型,另一个则是Rerank模型;这两个模型在RAG中扮演着重要角色。

Embedding模型的作用是把数据向量化,通过降维的方式,使得可以通过欧式距离,余弦函数等计算向量之间的相似度,以此来进行相似度检索。

而Rerank的作用是在Embedding检索的基础之上,进行更加准确的数据筛选;如果说Embedding模型进行的是一维筛选,那么Rerank模型就是从多个维度进行筛选。

Embedding模型和Rerank模型

在自然语言处理和信息检索系统中,Embedding模型Rerank模型是两类功能不同但常结合使用的技术。

Embedding和Rerank模型都是基于深度学习方式实现的神经网络模型,但由于其功能不同,因此其实现方式和训练方法也有一定的区别。

从使用的角度来看,Embedding一般用于数据向量化并快速检索,而Rerank模型是在快速检索的基础之上进行重排序,提升相似度。

但从技术实现的角度来说,两种模型使用的学习方式和架构是不一样的;原因就在于两个模型的实现目的和处理数据的方式。

它们的核心区别在于目标、应用阶段和技术实现。以下是详细对比:


1. 功能目标

维度Embedding模型Rerank模型
核心任务

将文本转化为低维向量,捕捉语义信息

对候选结果重新排序,提升相关性

输出形式

高维或低维向量(如768维向量)

候选列表的排序分数(如相关性得分)

关注点

文本的全局语义表示

候选结果与查询的细粒度匹配

示例
  • Embedding模型:将“如何训练神经网络?”转换为向量,用于检索相似问题。

  • Rerank模型:对初步检索的100个答案排序,将最相关的答案排到前3。


2. 应用阶段

维度Embedding模型Rerank模型
所处流程检索阶段

:快速生成候选集

精排阶段

:优化候选集的顺序

数据规模

处理海量数据(如百万级文档)

处理小规模候选集(如Top 100~1000)

性能要求

要求高效(毫秒级响应)

可接受较高延迟(需复杂计算)

典型场景
  • Embedding模型:用于搜索引擎的初步召回(如从10亿文档中筛选出Top 1000)。

  • Rerank模型:在推荐系统中对Top 100结果精细化排序,提升点击率。


3. 技术实现

维度Embedding模型Rerank模型
模型类型

无监督/自监督学习(如BERT、Sentence-BERT)

有监督学习(如Pairwise Ranking、ListNet)

输入输出

单文本输入 → 固定维度向量

查询+候选文本对 → 相关性分数

特征依赖

仅依赖文本本身的语义信息

可融合多特征(语义、点击率、时效性等)

模型举例
  • Embedding模型

    • 通用语义编码:BERT、RoBERTa

    • 专用场景:DPR(Dense Passage Retrieval)

  • Rerank模型

    • 传统方法:BM25 + 特征工程

    • 深度模型:ColBERT、Cross-Encoder

http://www.lryc.cn/news/2403938.html

相关文章:

  • CLion社区免费后,使用CLion开发STM32相关工具资源汇总与入门教程
  • 第21讲、Odoo 18 配置机制详解
  • LinkedList、Vector、Set
  • SQL 基础入门
  • GitHub 趋势日报 (2025年06月05日)
  • 基于Flask框架的前后端分离项目开发流程是怎样的?
  • Delphi SetFileSecurity 设置安全描述符
  • rec_pphgnetv2完整代码学习(二)
  • 【计算机网络】Linux下简单的TCP服务器(超详细)
  • go中的接口返回设计思想
  • 最新Spring Security实战教程(十七)企业级安全方案设计 - 多因素认证(MFA)实现
  • html+css+js趣味小游戏~Cookie Clicker放置休闲(附源码)
  • 宝塔面板安装nodejs后,通过node -v获取不到版本号,报错node: command not found
  • SDC命令详解:使用set_propagated_clock命令进行约束
  • win32相关(消息Hook)
  • vue3单独封装表单校验函数
  • mysql 页的理解和实际分析
  • 分享一道力扣
  • 青少年编程与数学 01-011 系统软件简介 06 Android操作系统
  • 构建 MCP 服务器:第 2 部分 — 使用资源模板扩展资源
  • 【算法设计与分析】实验——汽车加油问题, 删数问题(算法实现:代码,测试用例,结果分析,算法思路分析,总结)
  • Ubuntu2404 下搭建 Zephyr 开发环境
  • 现代C++特性(一):基本数据类型扩展
  • 【C++进阶篇】C++11新特性(下篇)
  • 全生命周期的智慧城市管理
  • echarts柱状图实现动态展示时报错
  • Redis故障转移
  • STM32学习笔记:定时器(TIM)原理与应用(详解篇)
  • JAVA获取ES连接并查询所有数据
  • 408第一季 - 数据结构 - 线性表