利用语义搜索和混合查询策略提升RAG系统的准确性

人工智能咨询培训老师叶梓 转载标明出处

在构建基于大模型(LLM)的生成式问答系统(Generative Q&A)时,检索增强生成(Retrieval-Augmented Generation, RAG)方法被广泛采用。RAG通过结合检索器(Retriever)和生成器(Generator)来实现,其中检索器负责从大量文档中提取最相关的信息,为语言模型提供上下文支持。然而,随着文档库规模的扩大,RAG的准确性面临挑战。IBM的研究人员提出了一种名为“Blended RAG”的新方法,通过利用语义搜索技术以及混合查询策略,显著提高了RAG的检索准确性,并在多个信息检索(IR)数据集上设立了新的基准。

方法

提升RAG系统的性能有三种不同的搜索策略。包括基于关键词的相似性搜索、基于密集向量的搜索,以及基于语义的稀疏编码器搜索。这些策略被整合到混合查询中,与传统的关键词匹配不同,语义搜索深入挖掘用户查询的细微差别,解读上下文和意图。

  1. BM25索引:BM25索引擅长利用全文搜索能力,并增强了模糊匹配技术,为更复杂的查询操作奠定了基础。

  2. 密集向量索引:构建了一个由句子转换器支持的密集向量索引。它通过文档和查询内容派生的向量表示来识别向量之间的接近程度。

  3. 稀疏编码器索引:稀疏编码器检索模型索引结合了语义理解和基于相似度的检索,以捕捉术语之间细微的关系,从而更真实地表示用户意图和文档的相关性。

研究的方法论是分阶段进行的,首先在BM25索引中进行基本的匹配查询。然后,研究者们升级到混合查询,这些查询结合了多个字段中的不同搜索技术,利用稀疏编码器基础索引中的多匹配查询。当文档库中查询文本的确切位置不确定时,这种方法非常有效,确保了全面的匹配检索。多匹配查询分为以下几类:

  • Cross Fields:针对多个字段的一致性。
  • Most Fields:通过不同视角在各个字段中寻找文本表示。
  • Best Fields:在单一字段内追求词的聚合。
  • Phrase Prefix:类似于Best Fields,但优先考虑短语而非关键词。

在完成初步的匹配查询之后,研究人员进一步整合了基于密集向量的方法(KNN)和稀疏编码器索引。针对每种索引技术,他们都设计了专门的混合查询策略。通过这种策略性的方法,研究人员充分利用了各种索引的优势,并集中力量提高RAG系统内部的检索精确度。为了深入理解每种查询方式的特点,他们计算了top-k检索准确度这一关键指标。

在众多可能的组合中,研究人员精心挑选了六种表现最佳的混合查询方法进行深入研究。这些查询方法在检索效率上表现最为出色,随后接受了严格的评估,以验证它们在RAG系统中检索组件的精确性。这六种混合查询不仅是检索器实验的成果展示,也代表了与不同索引类型相结合的最优查询策略。这些经过精挑细选的查询方法随后被应用到生成式问答系统中,目的是寻找能够最有效地为RAG生成器提供信息的最佳检索器。面对与不同索引类型结合后潜在的查询组合数量呈指数级增长的挑战,这一过程显得尤为重要。

构建一个高效的RAG系统是一项复杂且多面的任务,尤其是当处理的源数据集在内容和结构上都呈现出多样性和复杂性时。研究人员对众多混合查询方案进行了全面的评估,并细致地考察了它们在多个基准数据集上的表现,这些数据集包括自然问题(NQ)、TREC-COVID、斯坦福问答数据集(SqUAD)和HotPotQA等。

图1 展示了一个创新的设计框架,该框架专门用于创建混合检索器。其核心思想是融合语义搜索技术和多种混合查询技术。通过这种集成方法,研究者们能够有效地处理各种类型的查询,并针对广泛的文档库优化检索过程。这种优化旨在为大模型提供更精确、更相关的信息,以便它们能够生成更有深度和知识性的答案。

在这一设计中,语义搜索技术尤为重要,因为它能够理解查询的深层含义和上下文,而不仅仅是关键词的简单匹配。这样的技术使得检索系统能够返回更加相关和有用的结果,从而显著提升大模型在生成回答时的准确性和可靠性。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加下方微信或评论留言,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
 

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验与结果分析

