RAG(检索增强生成)的演变:初级 RAG、高级 RAG 和模块化 RAG 架构

大型语言模型(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大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

相关文章

基于ChatGPT的大型语言模型试用心得

近年来,ChatGPT这样的大型语言模型,它如同一颗冉冉升起的新星,迅速在商业、教育、娱乐等多个领域照亮了创新的天空,极大地革新了我们的工作与日常生活。 最近我发现一些国内用户也能自由访问的中文ChatGPT APP。这个平台不仅提供…

10招教你玩转Python循环优化

更多Python学习内容:ipengtao.com 在Python编程中,循环是最常见的控制结构之一。尽管Python的循环语法简单明了,但在处理大量数据或进行复杂计算时,循环可能会成为性能瓶颈。本文将介绍10种加速Python循环的方法,帮助在…

[Linux] 系统的基本架构特点

Linux系统的基本结构 Linux is also a subversion of UNIX,it follows the basic structure of UNIX 内核(kernel): 操作系统的基本部分 管理与硬件相关的功能,分模块进行 常驻模块:进程控制IO操作文件\磁盘访问 用户不能直接访问内核 外壳(s…

数据资产:打破数据孤岛,实现数据互联互通,构建企业智能化转型的重要桥梁。通过高效整合与利用数据资源,推动企业决策的科学化、精准化,助力企业迈向智能化新时代

目录 一、引言 二、数据孤岛现象及其影响 三、打破数据孤岛,实现数据互联互通 1、制定统一的数据标准和管理规范 2、建设统一的数据平台 3、推广数据共享和开放文化 四、数据资产在智能化转型中的重要作用 1、推动企业决策的科学化、精准化 2、优化企业运营…

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法

盘点下常见 HDFS JournalNode 异常的问题原因和修复方法 最近在多个客户现场以及公司内部环境,都遇到了因为 JournalNode 异常导致 HDFS 服务不可用的问题,在此总结下相关知识。 1 HDFS HA 高可用和 JournalNode 概述 HDFS namenode 有 SPOF 单点故障…

【尚庭公寓SpringBoot + Vue 项目实战】移动端项目初始化(十九)

【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化(十九) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化(十九)1、 SpringBoot配置2、Mybatis-Plus配置3、Knife4j配置4、导入基础代码5、导入接口定义代码6…

上海中腾食品科学餐饮管理铸就企业食堂新模式

在当今企业运营中,食堂不仅是员工用餐的场所,更是企业文化和管理水平的体现。随着餐饮行业的不断发展,科学合理的餐饮管理模式成为了企业食堂成功的关键。上海中腾食品科技有限公司以其独特的餐饮管理模式,成功打造了企业食堂的新…

CSS3中鲜为人知但非常强大的 Clip-Path 属性

CSS3中鲜为人知但非常强大的 Clip-Path 属性 在CSS3中,clip-path属性可以让我们快速创建各种各样的不规则图形,而无需使用图片或者复杂的绘图工具。它可以帮助我们实现一些非常出色的视觉效果,但遗憾的是它并不是很常见。 clip-path属性可以接受多种不同的值,比如polygon()、…

静态网页发送基本请求

目录 一、 发送 GET 请求 1.不携带 url 参数的 GET 请求 2.携带 url 参数的 GET 请求 二、发送 POST 请求 三、处理响应 1.获取网页源代码 2.获取图片 一、 发送 GET 请求 当用户在浏览器的地址栏中直接输入某个 URL 地址…

海量数据处理利器 Roaring BitMap 原理介绍

作者:来自 vivo 互联网服务器团队- Zheng Rui 本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用,分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。 一、引言 在进行大数据开发时,…

公域+私域运营思路框架

本次分享公域私域运营思路框架,内容包括私域原则、公域引流、让利思维、价值体系等内容,让你的流量保持高留存、高活跃。

idea 创建properties文件,解决乱码

设置properties文件编码 点击file->Settings File Encodings->设置utf-8 重新创建.properties文件才生效

【Java学习笔记】异常处理

生活中我们在使用一些产品的时候,经常会碰到一些异常情况。例如,使用ATM机取钱的时,机器会突然出现故障导致无法完成正常的取钱业务,甚至吞卡;在乘坐地铁时,地铁出现异常无法按时启动和运行;使用…

本科且非专业学历|艺术自由职业者成功赴美国威斯康星大学麦迪逊分校自费访学

R老师只有本科学历且不是艺术专业,但有独创的艺术作品,其希望在一年的访问学者期间,拓宽艺术视野,同时学习艺术理论,以弥补学术背景薄弱的短板。最终我们为其落实了美国威斯康星大学麦迪逊分校访问学者职位。 R老师背景…

IAR stack usage

c - IAR Stack Usage for STM32 in the map File - Stack Overflow

SAP FICO 下载文件报错【调用数据提供商错误】

报错如下图所示: 解决办法: 当弹出保存文件的提示时,不要点击“记住我的决定”

【MATLAB】语法

MATLAB 基本语法(%{和%}) 赋值 函数名值&#xff1b;for for i1:10循环语句 end//while x0; sum0; while x<100sumsumx;x; end//if if x > 1f x^2 1; elsef 2 * x endswitch onum input(请输入一个数); switch num case -1 //注意case后面没有冒号disp(I am…

昇思25天学习打卡营第1天|基本介绍及快速入门

1.第一天学习总体复盘 1&#xff09;成功注册昇思大模型平台&#xff0c;并成功申请算力&#xff1b; 2)在jupyter环境下学习初学入门/初学教程的内容&#xff1b; 在基本介绍部分&#xff0c;快速撸了一边内容&#xff0c;有了一个基本的了解&#xff08;没理解到位的计划采用…

【尝鲜】SpringCloudAlibaba AI 配置使用教程

1、环境配置 maven依赖pom.xml 注意配置远程仓库&#xff0c;原因见&#xff1a;Unresolved dependency: ‘org.springframework.ai:spring-ai-core:jar:0.8.1’ <dependencies><!--Base--><dependency><groupId>org.springframework.boot</group…

用qq邮箱发送邮件验证码java

添加依赖 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version> </dependency>配置邮箱 实现代码 package com.example.demo.service; import org.springframework.st…