RAG技术进化史:从初级到高级,再到模块化RAG架构的创新发展

news2024/9/21 18:54:53

大型语言模型(LLMs)通过在自然语言任务及其它领域的成功应用,如 ChatGPT、Bard、Claude 等所示,已经彻底改变了 AI 领域。这些 LLMs 能够生成从创意写作到复杂代码的文本。然而,LLMs 面临着幻觉、过时知识和不透明、无法追溯的推理过程等挑战。检索增强生成(RAG)作为一种将外部数据库的知识整合进来的有前景的解决方案而出现。这提高了生成内容的准确性和可信度,特别是对于知识密集型任务,并允许持续的知识更新和领域特定信息的整合。

RAG 通过从外部知识库检索相关文档块的语义相似性计算,增强了 LLMs。通过引用外部知识,RAG 有效减少了生成事实不正确内容的问题。其整合到 LLMs 中的应用已经广泛采用,使 RAG 成为推进聊天机器人和增强 LLMs 适用于现实世界应用的关键技术。当用户向 LLM 提问时,AI 模型将查询发送给另一个模型,该模型将其转换为机器可读的数字格式。查询的数字版本有时称为嵌入或向量。RAG 将 LLMs 与嵌入模型和向量数据库结合起来。然后,嵌入模型将这些数字值与可用知识库的机器可读索引中的向量进行比较。当它找到一个或多个匹配项时,它检索相关数据,将其转换为人类可读的文字,并将其传回给 LLM。最后,LLM 将检索到的词语和对查询的响应组合成最终用户看到的答案,可能会引用嵌入模型找到的来源。

fUnZZe5lcurSad0TSqlOVeFb6HqPudzF8Ohm65PW24BUQgZxJhbFxmqyt22sp_lZ0k6mHigGfAun2Qk0BVqwcEDZGIFlCHm1usKqHZjc29UfPdAY1uz0htsBZmCcgMR5EUQk9CKkaGrbfMNFzsQksWs.png

RAG 研究范式不断发展,RAG 被分为三个阶段:初级 RAG、高级 RAG 和模块化 RAG。尽管 RAG 方法具有成本效益并超过了原生 LLM 的性能,但它也展示了几个局限性。高级 RAG 和模块化 RAG 的开发是为了克服初级 RAG 中的这些特定缺点的创新。

Tz6mUnxKWxQct9-eUdixIhlIL4z4UuCD4O22Of4gVZMdCwzlkPsADCLulpwlWo58U88vkaeXCxhv40gYlAsmiHVAvQgOIVwg6l_XaZCLvrcH9KvNjheXxx3z1bXfowbgs6teeB-ETAVL6BW711ZTT8o.png

初级 RAG

初级 RAG 研究范式代表了最早的方法论,它在 ChatGPT 广泛采用后不久获得了突出地位。初级 RAG 遵循一个传统的过程,包括索引、检索和生成,也被称为“检索-阅读”框架。索引从清理和提取 PDF、HTML、Word 和 Markdown 等多种格式的原始数据开始,然后将其转换为统一的纯文本格式。检索:收到用户查询后,RAG 系统使用在索引阶段期间使用的相同编码模型将查询转换为向量表示。然后,它计算查询向量与索引语料库中的块向量之间的相似性分数。系统优先检索与查询最相似的前 K 个块。这些块随后被用作提示中的扩展上下文。生成:提出的查询和选定的文档被综合成一个连贯的提示,LLM 被任务化以形成响应。

然而,初级 RAG 遇到了显著的缺点:检索挑战;检索阶段经常在精确度和召回率上挣扎,导致选择不对齐或不相关的块并丢失关键信息。生成困难:在生成响应时,模型可能面临幻觉问题,产生与检索上下文不支持的内容。增强障碍:将检索到的信息与不同任务整合可能具有挑战性,有时会导致输出不连贯或不一致。此外,还有一个担忧是生成模型可能过度依赖增强信息,导致输出仅仅是复述检索内容而没有添加有洞察力或综合信息。

高级 RAG

高级 RAG 引入了特定的改进,以克服初级 RAG 的限制。它专注于提高检索质量,采用了预检索和后检索策略。为了解决索引问题,高级 RAG 通过滑动窗口方法、细粒度分割和元数据的整合,改进了其索引技术。此外,它还采用了几种优化方法来简化检索过程。预检索过程:在这个阶段,主要关注是优化索引结构和原始查询。优化索引旨在提高被索引内容的质量。这涉及到策略:提高数据粒度、优化索引结构、添加元数据、对齐优化和混合检索。查询优化的目标是使用户的原始问题更清晰、更适合检索。常见方法包括查询重写、查询转换、查询扩展和其他技术。

模块化 RAG