研究者首先通过实验评估了检索器的性能,目的是找出最佳的混合检索器(索引 + 混合查询)组合。实验使用了top-10检索准确率作为评估标准,针对不同的基准数据集进行了评估。

  1. 在NQ数据集上的Top-10检索准确率:对于NQ数据集,实验分析显示,混合查询策略的性能优于其他方法,这归功于其有效利用多个数据字段的能力。图2展示了使用Sparse Encoder和Best Fields的混合查询方法达到了最高的检索准确率,达到了88.77%,这一结果超过了所有其他形式的有效性,为该数据集内的检索任务设立了新的基准。

  2. 在TREC-COVID数据集上的Top-10检索准确率:TREC-COVID数据集涵盖了从-1到2的相关性评分,其中-1表示不相关,2表示高度相关。初步评估针对的是相关性为1的文档,即部分相关的文档。图3的分析显示,基于向量的混合查询的性能超过了基于关键词的查询。特别是,利用Sparse Encoder和Best Fields的混合查询在所有索引类型中显示出最高的有效性,准确率达到了78%。

在对TREC-COVID数据集的相关性评分为2的文档进行评估后,这些文档与相关查询完全相关。图4用相关性评分为2的文档进一步证实了基于向量的混合查询的有效性,超过了传统的基于关键词的方法。值得注意的是,结合Sparse Encoder和Best Fields的混合查询显示出98%的top-10检索准确率,超过了所有其他形式。这表明,转向更细致的混合搜索方法,尤其是那些有效利用Best Fields的方法,可以显著提高信息检索系统内的检索结果。

在HotPotQA数据集上的Top-10检索准确率:HotPotQA数据集拥有超过500万份文档和7500个查询项的庞大语料库,由于计算需求,对全面评估构成了巨大挑战。因此,评估仅限于选定的混合查询子集。尽管存在这些限制,分析仍提供了富有洞见的数据,如图5所示,特别是那些使用Cross Fields和Best Fields搜索策略的混合查询表现出色。值得注意的是,结合Sparse EncodeR和Best Fields查询的混合查询在HotPotQA数据集上达到了最高的效率,为65.70%。

表II展示了使用NDCG@10评分(标准化折扣累积增益指标)对检索器进行基准测试的结果。在NQ数据集基准测试中,使用六种混合查询的NDCG@10得分为0.67,比当前基准得分0.633高出5.8%,该基准得分由monoT5-3B模型实现。所有基于语义搜索的混合查询均优于当前基准得分,表明这些混合查询是开发RAG管道的更佳候选。

在TREC-COVID数据集基准测试中,设计的混合查询套件明显超过了当前0.80 NDCG@10得分的基准,显示出它们对RAG管道的优越候选资格。图7展示了使用六种混合查询的NDCG@10结果。混合检索器实现了0.87的NDCG@10得分,比COCO-DR Large模型建立的基准得分0.804高出8.2%。

研究者利用检索器评估实验的结果,进一步评估了RAG管道。为了避免大模型的大小或类型的影响,所有实验都使用FLAN-T5-XXL进行。

图8展示了跨数据集的Top-5检索准确率。

SqUAD是用于RAG系统或使用大模型的生成式问答的常用基准数据集。研究比较了先前工作的三种RAG管道变体,使用确切匹配(EM)和F1分数作为评估生成答案的准确性的指标,以及Top-5和Top-10作为检索准确率的指标。

  • RAG-original:这个变体是在自然问题数据集上微调的模型,未经特定领域的适配评估。
  • RAG-end2end:作为RAG-original的扩展,这个模型进行了额外的微调,专为SQuAD的领域适配。
  • Blended RAG:特别是Blended RAG变体没有在SQuAD数据集或任何相关语料库上进行训练。它利用优化的字段选择和混合查询公式与语义索引相结合,为大模型提供最精确的响应。

表IV显示,Blended RAG在没有特定数据集微调的情况下,展示了增强的性能,F1分数提高了50%。这一特性对于大型企业数据集尤其有利,因为微调可能是不切实际或不可行的,突显了这项研究的主要应用。

