RAG 的优化进阶与引入 Reranker

news2025/1/24 11:30:24

引言

在简单的 RAG 系统中,通过结合检索和生成技术,已经可以显著提升了对复杂查询的响应质量。Reranker 作为 RAG 系统中一个关键的进阶组件,通过对原 RAG 中检索到的内容进行重新组织,可以进一步提高系统的准确性。

本文将深入探讨 RAG 系统的优化方式,其中会着重介绍 Reranker 技术的基本工作原理、评估方法、优点与局限以及在 RAG 系统中的应用。

RAG 优化分析

RAG 系统的核心是检索Retrieval)与增强生产Augmentation & Generation),因此优化的方向可以从检索质量增强生产效果这两个方面入手。

请添加图片描述

检索质量

总体而言,RAG 系统的检索质量是局限于索引构建阶段向量索引算法的。其中索引构建阶段往往是既定的全局且粗粒度的方式,其优化层度将极大的决定 RAG 检索的精度和召回效果。常见的优化手段有添加滑动窗口数据清洗等(索引构建发生在 Retrieval 之前,此处将之归入 Pre-Retrieval 阶段)。

  • 滑动窗口:在将原始数据切分成数据块时,允许相邻数据块之间的首位各重叠部分,如要将"abcdef"切分成长度为 3 的块,可以允许 1 字符的重叠,那么滑动窗口的切分结果就是:[“abc”, “cde”, “ef”](不允许重叠的切分结果则是:[“abc”, “def”])。 这样可以一定层度保障数据块信息及其索引的完整性,从而提升召回率。
  • 数据清洗:清洗掉不相关的、过时的、不准确的、冗余的信息。

另一方面是向量索引算法方面的优化,对向量索引算法直接进行深入研究和优化往往是不划算的,我们只需要了解这些算法的特性,在不同的场景选择合适的算法及其用法,就能起到很好的优化效果。常见的优化方式是定制 Embedding Model采用动态 Embedding Model进行混合搜索等(此处向量索引算法对应了向量数据库对索引数据的存储和开放检索的能力,归入 Retrieval 阶段正好合适)。

  • 定制 Embedding Model:针对特定领域,使用领域相关的数据对 Embedding Model 进行微调,增强向量转换准度。
  • 动态 Embedding Model:基于 Transformer 架构的 Embedding Model,因为其注意力机制的存在,模型在将词转换为向量时,可以注意到词所处的上下文信息,从而动态的调整词准确的含义。
  • 混合搜索:同时使用关键词过滤和向量相似度搜索两种检索模式,其中关键词可以准确且“硬性的”排除一些不相关内容,而向量相似度搜索则基于对内容的“理解”去筛选最相关的内容,结合了两者优势。

增强生成效果

RAG 系统的增强生成是指将检索到的内容与原始提示整合成更优的提示,将此提示传给 LLM,令 LLM 生成的内容质量提升。这一步中“整合”的优劣,也将极大影响 LLM 最终生成结果的质量(整合实际发生在 Augmentation & Generation 之前,Retrivial 之后,因此可以将这一过程归入 Post-Retrivial 阶段)。

整合环节往往从提示与检索内容的相关性、连贯性、冗余度等方面进行优化,常用的方式是Prompt 压缩Reranking 等。

  • Prompt 压缩:与检索阶段的数据清洗类似,移除无关内容和冗余内容等,突出最相关内容。
  • Reranking:引入 Reranker 模型,增加知识检索范围,比如多路召回,然后对检索到的内容进行相关性排序和筛选,提升检索内容的相关性。

引入 Reranker

上文提到优化增强生产效果的方式有一种是引入 Reranker 模块。Reranker 在信息检索方面所扮演的角色以及产生的效果相当重要,关于 Reranker 的研究和落地也是一个不小的课题,因此这里有必要进一步探索一下。

Reranker 实现方式

在 RAG 系统中,Reranker 模块对检索到的内容与原始提示进行相关度评估,并给出其排序的结果,可以将知识检索范围设置成多路,如此便可以更广泛、更精细地把控最终检索到的内容,从而提高了 RAG 系统的性能。

Reranker 模块可以直接是一个基于加权得分算法的统计方法,也可以是用深度学习模型训练得到端到端(提示和检索内容到得分)的模型。

  • 统计方法:将多路召回的相识度按照一定的权重计算得分,这种方式的很明确,延迟影响也很小。
  • 深度学习模型:神经网络可以很好的分析输入之间语义的相关性,并以得分的形式直接输出,这种方式一定程度上是直接基于语义理解得出的最相关性,具有“柔性”的优点,而且不受多路召回中内容原始相对位置的影响。

Reranker 性能评估

