Reranker技术

news2024/9/20 1:13:52

文章目录

  • Reranker技术
    • 0. 什么是RAG
    • 1. 什么是Reranker?
    • 2. Reranker在RAG技术中的应用
    • 3.使用 Reranker 的优缺点
    • 4.总结
    • 参考:知乎

Reranker技术

0. 什么是RAG

基础 RAG 的操作流程大致如下:首先,你需要将文本切分成小段,然后利用某种 Transformer 编码器模型,将这些文本段转换成向量形式。接着,把所有向量汇集到一个索引里。最后,你需要为大语言模型(Large Language Model, LLM)制定一个提示词,这个提示词会指导模型根据我们在搜索步骤中找到的上下文信息来回答用户的查询。

在实际运行过程中,我们会用同一个编码器模型把用户的查询转换成向量,然后根据这个向量在索引中进行搜索。系统会找到最相关的前k个结果,从数据库中提取相应的文本段,然后把这些文本段作为上下文信息输入到大语言模型的提示词中。

在这里插入图片描述

1. 什么是Reranker?

Reranker 是信息检索(IR)生态系统中的一个重要组成部分,用于评估搜索结果,并进行重新排序,从而提升查询结果相关性。在 RAG 应用中,主要在拿到向量查询(ANN)的结果后使用 Reranker,能够更有效地确定文档和查询之间的语义相关性,更精细地对结果重排,最终提高搜索质量。

目前,Reranker 类型主要有两种——基于统计和基于深度学习模型的 Reranker:

基于统计的 Reranker 会汇总多个来源的候选结果列表,使用多路召回的加权得分或倒数排名融合(RRF)算法来为所有结果重新算分,统一将候选结果重排。这种类型的 Reranker 的优势是计算不复杂,效率高,因此广泛用于对延迟较敏感的传统搜索系统中。

基于深度学习模型的 Reranker,通常被称为 Cross-encoder Reranker。由于深度学习的特性,一些经过特殊训练的神经网络可以非常好地分析问题和文档之间的相关性。这类 Reranker 可以为问题和文档之间的语义的相似度进行打分。因为打分一般只取决于问题和文档的文本内容,不取决于文档在召回结果中的打分或者相对位置,这种 Reranker 既适用于单路召回也适用于多路召回。

2. Reranker在RAG技术中的应用

将 Reranker 整合到 RAG 应用中可以显著提高生成答案的精确度,因为 Reranker 能够在单路或多路的召回结果中挑选出和问题最接近的文档。此外,扩大检索结果的丰富度(例如多路召回)配合精细化筛选最相关结果(Reranker)还能进一步提升最终结果质量。使用 Reranker 可以排除掉第一层召回中和问题关系不大的内容,将输入给大模型的上下文范围进一步缩小到最相关的一小部分文档中。通过缩短上下文, LLM 能够更“关注”上下文中的所有内容,避免忽略重点内容,还能节省推理成本。
在这里插入图片描述

3.使用 Reranker 的优缺点

  • Reranker 会显著增加搜索延迟

    未使用 Reranker 的情况下,RAG 应用只需执行低延迟的向量近似最近邻 (ANN) 搜索,从而获取 Top-K 相关文档。但如果增加了 Reranker,尤其是 Cross-encoder Reranker 后,RAG 应用需要通过深度学习模型处理所有向量检索返回的文档,这会导致延时显著增加。相比于向量检索的毫秒级延迟,取决于模型大小和硬件性能,延迟可能提高到几百毫秒甚至到几秒!

  • Reranker 会大幅度提高计算成本

    在基础架构的 RAG 中,向量检索虽然需要预先使用深度学习模型处理文档,但这一较为复杂的计算被巧妙设计在离线状态下进行。通过离线索引(Embedding模型推理),每次在线查询过程只需要付出极低计算成本的向量检索即可。与之相反,使用 Reranker 会大大增加每次在线查询的计算成本。这是因为重排过程需要对每个候选文档进行高成本的模型推理,不同于前者可以每次查询都复用离线索引的结果,使用 Reranker 需要每次在线查询都进行推理,结果无法复用,带来重复的开销。这对于网页搜索、电商搜索等高流量的信息检索系统非常不适用。

4.总结

相比于单独使用向量检索,搭配 Reranker 可以通过对第一层检索结果的进一步精细化排序提高检索增强生成(RAG)和搜索系统中答案的准确性和相关性。但是使用 Reranker 会增加延时和提高使用成本,因此不适合高频高并发的应用。考虑是否使用 Reranker 时,需要在回答准确性、响应速度、使用成本间做出权衡。

参考:知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《深度RAG系列》 LLM 为什么选择了RAG

2023年是AIGC(Artificial Intelligence Generated Content)元年,这一年见证了人工智能生成内容领域的巨大飞跃,特别是大模型的爆发,它们在自然语言处理、图像生成、音频处理等多个领域展现出了惊人的能力。 这些预训练…

UVC驱动分析(一)

UVC驱动分析 UVC驱动简介Linux video框架分层UVC驱动注册UVC驱动注册入口函数UVC设备探测初始化UVC描述符解析V4L2设备注册UVC控制参数初始化UVC video驱动注册UVC 状态初始化 UVC驱动简介 UVC全称为USB Video Class,即:USB视频类,是一种为U…