自然问题(NQ)是另一个常用于RAG的基准数据集。使用零样本学习的Blended RAG管道被评估以确定其与其他非微调模型的有效性。评估侧重于以下指标:确切匹配(EM)、F1分数以及Top-5和Top-20的检索准确率。

表V展示了Blended RAG(零样本学习)展示了优越的性能,EM达到了42.63,比之前的基准提高了35%。

表III和表IV分别展示了在SqUAD和NQ数据集上对RAG管道进行评估的结果。在SqUAD数据集上,Blended RAG在没有特定数据集微调的情况下,展示了增强的性能,F1分数提高了50%。在NQ数据集上,Blended RAG(零样本学习)展示了优越的性能,EM达到了42.63,比之前的基准提高了35%。

这些实验结果表明,通过精心设计的混合查询策略,可以显著提升检索器在各种数据集上的检索准确率,进而提高整个RAG系统的性能。

论文链接:https://arxiv.org/pdf/2404.07220

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

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

相关文章

Leetcode—删除有序数组的重复项

题目描述 思路 思路:定义两个指针/变量,dst指向第一个位置,scr指向下一个位置,判断scr和dst位置的数据。 case1:相等,scr; case2: 不相等,dst,nums[dst]nums[scr],scr; 画图解释 定义两个指针…

基于SpringBoot+Vue+MySQL的社区医院管理系统

系统展示 系统背景 在当前医疗体系日益完善的背景下,社区医院作为基层医疗服务的重要一环,其管理效率和服务质量直接关系到居民的健康福祉。为了提升社区医院的管理水平,优化患者就医体验,我们设计了一套基于SpringBoot、Vue.js与…

09年408考研真题解析-计算机网络

[题34]在无噪声情况下,若某通信链路的带宽为3kHz,采用4个相位,每个相位具有4种振幅的QAM调制技术,则该通信链路的最大数据传输速率是(B) A.12 kbps B.24 kbps C.48 kbps D.96 kbps 解析&#xff…

主流的Java的webapi接口模板特点分析

Java 作为一种广泛应用于企业级开发的编程语言,其在 Web API 开发中具有重要的地位。随着 Java 生态系统的不断发展,市面上涌现了多种不同的 Web API 框架和设计模式。不同的 Web API 模板在设计上各有特点,适合不同类型的开发需求。本文将详…

从0-1 用AI做一个赚钱的小红书账号(不是广告不是广告)

大家好,我是胡广!是不是被标题吸引过来的呢?是不是觉得自己天赋异禀,肯定是那万中无一的赚钱天才。哈哈哈,我告诉你,你我皆是牛马,不要老想着突然就成功了,一夜暴富了,瞬…

【Java 优选算法】双指针(下)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 有效三角形的个数 题目链接 解法 解法1:暴力枚举--->O(n^3) 解法2:利用单调性,使用双指针来解决---->O(n^2) 优化:对整个数组进行排序先固定最大数在最大数的左…

微服务_入门1

文章目录 一、 认识微服务二、 微服务演变2.1、 单体架构2.2、 分布式架构2.3、 微服务2.4、 微服务方案对比 三、 注册中心3.1、 Eureka3.2、 Nacos3.2.1、服务分级存储模型3.2.2、权重配置3.2.3、环境隔离 一、 认识微服务 二、 微服务演变 随着互联网行业的发展,…

Spark Streaming基础概论

1. 简介 1.1 什么是 Spark Streaming? Spark Streaming 是 Apache Spark 的一个扩展模块,专门用于处理实时数据流。它通过将数据流切分为一系列小批次(微批次)进行处理,使得开发者能够使用与批处理相同的 API 来处理…

【MRI基础】混叠伪影

基本概念 混叠(aliasing),也称为环绕伪影(wrap around artifacts),是一种常见的伪影,当视场 (FOV) 小于实际成像物体时,可能会在磁共振成像 (MRI) 中出现。空间定位由选定组织样本内的自旋频率决定。选定视…

正点原子阿尔法ARM开发板-IMX6ULL(六)——通过官方SDK完成实验

