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

news2024/11/24 16:23:36

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

在构建基于大模型(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.coloradmin.cn/o/2142764.html

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

相关文章

Gin渲染

HTML渲染 【示例1】 首先定义一个存放模板文件的 templates文件夹&#xff0c;然后在其内部按照业务分别定义一个 posts 文件夹和一个 users 文件夹。 posts/index.tmpl {{define "posts/index.tmpl"}} <!DOCTYPE html> <html lang"en">&…

【网络通信基础与实践第二讲】包括互联网概述、互联网发展的三个阶段、互联网的组成、计算机网络的体系结构

一、互联网概述 计算机网络是由若干节点&#xff08;node&#xff09;和连接这些节点的链路&#xff08;link&#xff09;组成。 网络之间还可以通过路由器互联起来&#xff0c;这就构成了一个覆盖范围更大的计算机网络。这样的网络称为互联网。 网络把许多计算机连接在一起…

『功能项目』制作提示主角升级面板【56】

我们打开上一篇55事件中心处理怪物死亡的项目&#xff0c; 本章做的事情是制作提示主角升级的界面&#xff0c;当主角升级时就会被显示出来点击确认即可消失 首先在unity编辑场景制作 在确认按钮对象上添加事件 点击Button将Panel添加至事件框选 在事件函数中选择gameobject.S…

【图像拼接】基于SIFT/SURF特征算法的图像拼接,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于SIFT/SURF特征算法的图像拼接&#xff0c;用matlab实现。 一、案例背景和算法介…

[C#学习笔记]Newtonsoft.Json

视频地址&#xff1a;分享一些Newtonsoft.Json的实用功能与技巧_哔哩哔哩_bilibili 强烈推荐学习C#和WPF的朋友关注此UP&#xff0c;知识点巨多&#xff0c;讲解透彻&#xff01; 一、JsonSerializerSettings 1.1 自动缩进-Formatting 使用Formatting.None进行序列化 var …

流媒体之RTMP协议(其四)

欢迎诸位来阅读在下的博文~ 在这里&#xff0c;在下会不定期发表一些浅薄的知识和经验&#xff0c;望诸位能与在下多多交流&#xff0c;共同努力&#xff01; 江山如画&#xff0c;客心如若&#xff0c;欢迎到访&#xff0c;一展风采 文章目录 前期博客参考书籍一、PTMP简介二…

MyBatis的配置文件详解

01-MyBatis的配置文件详解 创建的接口和xml文件的名字最好写一样的要不然会出问题,然后和接口名相同的xml文件在resources下创建个和接口相同文件夹把xml文件放进去,而且resources下的创建的文件夹需要一级一级的创键,比如:cn创建完,创建tulingxue,然后再创建mapper文件夹才行…

python绘制月亮

import matplotlib import matplotlib.pyplot as plt import moviepy.editor as mpymatplotlib.rcParams[font.family] SimHei# 坐标列表 positions [(0, 0), (1 / 4, 1 / 4), (1 / 3, 1 / 4), (1 / 2, 1 / 4), (2 / 3, 1 / 4),(3 / 4, 1 / 4), (1, 1 / 4), (5 / 4, 1 / 4), …

C++中的容器——vector

1. vector的介绍 vector&#xff1a;vector的底层实际上就是一个数组&#xff08;也称为顺序表&#xff09;&#xff0c;数据是连续存储在数组中的&#xff0c;因此vector是可以使用下标来进行访问的&#xff0c;但是它的大小并不是像数组一样是固定的&#xff0c;而是可以动态…

漳州自闭症寄宿学校,孩子的快乐学习乐园

在温暖而包容的南方都市——广州&#xff0c;藏着一所特别的学校&#xff0c;它以爱为名&#xff0c;为自闭症儿童编织了一个充满希望的未来&#xff0c;这就是星贝育园自闭症儿童寄宿制学校。这里&#xff0c;不仅是知识的殿堂&#xff0c;更是孩子们心灵得以自由飞翔、快乐学…

削峰+限流:秒杀场景下的高并发写请求解决方案

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 哈喽,大家好!我是小米,一个29岁、活泼积极、热衷分享技术的码农。今天和大家聊一聊应对高并发的写请求这个主题,尤其是在大促、秒杀这种场景下,系统…

【Docker Nexus3】maven 私库

1.部署环境 window 11 x64Docker Desktop 4.34.1 (166053) Docker Engine v27.2.0 1.1.Docker 镜像源 1.1.1.Docker Engine 配置 {"builder": {"features": {"buildkit": true},"gc": {"defaultKeepStorage": "32…

微服务_入门2

文章目录 一、Feign二、Gateway服务网关 一、Feign 来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a; 代码可读性差&#xff0c;编程体验不统一&#xff08;url需要自己在代码中拼写出来&#xff09;参数复杂URL难以维护&#xff0…

Weapons Armor PBR Pack 1 - Fantasy RPG 武器护甲游戏模型

武器和护甲包#1有30个武器和护甲,每个对象都有默认外观,大多数都有网格变形和Substance Painter源文件,用于自定义纹理。 无限PBR&我的哲学 Infinity PBR是十几位艺术家的作品,他们都在做自己最擅长的事情。我想为独立游戏开发者制作最通用、最优质的资产,按照我希望的…

鸿蒙开发之ArkUI 界面篇 四

文字溢出处理、省略号、文字太长的处理用textOverflow&#xff0c;语法格式是&#xff1a; Text.textOverflow({ overflow: TextOverflow; }) 尤其注意&#xff0c;单独的这个设置没有效果&#xff0c;需要和maxLines一起使用才有效果 Text("男频男频男频男频男频男频男…

好代码网同款wordpress主题,完全开源无加密可二开

这个其实就是好代码网站的早期整站打包代码&#xff0c;当时售价198的&#xff0c;现在里面的部分数据已经过期了&#xff0c;只能展示效果&#xff0c;没法下载。所以就只当做主题分享给大家使用。 资源下载类网站目前还是红利期&#xff0c;搞个特价主机和域名&#xff0c;再…

代码随想录Day 46|动态规划完结,leetcode题目:647. 回文子串、516.最长回文子序列

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 题目题目一&#xff1a;647. 回文子串解题思路&#xff1a;暴力解法动态规划 题目二&#xff1a; 516.最长回文子序列解题思路&#xff1a; 动态规划总结动规五部曲基础概念常见问题类型 动态规划…

算法设计与分析(循环赛日程表

目录 循环赛日程表算法介绍代码实现注意事项 小结&#xff1a; 循环赛日程表 在组织和安排体育赛事时&#xff0c;循环赛日程表的编制是一项重要且复杂的任务。循环赛&#xff0c;即每个参赛队伍都要与其他所有队伍进行一场比赛&#xff0c;确保比赛的公平性和所有队伍之间的平…

Linux下的CAN通讯

CAN总线 CAN总线简介 CAN&#xff08;Controller Area Network&#xff09;总线是一种多主从式 <font color red>异步半双工串行 </font> 通信总线&#xff0c;它最早由Bosch公司开发&#xff0c;用于汽车电子系统。CAN总线具有以下特点&#xff1a; 多主从式&a…

JAVA基础面试题总结(十五)——设计模式

面试专题-设计模式 前言 在平时的开发中&#xff0c;涉及到设计模式的有两块内容&#xff0c;第一个是我们平时使用的框架&#xff08;比如spring、mybatis等&#xff09;&#xff0c;第二个是我们自己开发业务使用的设计模式。 面试官一般比较关心的是你在开发过程中&#…