Vue组件库移动端预览实现原理

引言 大家如果使用过移动端组件库(比如:Vant),会发现在网站右侧有一个手机端的预览效果。 而且这个手机端预览的内容和外面的组件代码演示是同步的,切换组件的时候,移动端预览的内容也会发生相应的变化。 …

基于python的百度迁徙迁入、迁出数据分析(四)

这篇文章是对上篇文章的可获取数据的时间区间的修正,依然通过开发者模式找寻相关数据源,我直接把数据url贴在这里,可以发现里面包含了相对明面上看不到的数据包括,行政区id、春运迁徙数据等:qianxi.cdn.bcebos.com/app…

LYT-Net——轻量级网络低光照条件图像修复模型推理部署(C++/Python)

1.环境安装 conda create -n LYT_Torch python3.9 -y conda activate LYT_Torchconda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidiapip install matplotlib scikit-learn scikit-image opencv-python yacs joblib natsort h5py tqdm tensor…

Conformal low power-7.运行Conformal Low Power 1801流程

要获取有关原生1801流程的最新信息(例如功能、指南、常见问题解答和dofile脚本),请使用SET WEB_INTERFACE ON命令启动Web界面。 左手边列出了所有的Conformal产品。还有一个名为“Sample Dofiles”的部分,提供了在不同场景下运行C…

第一个Python Web程序

1、离线安装Django 由于Python是3.7版本,Django选择2.2.4版本,并且中间需要安装依赖包。全部安装包如下: 打开Anaconda Prompt,先进入Python3.7环境,然后依次安装各个包: 至此,Django离线安装成功。 2、编写第一个Django程序 2.1 创建Django项目 创建项目welcome时…

C#初级——继承

继承 继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类(父类&#xff0…

(自适应手机端)行业协会机构网站模板

(自适应手机端)行业协会机构网站模板PbootCMS内核开发的网站模板,该模板适用于行业协会网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可;自适应手机端,同一个后台,数据即时同步&#…

git的配置使用

第三周 Tursday 早 git日志的安装使用 [rootweb ~]# yum -y install git.x86_64 //安装软件包 [rootweb ~]# rpm -ql git //查看git的包 ​ [rootweb ~]# mkdir /yy000 //创建新目录 [rootweb ~]# cd /yy000/ [rootweb yy000]# git init //将当前目录做为仓库…

基于SpringBoot+Vue的娱乐代理售票系统(带1w+文档)

基于SpringBootVue的娱乐代理售票系统(带1w文档) 基于SpringBootVue的娱乐代理售票系统(带1w文档) 休闲娱乐代理售票系统的开发运用java技术,MIS的总体思想,以及MYSQL等技术的支持下共同完成了该系统的开发,实现了休闲娱乐代理售票管理的信息…

Why decoder-only? LLM架构的演化之路

如何根据大模型架构进行选型 ©作者|Zhongmei 来源|神州问学 引言 本文想为大型语言模型(LLMs)及其下游自然语言处理(NLP)任务的实践者和用户提供一份全面且实用的指南。将从模型架构的角度出发,对比不同架构的…

多线程上下文切换:详解与优化

多线程上下文切换:详解与优化 一、什么是多线程上下文切换?二、对性能的影响2.1 优点2.2 缺点 三、优化策略 💖The Begin💖点点关注,收藏不迷路💖 一、什么是多线程上下文切换? 多线程上下文切…

在 Vim 编辑器中,如果某个单词被意外地高亮显示,使用:noh可以取消高亮显示

文章目录 1、问题出现的背景2、解决办法 1、问题出现的背景 配置镜像加速器,修改 /etc/docker/daemon.json 目录下的文件,不小心高亮显示https,产生问题的步骤是,我先是按esc键退出vim的编辑模式,然后在https的前面按…

Android经典面试题之Kotlin中 if 和 let的区别

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 在Kotlin中,if和let虽然有时候用来处理相似的情景,但它们实际上是用于不同的场景并具有不同的性质。下面我们来详细对比…

K-近邻和神经网络

K-近邻(K-NN, K-Nearest Neighbors) 原理 K-近邻(K-NN)是一种非参数分类和回归算法。K-NN 的主要思想是根据距离度量(如欧氏距离)找到训练数据集中与待预测样本最近的 K 个样本,并根据这 K 个…

安科瑞ASJ系列智能剩余电流继电器介绍

产品概述: 安科瑞ASJ系列智能剩余电流继电器是一种重要的电气安全保护设备,‌主要用于交流50Hz、‌额定电压400V及以下的TT和TN系统配电线路中。‌该系列继电器的主要功能包括对电气线路进行接地故障保护,‌以防止接地故障电流引起的设备损坏…

C语言家教记录(一)

C语言家教记录(一) 导语C语言简介特点优点缺点 Codeblocks安装和使用简单程序结构变量(常量)和赋值类型声明常量赋值标识符 基本运算输入输出printf基本格式转义序列 scanf转换说明 示例程序总结和复习 导语 本次授课内容如下&am…

一句JS代码,实现随机颜色的生成

今天我们只用 一句JS代码,实现随机颜色的生成,首先看一下效果: 每次刷新浏览器背景颜色都不一样 实现此效果的JS函数 : let randomColor () > ...: 定义一个箭头函数randomColor,用于生成一个随机颜色。 Math.ra…