文章目录 一、引言1.1 cc.h1.2 main.c1.2 fsl_common.h、MCIMX6Y2.h、fsl_iomuxc.h1.3 对于宏定义能多个参数 其他 一、引言 在开发过程中,如果一个人来写寄存器、汇编等东西,会变得特别繁琐,好在官方NXP官方给出了SDK包, 1.1 c…

解决IDEA每次创建新项目时都要指定Maven仓库和Maven配置文件的问题

文章目录 0. 前言1. 打开新项目的设置2. 搜索 Maven 相关的配置3. 更改Maven主路径、配置文件、本地仓库4. 更改新项目的Maven配置后没生效 0. 前言 在 IDEA 中每次创建新项目时,使用的都是默认的 Maven 仓库和默认的配置文件,需要我们手动修改&#xf…

对称密码中的密钥是如何实现安全配送的?

对称密码在设计时就存在一个天然的缺陷,就是要求通信双方都要持有相同的密钥。确保密钥的安全传输和防止密钥泄露,往往比加密算法本身更为复杂和困难。一旦密钥被第三方获取,通信的安全性就会受到严重威胁,从而可能暴露敏感信息。…

网络协议全景:Linux环境下的TCP/IP、UDP

目录 1.UDP协议解析1.1.定义1.2.UDP报头1.3.特点1.4.缓冲区 2.TCP协议解析2.1.定义2.2.报头解析2.2.1.首部长度(4位)2.2.2.窗口大小2.2.3.确认应答机制2.2.4.6个标志位 2.3.超时重传机制2.4.三次握手四次挥手2.4.1.全/半连接队列2.4.2.listen2.4.3.TIME_…

Git rebase 的使用(结合图与案例)

目录 Git rebase 的使用Git rebase 概念Git rebase 原理rebase和merge的选择 Git rebase 的使用 在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase Git rebase 概念 **rebase概念:**用来重新应用提交(commits&#xff09…

指针式仪表识别

源码下载:小宅博客网 效果如下: 工程结构: 说明: 源码是针对下面这种刻度,并且单个指针的仪表的 如果是下面这种,刻度线被连接起来的,目前不支持转换成仪表单位,只能输出指针角度&…

操作系统名词_文件下载_反弹shell_1

目录 名词解释 Poc、EXP、Payload与shellcode 后门 木马、病毒 黑白盒测试 社会工程学、撞库 ATT&CK 应用实例 实用案例1:文件上传下载-解决无图形化&解决数据传输 实用案例2:反弹shell命令-解决数据回显&解决数据通讯 结合案例1&…

构建响应式API:FastAPI Webhooks如何改变你的应用程序

FastAPI,作为一个现代、快速(高性能)的Web框架,为Python开发者提供了构建API的卓越工具。特别是,它的app.webhooks.post装饰器为处理实时Webhooks提供了一种简洁而强大的方法。在本文中,我们将探讨如何使用…

Python | python中的特殊方法__str__和__repr__

__str__和__repr__ 无方法有方法__str____repr__同时存在 __str__和__repr__都是更改print的输出形式 无方法 无特殊方法 class Person:def __init__(self,name,age):self.name nameself.age ageprint(Person(aa, 34))<main.Person object at 0x000002231EF78B38> …

【数据结构初阶】顺序结构二叉树(堆)接口实现超详解

文章目录 1.树1. 1 树的概念与结构1. 2 树的相关术语1. 3 树的表示1. 4 树形结构实际运用场景 2.二叉树2. 1 概念与结构2. 2 特殊的二叉树2. 2. 1 满二叉树2. 2. 2 完全二叉树 2. 3 二叉树存储结构2. 3. 1 顺序结构2. 3. 2 链式结构 3. 实现顺序结构二叉树&#xff08;小堆&…

麦肯锡的金字塔原理:越简单,越高效

分享下金字塔原理&#xff0c;它由麦肯锡公司的芭芭拉明托在《金字塔原理》一书中首次提出&#xff0c;旨在帮助人们通过结构化的思维分析问题&#xff0c;思考问题和解决问题。它是一种方法&#xff0c;也是一种思想。 总的来说&#xff0c;金字塔原理就是将事情归纳出一个中…