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

奇思妙想:多头RAG

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

RAG

检索增强生成 (RAG) 是一种通过集成文档检索系统来增强大型语言模型 (LLMs) 功能的方法。这种集成允许LLMs从外部来源获取相关信息,从而提高生成的响应的准确性和相关性。这种方法解决了传统LLMs方法的局限性,例如需要广泛的培训以及提供过时或不正确信息的风险。RAG的主要优势在于它能够将模型的输出建立在可靠的来源中,从而减少幻觉并确保最新的知识,而无需昂贵的持续培训。

RAG 面临的一个重大挑战是处理需要具有不同内容的多个文档的查询。此类查询在各个行业中都很常见,但会带来困难,因为所需的文档可能具有截然不同的嵌入,因此很难准确检索所有相关信息。这个问题需要一个能够有效地从多个来源获取和组合信息的解决方案。在复杂的场景中,如化工厂事故,从与设备维护、天气状况和工人管理等各个方面相关的文档中检索数据对于提供全面的答案至关重要。

现有的 RAG 解决方案通常使用 Transformer 模型的最后一层解码器模块的嵌入来检索文档。但是,此方法需要充分处理多方面查询,因为它难以检索涵盖明显不同内容方面的文档。当前的一些技术包括 RAPTOR、Self-RAG 和 Chain-of-Note,它们专注于提高检索准确性,但无法有效处理复杂的多方面查询。这些方法旨在优化检索数据的相关性,但需要帮助来处理多方面查询所需的文档内容的多样性。

MRAG

来自苏黎世联邦理工学院、Cledar、巴斯夫欧洲公司和华沙理工大学的研究人员推出了多头 RAG (MRAG) 来解决多方面查询问题。这种新颖的方案利用了 Transformer 模型的多头注意力层的激活,而不是最后一层解码器的激活。研究团队设计了MRAG,利用不同的注意力头来捕获各种数据方面,从而提高复杂查询的检索准确性。<若读者对于多头注意力机制有所忘记的话,可以移步“深入注意力机制”。> 通过利用多头注意力机制,MRAG创建了代表数据在各个维度的嵌入,增强系统跨不同内容区域获取相关信息的能力。

MRAG的关键创新是使用来自多个注意力头的激活来创建嵌入。Transformer 模型中的每个注意力头都可以学习捕获不同的数据方面,从而产生表示数据项和查询各个方面的嵌入。与标准RAG相比,此方法使 MRAG能够更有效地处理多方面查询,而不会增加空间要求。MRAG在数据准备阶段使用来自多头注意力层的激活来构建嵌入。在查询执行期间,这些多方面嵌入允许从不同的嵌入空间中检索相关的文本块,从而解决多方面查询的复杂性。

MRAG背后的关键思想很简单,利用最后一个注意层为最后的Token生成的H个独立激活向量,而不是利用最后一个解码器的前馈层为最后的Token生成的单个激活向量。

对于输入的最后一个Token(𝑥𝑛),在还没有传送到前馈层前,利用多个注意力头的激活向量构造嵌入:S={ek∀k},其中ek = headk(𝑥𝑛),S是输入的最后一个Token(𝑥𝑛)上注意头的所有输出集合。

由于使用多个头进行处理不会改变输出向量的大小,因此S具有与标准 RAG 相同的空间要求。但是,由于在将单独的嵌入与Wo混合之前捕获它们,推测这些向量可以提供有关输入不同部分的关注内容信息,从而有助于捕获更多维的信息。如下图所示,传统的RAG将每个文档块放在一个空间,而MRAG则是将原来的空间切分为更小的子空间。

既然将文本的索引切分到多个子空间,而检索策略需要升级,进而在给定用户查询下从数据库中选择最接近的文本块。通常,MRAG检索策略包括三个步骤。第一,在数据准备期间,为所有h个嵌入空间分配重要性分数。直观地说,这些分数反映了不同空间可能与所用数据的重要性。