模块化 RAG 架构超越了前两个 RAG 范式,提供了增强的适应性和多样性。它整合了多种策略来改进其组件,例如添加搜索模块进行相似性搜索和通过微调来精炼检索器。为了应对特定挑战,引入了重构的 RAG 模块和重新排列的 RAG 流程的创新。向模块化 RAG 方法的转变正在变得普遍,支持顺序处理和跨其组件的集成端到端训练。尽管具有独特性,模块化 RAG 仍然建立在高级和初级 RAG 的基本原则之上,展示了 RAG 家族内的进步和精炼。

  • 新模块:模块化 RAG 框架引入了额外的专门组件,以增强检索和处理能力。搜索模块适应特定场景,使得可以直接跨各种数据源(如搜索引擎、数据库和知识图谱)进行搜索,使用 LLM 生成的代码和查询语言。RAG-Fusion 通过采用多查询策略,将用户查询扩展到不同视角,利用并行向量搜索和智能重新排序来揭示显式和变革性知识,解决了传统搜索的限制。记忆模块利用 LLM 的记忆来指导检索,通过迭代自我增强创建一个与数据分布更紧密对齐的无界记忆池。RAG 系统中的路由通过多样化的数据源导航,为查询选择最佳路径,无论是涉及摘要、特定数据库搜索还是合并不同信息流。预测模块旨在通过直接通过 LLM 生成上下文来减少冗余和噪声,确保相关性和准确性。最后,任务适配器模块通过为零次射入自动化提示检索和通过少次射查询生成创建特定于任务的检索器,将 RAG 定制到各种下游任务。

  • 新模式:模块化 RAG 通过允许模块替换或重新配置以应对特定挑战,提供了显著的适应性。这超越了初级和高级 RAG 的固定结构,后者以简单的“检索”和“阅读”机制为特征。此外,模块化 RAG 通过整合新模块或调整现有模块之间的交互流程,扩展了这种灵活性,增强了其在不同任务中的适用性。

Screenshot-2024-04-01-at-12.41.08-PM.png

总结

RAG 通过整合外部数据库的知识,已经成为一种有前景的解决方案。这提高了生成内容的准确性和可信度,特别是对于知识密集型任务,并允许持续的知识更新和领域特定信息的整合。RAG 通过从外部知识库检索相关文档块的语义相似性计算,增强了 LLMs。AG 研究范式不断发展,RAG 被分为三个阶段:初级 RAG、高级 RAG 和模块化 RAG。初级 RAG 存在几个局限性,包括检索挑战和生成困难。后来提出的 RAG 架构旨在解决这些问题:高级 RAG 和模块化 RAG。由于模块化 RAG 的适应性架构,它已成为构建 RAG 应用的标准范式。

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

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

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

相关文章

Codeforces Round 672 (Div. 2) C1. Pokémon Army (easy version) (DP)

不知道能不能用贪心,反正我是没看出来,所以用DP求解。 首先分析一下题意,我们要在一段序列中取出一段子序列,然后让这段子序列按顺序逐个先加后减最终得到的结果最大。 如果要用DP,那么我们首先就要思考怎么表示状态…

心好累,早点睡!永远不要提前焦虑——早读(逆天打工人爬取热门微信文章解读)

你们遇到心烦的事,会怎么排解呢? 引言Python 代码第一篇 洞见 永远不要提前焦虑第二篇 故事来源于生活结尾 引言 这两天天气都是阴雨 雨时而大 时而小 就是下个不停 老天还算给面子 上班路上总是细雨或者无雨 昨天晚上回来 山地车的前轮有些送动 马上发…

C++从入门到起飞之——this指针 全方位剖析!

个人主页:秋风起,再归来~ C从入门到起飞 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 目录 1、this指针 2、C和C语⾔实现Stack对⽐ C实现Stack代码 C实现Stack代…

深度挖掘行情接口:股票市场中的关键金融数据API接口解析

在股票市场里,存在若干常见的股票行情数据接口,每一种接口皆具备独特的功能与用途。以下为一些常见的金融数据 API 接口,其涵盖了广泛的金融数据内容,其中就包含股票行情数据: 实时行情接口 实时行情接口&#xff1a…

光耦合器技术的实际应用