Reranker 的性能通常通过命中率平均倒数排名这两个指标进行评估。

  • 命中率(Hit Rate):检索到的文档中找到正确答案的查询所占的比例。
  • 平均倒数排名(Mean Reciprocal Rank, MRR):所有查询中正确答案排名的倒数的平均值。如果第一个相关文档就是搜索结果的第一位,那么倒数就是 1;如果是第二位,倒数就是 1/2,以此类推。

Hit Rate 和 MRR 也是 Embedding Model 的评估指标,我们可以在不使用 Reranker 的场景下评估 Embedding Model 的这两个性能值,然后再适配不同的 Reranker 模型进行整体性能评估,最终找到综合得分最好的 Embedding + Reranker 组合。

优点与局限性

  1. Reranker 的优点
  • 提高精度:Reranker 通过对检索结果重新排序,可以显著提高最终检索结果的准确性。
  • 灵活性:适用于单路召回和多路召回场景,能够链接各种类型的查询和知识库类型。
  • 减少幻觉:通过提供更准确的上下文减少生成模型产生幻觉的风险。
  • 实时应用:在 RAG 系统中,Reranker 的影响是实时的,它可以作为一个独立模块进行评估和优化。
  1. Reranker 的局限性
  • 增加计算成本:Reranker 的计算成本较高,尤其是基于深度学习模型的计算。
  • 增加系统延时:Reranker 的引入会增加系统的响应时间,尤其是使用深度学习模型时。
  • 增加系统复杂性:集成 Reranker 需要复杂的系统设计支持,并需要持续维护 Reranker 模块。
  • 引入数据隐私和安全风险:Reranker 可能接收到敏感数据。

在对精度和准确性要求较高的场景下,Reranker 的引入是不错的选择;反之,在对响应速度和成本控制要求较高的场景下,需要对 Reranker 吃保守态度,可以优先考虑基于统计方法的 Reranker。

应用场景

RAG 系统通过 Reranker 实现了对检索结果的优化,提升了生成模型的输入质量。在 RAG 系统中,Reranker 的应用包括但不限于问答系统、内容创作、自动摘要和搜索等场景。

  • 问答系统:Reranker 帮助系统从大量文档中检索并重排答案,提供更加准确的问题回答。
  • 内容创作:Reranker 通过检索和重排相关信息,为创作者提供灵感和素材。
  • 自动生成摘要:Reranker 在自动摘要的任务中对文档的关键部分进行重排,以生成更加精炼和准确的摘要。

结论

RAG 的优化可以从检索质量和增强生成效果两个方面入手,其中 Reranker 作为 RAG 系统的重要组成部分,通过对检索结果的重新排序,可以显著提高最终检索结果的准确性。

Reranker 的优点在于提高精度、灵活性、减少幻觉和实时应用,但也存在增加计算成本、增加系统延时、增加系统复杂性和引入数据隐私和安全性等局限性。

Reranker 是高精度要求场景下的优选方案,但在对响应速度和成本控制要求较高的场景下,需要对 Reranker 保持保守态度。

Reranker 在问答系统、内容创作、自动摘要和搜索等场景中有着广泛的应用前景。


  • 上一篇:检索增强生成(RAG):智能内容生成的新纪元
  • 专栏:「机器学习」 | 「数智通识」

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

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

相关文章

vmware虚拟机linux服务器的IP需要重启才能生效问题

vmware虚拟机linux服务器的IP需要重启才能生效问题 问题说明处理办法关闭&禁用网络管理 再次重启linux服务器,IP显示正常 问题说明 用vmware虚拟的linux服务器,配置了静态IP,但是每次重启liunx,IP都不是设置的静态IP&#xf…

国外教育人工智能发展与应用

在全球化与信息化交织的时代背景下,人工智能正迅速推动教育发生颠覆性变革。从大洋彼岸到东方之滨,世界主要国家和组织正采取相关行动和策略,深度挖掘和释放教育AI的潜能。本文从政策支持、教育应用两个方面,聚焦“教育人工智能”…

centos 安装nacos

nacos官网下载安装包(安装nacos之前,先下载安装好jdk) 概览 | Nacos 官网 2.下载好nacos压缩包之后,上传到linux目录中(在/opt/目录下建好一个文件夹) 将nacos解压 uzip nacos-server-1.4.7.zip 进入naco…

【STM32系统】基于STM32设计的按键PWM控制舵机窗帘柜子门禁家居等控制系统——文末资料下载

演示 摘要 随着智能家居技术的不断发展,舵机在自动化家居设备中的应用变得越来越广泛。本文设计并实现了一种基于STM32单片机的按键PWM控制舵机系统。通过按键可以精确控制舵机角度,实现对窗帘、柜子、门禁等家居设备的智能化控制。系统采用STM32F10x系…