头部h的得分 si 由两部分组成,ai 和 bi。向量空间i指的是被刚才算法切分形成的h个子空间的某一个。ai 是向量空间i中所有嵌入的 L2 范数的平均值;它表示给定头部的重要性:范数越大,对该注意力头部的关注就越多。bi 是向量空间i中所有嵌入之间的余弦距离的平均值。直观地讲,bi 是测量向量空间 i 的“分散”。将 si导出为 ai · bi 的乘积可确保奖励具有高平均注意力和高平均分散率的子空间,但同时惩罚相反的子空间。

第二,在查询执行期间,MRAG 对每个嵌入空间分别应用传统的RAG检索。这将返回每个嵌入空间的c个最接近的文本块列表(总共h*C块)。这里需要使用投票策略,使用预先计算的重要性分数从所有 h*c个块中挑选出总体排名前k个。

本次的实验将MTEB排行榜上的两个嵌入模型视为候选模型。SFR-embedding-Model和e5-mistral-7b-instruct均基于Mistral 7B架构,每个多头注意力有32 个解码器块和32个注意力头。

上面是一个示例,最上面为查询的Prompt模板。第二行左一为知识库,左二和左三分别为传统的RAG和MRAG。针对两种算法,实验的结果标记在PROMPT中。

对比结果会发现,MRAG 显著提高了检索相关性,在获取多方面文档方面,其性能比标准 RAG 基线高出 20%。该评估使用了合成数据集和真实世界的用例,证明了 MRAG 在不同场景中的有效性。例如,在涉及多方面维基百科条目的测试中,MRAG 的相关性比标准 RAG 基线提高了 20%。此外,MRAG在法律文件合成和化工厂事故分析等实际任务中的表现也展示了其实际优势。在法律文件综合任务中,MRAG从各种法律框架中检索上下文相关文件的能力尤其值得称赞。

此外,MRAG的优势不仅限于检索精度。该方法经济高效且节能,不需要额外的LLM查询、多个模型实例、增加的存储或对嵌入模型进行多次推理传递。这种效率与增强的检索准确性相结合,使MRAG 成为RAG系统领域的宝贵进步LLMs。MRAG 可以与现有的RAG框架和基准测试工具无缝集成,为复杂的文档检索需求提供多功能且可扩展的解决方案。

相关文章:

奇思妙想:多头RAG

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…...

H323 截包分析辅流问题

辅流问题&#xff08;h264\h264hp\h265&#xff09; 终端1 &#xff1a; 192.168.1.1 入会发送辅流 终端2 &#xff1a; 192.168.1.2 入会接收辅流 问题 &#xff1a; 终端2不显示辅流 1、筛选 h245 h225 协议 分别筛选以下IP进行查看截包内容 (h225 || h245) && …...

低成本和颜值兼顾的 HomeLab 设备:HPE MicroServer Gen10(二)

本篇文章&#xff0c;继续分享另外一台端午假期折腾的设备&#xff0c;HP MicroServer Gen10 一代。同样分享下我的折腾思路&#xff0c;希望能够帮助到有类似需求的你。 写在前面 Gen10 “标准版”&#xff08;第一代&#xff09;和 Plus 版本设计风格一致&#xff0c;同样颜…...

面试题:ArrayList和LinkedList的区别

ArrayList和LinkedList都是Java中实现List接口的集合类&#xff0c;用于存储和操作对象列表&#xff0c;但它们在内部数据结构、性能特性和适用场景上有所不同&#xff1a; 1.内部数据结构&#xff1a; ArrayList&#xff1a;基于动态数组实现。这意味着它在内存中是连续存储…...

【王树森】深度强化学习(DRL)学习笔记

目录 第一部分&#xff1a;基础知识1.机器学习基础2.蒙特卡洛估计3.强化学习基础知识3.1 马尔科夫决策过程马尔可夫决策过程&#xff08;Markov decision process&#xff0c;MDP&#xff09;智能体环境状态状态空间动作动作空间奖励状态转移状态转移概率 3.2 策略策略定义 3.3…...

LLM应用实战:当图谱问答(KBQA)集成大模型(三)