光耦合器也称为光隔离器,是现代电子产品中的关键组件,可确保电路不同部分之间的信号完整性和隔离。它们使用光来传输电信号,提供电气隔离和抗噪性。 结构和功能 光耦合器通常由以下部分组成: 1.LED(发光二极管&#…

Bone Collector-动态规划题解

Bone Collector Problem - 2602 (hdu.edu.cn)https://acm.hdu.edu.cn/showproblem.php?pid2602 Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’…

Ubuntu18 中JDK的安装

文章目录 一、背景说明二、获取安装包三、安装JDK3.1 上传安装包3.2 复制和解压3.3 环境变量的设置3.4 验证安装 四、问题列表4.1 .bashrc文件在哪里?.bashrc是什么?4.2 为什么使用rz上传安装包时会报: 传输失败? 五、总结 一、背…

SpringBoot项目中将word转换为pdf

需求&#xff0c;用户将用户上传的word文件转换成为pdf格式&#xff0c;然后返回 第一步&#xff1a;引入依赖 <dependency><groupId>aspose</groupId><artifactId>aspose-words</artifactId><version>15.8.0-jdk16</version></…

走进标杆 | 宁波市领导一行至金鸡强磁开展专项调研活动

为深入了解supOS助力宁波打造数实融合标杆城市的实践成果&#xff0c;日前&#xff0c;宁波市领导和专家共赴蓝卓supOS标杆项目——宁波金鸡强磁股份有限公司&#xff08;以下简称“金鸡强磁”&#xff09;调研考察&#xff0c;蓝卓总经理助理杨明明、浙江大区副总经理章来胜等…

力扣3202:找出有效子序列的最大长度||

class Solution { public:int maximumLength(vector<int>& nums, int k) {int res0;for(int m0;m<k;m){//假设子序列两数%k之后的结果为m 相当于枚举vector<int> v(k,0);for(auto num:nums){v[num%k]v[(m-num%kk)%k]1; //知道m之后可以知道需要的子序列当前…

做外贸如何高效跟进转化客户

做外贸业务&#xff0c;基本上每天要做的几个事情&#xff0c;开发客户、跟进转化客户、维护客户等等&#xff0c;经常也有外贸新手朋友问我&#xff0c;遇到什么什么客户要怎么跟进&#xff0c;客户不回复怎么办等等&#xff0c;今天就来跟大家聊聊客户跟进转化这块的一些问题…

通俗易懂讲解电池的主要性能参数(下)

接上期内容&#xff0c;上次主要分享影响电池性能评估的两个主要性能参数&#xff1a;电池容量和电池功率。可以点击这里回顾&#xff1a;一起学习电池的主要性能参数和测试方法 今日接着分享电池性能评估的另外两个主要性能参数&#xff1a;电池的使用寿命和自放电率。 上期…

react 快速入门思维导图

在掌握了react中一下的几个步骤和语法&#xff0c;基本上就可以熟练的使用react了。 1、组件的使用。react创建组件主要是类组件和函数式组件&#xff0c;类组件有生命周期&#xff0c;而函数式组件没有。 2、jsx语法。react主要使用jsx语法&#xff0c;需要使用babel和webpa…

SSM 整合(Spring + MyBatis;Spring + Spring MVC)

1. SSM 整合(Spring MyBatis&#xff1b;Spring Spring MVC) 文章目录 1. SSM 整合(Spring MyBatis&#xff1b;Spring Spring MVC)2. 引入相关依赖3. SSM 整合3.1 创建包结构 4. Spring 整合 MyBatis4.1 编写 jdbc.properties4.2 编写 DataSourceConfig 数据源配置4.3 编…

样式布局学习:盒模型浮动FlexboxGrid Layout定位(Positioning响应式布局(Responsive Layout):

看视频确实更容易理解&#xff0c;但是花费时间有点长了&#xff0c;以下是一些官方文档网址&#xff08;可切换中文&#xff09;&#xff0c;也算是节省时间了&#xff1a; 在前端开发中&#xff0c;布局样式是非常重要的一部分&#xff0c;它决定了页面中元素的位置和排列方…

wps office 2019 Pro Plus 集成序列号Vba安装版教程

前言 wps office 2019专业增强版含无云版是一款非常方便的办公软件&#xff0c;我们在日常的工作中总会碰到需要使用WPS的时候&#xff0c;它能为我们提供更好的文档编写帮助我们更好的去阅读PDF等多种格式的文档&#xff0c;使用起来非常的快捷方便。使用某银行专业增强版制作…

snmp++操作之trap

文章目录 snmp六种操作简述Get&#xff08;获取操作&#xff09;&#xff1a;Get Next&#xff08;获取下一个操作&#xff09;&#xff1a;Get Bulk&#xff08;批量获取操作&#xff09;&#xff1a;Set&#xff08;设置操作&#xff09;&#xff1a;Inform&#xff08;通知操…

数据建模标准-面向对象建模

前情提要 数据模型定义 DAMA数据治理体系中将数据模型定义为一种文档形式&#xff0c;数据模型是用来将数据需求从业务传递到IT,以及在IT内部从分析师、建模师和架构师到数据库设计人员和开发人员的主要媒介&#xff1b; 作用 记录数据需求和建模过程中产生的数据定义&…

任意空间平面点云旋转投影至水平面—罗德里格旋转公式

1、背景介绍 将三维空间中位于任意平面上的点云数据&#xff0c;通过一系列的坐标变换&#xff08;平移旋转&#xff09;&#xff0c;使其投影到XOY平面上&#xff0c;同时保证点云的几何中心与XOY平面的原点重合&#xff0c;同时点云形状保持不变。具体效果如下&#xff0c;具…

51单片机8(LED闪烁)

一、软件设计&#xff1a; 1、本章所要实现的功能是&#xff1a;点亮D1指示灯&#xff0c;即让P2.0管脚输出一个低电平。完成后可再控制D1指示灯闪烁&#xff0c;即间隔一段时间点亮和熄灭D1指示灯。那么如何让LED进行闪烁&#xff0c;那么只需要循环的让这个低指针先亮一会&a…