C# Unity 面向对象补全计划 七大原则 之 单一职责

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正 本系列作为七大原则和设计模式的进阶知识,看不懂没关系 1.单一职责原则(SRP) 单一职责原则(Single Responsibility P…

iPhone怎么大批量删除照片:释放你的存储空间

随着iPhone相机质量的提升,我们越来越倾向于使用手机捕捉生活中的每一个瞬间。不久后,我们就会发现手机内存充满了成千上万的照片,这不仅占用了大量的存储空间,也让照片的管理变得越来越困难。对于需要释放空间的用户来说&#xf…

谷粒商城实战笔记-125-全文检索-ElasticSearch-整合-SpringBoot整合high-level-client

文章目录 一,技术选型1. 通过 TCP 连接(9300 端口)2. 通过 HTTP 连接(9200 端口)3.最终选择 二,SpringBoot整合Elasticsearch-Rest-High-Level-Client1,新增模块gulimall-search1,添…

基于python旅游推荐系统(源码+论文+部署讲解等)

博主介绍:✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍:我是程序员阿龙&#xff…

【Hadoop-驯化】一文学会hadoop访问hdfs中常用命令使用技巧

【Hadoop-驯化】一文学会hadoop访问hdfs中常用命令使用技巧 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 免费获取相关内容文档关注&am…

MockingBird - 实时语音克隆 中文/普通话

文章目录 一、关于 MockingBird特性 二、安装1、通用配置2、M1芯片Mac环境配置(Inference Time)2.1 安装PyQt52.2 安装pyworld和ctc-segmentation2.3 安装其他依赖2.4 运行 三、准备预训练模型1、使用数据集自己训练encoder模型 (可选)2、使用数据集自己训练合成器模…

41缺失的第一个正数【力扣】【C++】

题目描述 题目链接 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,…

一篇文章让你搞懂原码,反码,补码!

目录 1.机器数和机器数真值 1.1机器数 1.2机器数的真值 2.原码,反码,补码的计算方法 2.1原码 2.2反码 2.3补码 3.为什么要使用反码和补码? 3.1原码不能让符号位参与运算的问题: 3.2为了解决原码作减法,引入…

【C语言】算法:二分查找

当我们想在一个有序的序列里面查找一个数字的时候&#xff0c;通常会想到使用循环遍历&#xff0c;也就是下面这种方法&#xff1a; 比如我们想在下面的数组里面找到7&#xff1a; int main() {int num 7;int arr[10] { 1,2,3,4,5,6,7,8,9,10 };for (int i 0; i < size…

在亚马逊云科技AWS上利用ElasticSearch和RAG搭建个性化推荐系统

简介&#xff1a; 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。 本次介绍用当下热门的RAG和大语言模型&#xf…

ThreadLocal源码分析

1.前言 1.1 ThreadLocal基本原理 ThreadLocal 是 Java 中的一个非常有用的类&#xff0c;它提供了一种线程局部变量&#xff0c;即每个线程都可以访问到自己独立初始化过的变量副本&#xff0c;这个变量对其他线程是不可见的。最常见的用法就是用户请求携带用户ID请求某个接口…

机器学习 第9章-聚类

机器学习 第9章-聚类 9.1 聚类任务 在“无监督学习”(unsupervised learning)中&#xff0c;训练样本的标记信息是未知的&#xff0c;目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律&#xff0c;为进一步的数据分析提供基础。此类学习任务中研究最多、应用最广…

【Git】如何优雅地使用Git中的tag来管理项目版本

目录 tagtag 和 branch区别操作命令打tag&#xff0c;当前分支标记tag提交到远程服务器删除本地tag删除远程tag切换到特定的tag查看所有tag查看标签详细信息 好书推荐 tag Git中的tag&#xff08;标签&#xff09;用于给项目在特定时间点&#xff08;某个版本发布&#xff09;…

周鸿祎回应将成三六零第一大股东:会和公司一起走下去

在数字化浪潮席卷全球的今天&#xff0c;网络安全已成为国家安全的重要组成部分。三六零&#xff0c;作为国内网络安全领域的佼佼者&#xff0c;其每一步动态都牵动着业界的神经。近日&#xff0c;随着公司控股股东天津奇信志成的解散清算&#xff0c;周鸿祎的持股比例上升&…

【数据泄露】据称一名威胁行为者正在出售某个加密货币交易平台数据库

该威胁行为者表示&#xff1a; “你好&#xff0c; 我想出售一个加密货币交易平台的数据库 (.csv)。该平台很活跃&#xff0c;并且对实际使用它的用户来说很合法。 行数&#xff1a;150,000 价格&#xff1a;1,500 美元” 泄露数据&#xff1a;user_id、user_name、user_ro…

【Java】Java学生信息管理系统(源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…