1. 背景 最近比较忙(也有点茫)&#xff0c;本qiang~想切入多模态大模型领域&#xff0c;所以一直在潜心研读中... 本次的更新内容主要是响应图谱问答集成LLM项目中反馈问题的优化总结&#xff0c;对KBQA集成LLM不熟悉的客官可以翻翻之前的文章《LLM应用实战&#xff1a;当KBQ…...

Django框架中Ajax GET与POST请求的实战应用

系列文章目录 以下几篇侧重点为JavaScript内容0.0 JavaScript入门宝典&#xff1a;核心知识全攻略&#xff08;上&#xff09;JavaScript入门宝典&#xff1a;核心知识全攻略&#xff08;下&#xff09;Django框架中Ajax GET与POST请求的实战应用VSCode调试揭秘&#xff1a;L…...

web前端怎么挣钱, 提升技能,拓宽就业渠道

web前端怎么挣钱 在当今数字化时代&#xff0c;Web前端技术已成为互联网行业中不可或缺的一部分。越来越多的人选择投身于这个领域&#xff0c;希望能够通过掌握前端技术来实现自己的职业发展和经济收益。那么&#xff0c;Web前端如何挣钱呢&#xff1f;接下来&#xff0c;我们…...

基于Python的信号处理(包络谱,低通、高通、带通滤波,初级特征提取,机器学习,短时傅里叶变换)及轴承故障诊断探索

Python是一种广泛使用的解释型、高级和通用的编程语言&#xff0c;众多的开源科学计算软件包都提供了Python接口&#xff0c;如计算机视觉库OpenCV、可视化工具库VTK等。Python专用计算扩展库&#xff0c;如NumPy、SciPy、matplotlab、Pandas、scikit-learn等。 开发工具上可用…...

大型语言模型智能体(LLM Agent)在实际使用的五大问题

在这篇文章中&#xff0c;我将讨论人们在将代理系统投入生产过程中经常遇到的五个主要问题。我将尽量保持框架中立&#xff0c;尽管某些问题在特定框架中更加常见。 1. 可靠性问题 可靠性是所有代理系统面临的最大问题。很多公司对代理系统的复杂任务持谨慎态度&#xff0c;因…...

C语言内存管理

1.进程的内存分布 练习&#xff1a;编写一个程序&#xff0c;测试栈空间的大小 #include<stdio.h>#define SIZE 1024*1024*7void main (void) {char buf[SIZE];buf[SIZE-1] 100;printf("%d\n",buf[SIZE-1]); }如果SIZE 大小超过8M(102410248)&#xff0c;…...

AD24设计步骤

一、元件库的创建 1、AD工程创建 然后创建原理图、PCB、库等文件 2、电阻容模型的创建 注意&#xff1a;防止管脚时设置栅格大小为100mil&#xff0c;防止线段等可以设置小一点,快捷键vgs设置栅格大小。 1.管脚的设置 2.元件的设置 3、IC类元件的创建 4、排针类元件模型创建…...

基于MBD的大飞机模块化广域协同研制

引言 借鉴国外航空企业先进经验&#xff0c;在国内&#xff0c;飞机型号的研制通常采用基于模型定义&#xff08;MBD&#xff09;的三维数模作为唯一的设计制造协同数据源&#xff0c;从而有效减少了设计和制造部门之间的模型沟通成本和重构所需的时间&#xff0c;也减少或避免…...

鸿蒙轻内核M核源码分析系列二十 Newlib C

LiteOS-M内核LibC实现有2种&#xff0c;可以根据需求进行二选一&#xff0c;分别是musl libC和newlibc。本文先学习下Newlib C的实现代码。文中所涉及的源码&#xff0c;均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。 使用Musl C库的时候&#xff0c…...

力扣1818.绝对差值和

力扣1818.绝对差值和 把nums1拷贝复制一份 去重排序 对于每个nums2都找到差距最小的那个数(二分) 作差求最大可优化差值去重排序可以直接用set 自动去重排序了 const int N 1e97;class Solution {public:int minAbsoluteSumDiff(vector<int>& nums1, vector<i…...

矩阵练习2

48.旋转图像 规律&#xff1a; 对于矩阵中第 i行的第 j 个元素&#xff0c;在旋转后&#xff0c;它出现在倒数第i 列的第 j 个位置。 matrix[col][n−row−1]matrix[row][col] 可以使用辅助数组&#xff0c;如果不想使用额外的内存&#xff0c;可以用一个临时变量 。 还可以通…...

2024海南省大数据教师培训-Hadoop集群部署

前言 本文将详细介绍Hadoop分布式计算框架的来源&#xff0c;架构和应用场景&#xff0c;并附上最详细的集群搭建教程&#xff0c;能更好的帮助各位老师和同学们迅速了解和部署Hadoop框架来进行生产力和学习方面的应用。 一、Hadoop介绍 Hadoop是一个开源的分布式计算框架&…...

力扣算法题:将数字变为0的操作次数--多语言实现

无意间看到&#xff0c;力扣存算法代码居然还得升级vip。。。好吧&#xff0c;我自己存吧 golang&#xff1a; func numberOfSteps(num int) int {steps : 0for num > 0 {if num%2 0 {num / 2} else {num - 1}steps}return steps } javascript: /*** param {number} num…...

vue前段处理时间格式,设置开始时间为00:00:00,设置结束时间为23:59:59

在Vue开发中&#xff0c;要在前端控制日期时间选择器的时间范围&#xff0c;可以通过以下方式实现&#xff1a; 使用beforeDestroy生命周期钩子函数来处理时间范围&#xff1a; 在Vue组件中&#xff0c;可以监听日期时间选择器的变化&#xff0c;在选择开始日期时&#xff0c;自…...

Java 8 新特性全面解读

Java 8&#xff0c;作为一次重大更新&#xff0c;于2014年引入了多项创新特性&#xff0c;极大地改善了Java的编程体验和性能。此版本不仅加入了对函数式编程的支持&#xff0c;还增强了接口的功能&#xff0c;引入了新的API&#xff0c;并优化了语言的整体效率。接下来&#x…...

JavaScript知识之函数

javascript函数 在JavaScript基础之上提供了部分函数,同时也可以自定义函数,JavaScript基础详见之前的文章javascript基础知识 自定义函数 //关键字 函数名 参数列表 函数体 function test(a,b,c){alert(a":"b":"c) }function test1(a,b){return a;//不…...

【Pepper机器人开发与应用】一、Pepper SDK for LabVIEW下载与安装教程

‍‍&#x1f3e1;博客主页&#xff1a; virobotics(仪酷智能)&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f4d1;上期文章&#xff1a;『一文汇总对比英伟达、AMD、英特尔显卡GPU』 &#x1f37b;本文由virobotics(仪酷智能)原创 &#x1f973;欢迎大家关注✌点赞&…...

HCIP-AI EI 认证课程大纲

该阶段详细介绍计算机视觉、注意力机制与Transformer、自然语言处理、语音处理等 AI 核心领域技术&#xff0c;并重点介绍华为云 EI 服务使用。 共计48 课时。第一节&#xff1a;计算机视觉技术概述与图像处理基础 - &#xff08;3 课时&#xff09; - 什么是计算机视觉&#x…...

@Test注解方法,方法无法执行

1.背景 写了一个测试方法,执行后如图 2.原因是 该项目是springbootgradle...构建的项目 在build.gradle配置文件中关闭了单元测试: test {useJUnitPlatform()// 是否启用单元测试enabled false } 3.处理方式 开启单元测试 test {useJUnitPlatform()// 是否启用单元测试ena…...

golang函数

【1】函数&#xff1a; 对特定的功能进行提取&#xff0c;形成一个代码片段&#xff0c;这个代码片段就是我们所说的函数 【2】函数的作用&#xff1a;提高代码的复用性 【3】函数和函数是并列的关系&#xff0c;所以我们定义的函数不能写到main函数中 【4】基本语法 func 函…...

ubuntu上存在多个版本python,根据需要选择你想使用的python版本

文章目录 前言一、二、使用步骤总结 前言 参考1 一、 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1二、使用步骤 总结...

idea 常用插件推荐

文章目录 1、Lombok2、Convert YAML and Properties File3、Grep Console4、MyBatisX5、Free MyBatis Tool6、MyBatis Log EasyPlus &#xff08;SQL拼接&#xff09;7、MyBatisPlus8、Eclipse theme9、Eclipse Plus Theme10、Rainbow Brackets Lite - Free and OpenSource&…...

训练大模型自动在RAG和记忆间选择

现如今&#xff0c;检索增强生成(Retrieval-augmented generation&#xff0c;RAG)管道已经能够使得大语言模型(Large Language Models&#xff0c;LLM)在其响应环节中&#xff0c;充分利用外部的信息源了。不过&#xff0c;由于RAG应用会针对发送给LLM的每个请求&#xff0c;都…...

抖店没人做了?不是项目不行了,而是商家们都换思路去玩了

我是王路飞。 有没有发现现在很多抖店新手都在吐槽&#xff0c;抖店不好做了&#xff0c;做不起来&#xff0c;没人做了&#xff0c;太内卷了...... 对这种做不起来还在怪项目本身的&#xff0c;一定要离他远一点&#xff0c;省得被他的负能量给影响到自己的状态。 任何项目…...

Qt5.15.2+VS2019新加类出现无法解析的外部符号

Qt5.15.2VS2019新加类出现无法解析的外部符号&#xff1a; 原因&#xff1a;没有生成对应的moc文件&#xff0c;导致没生成对应的元对象。 解决方案&#xff1a;记事本打开工程vcxproj&#xff0c;把报错的文件ClInclude&#xff0c;改为QtMoc&#xff0c;解决问题 未修改前&…...

慈溪做网站/女生读网络营销与电商直播

VNCTF2022_Misc_复现 仔细找找 放大图片可以看见有很小的与周围颜色不同的像素点均匀的分布在图片中 先寻找像素点之间的间隔&#xff0c;然后拼接在一起生成新的图片 代码实现 from re import L from PIL import Image import numpy pic Image.open("C:\\Users\\Me…...

网站设计报告/seo关键词优化排名

为什么80%的码农都做不了架构师&#xff1f;>>> 这里介绍Hibernate连接配置方法&#xff0c;包括介绍在c3p0和dbcp中&#xff0c;都是必需的&#xff0c;因为Hibernate会根据上述的配置来生成connections&#xff0c;再交给c3p0或dbcp管理.但是&#xff0c;proxool…...

招聘网站源码下载/app推广兼职是诈骗吗

ps命令时显示当前系统进程信息的命令&#xff0c;与top不同的是&#xff0c;ps返回的事当前活动进程的信息清单。所以&#xff0c;如果想要得到动态更新显示的信息&#xff0c;使用top命令。 默认ps&#xff1a; 选定所有有效进程&#xff08;EUID&#xff09;转载于:https://w…...

网站前台用什么做/百度网站提交了多久收录

在java web程序中加入定时任务&#xff0c;这里介绍两种方式&#xff1a;1.使用监听器注入&#xff1b;2.使用spring注解scheduled注入。推荐使用第二种形式。一、使用监听器注入①&#xff1a;创建监听器类&#xff1a;import javax.servlet.servletcontextevent;import javax…...

景观设计公司理念/南宁百度seo排名优化

假设都不太安全&#xff0c;但是我很确信如果我大声宣布小孩爱玩具&#xff0c;你一定就会同意了。是的&#xff0c;他们也喜欢卡通。现在又出现了一个趋势就是&#xff1a;他们还喜欢iPad。有人说这曾是2010年出现的新玩具Y Combinator下63家企业中的一个新创业公司今天出来鸟…...

qq营销/东莞网络优化公司

一大早&#xff0c;U-Mail客服张小姐就被电话催得迅速进入工作状态&#xff0c;原来一位客户心急火燎的说邮件往外界投递失败&#xff0c;但不知什么原因&#xff1f;张小姐迅速联系到客户专享技术工程师刘工&#xff0c;迅速对客户进行远程诊断&#xff0c;即刻排除了故障&…...