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,一经查实,立即删除!

相关文章

磁力搜索器,解读新一代的搜索引擎方式,磁力王、磁力猫等引擎的异同及原理

最近国内几年,不依赖追踪服务器的磁力搜索开始流行,成为新的资源搜索的方式。 我们平常所说的磁力王(jigecili.com)、磁力猫(yinghuacili.com)、bt磁力(btcili.cn)、磁力狗最新版(cilizhai.net)、磁力兔子、磁力宝、人…

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

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

计算机网络知识点(五)

目录 一、简述什么是 MSL,为什么客户端连接要等待2MSL的时间才能完全关闭 二、简述 SYN flood,如何防止这类攻击 三、简述TCP 粘包和拆包 四、简述TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别? 五、简述从系统层面上…

个人制作软件是否需要代码签名证书?

在数字化时代,软件安全已成为企业和个人用户关注的焦点。为了保护软件免受恶意篡改和仿冒,代码签名证书应运而生。代码签名证书是一种数字证书,用于对软件进行数字签名和加密,以确保软件在传输过程中的安全性和可靠性。本文将详细…

【西瓜书】第一二章笔记

耽于学业,选择速记,后续再补。本笔记质量不高,敬请谅解。 关键词: 监督学习(Supervised Learning):一种机器学习范式,其中模型在带有标签的数据集上进行训练。标签提供了正确的答案&…

makefile追加warning日志

在Makefile中,你不能直接“追加”warning日志到构建过程中,但你可以通过几种方式在构建时产生额外的警告或消息。以下是一些常用的方法: 使用echo或printf命令: 在Makefile的规则中,你可以使用echo或printf命令来输出警…

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…

【杂记-浅谈OSPF协议和RIP协议区别】

RIP协议和OSPF协议的区别 1、两者概念不同2、运行方式不同3、底层运行方式不同 1、两者概念不同 路由信息协议RIP:分布式的基于距离向量的路由选择协议,RIP着重于数跳数;开放最短路径优先协议OSPF:使用分布式的基于链路状态的路由…

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

目录 一、引言 二、数据孤岛现象及其影响 三、打破数据孤岛,实现数据互联互通 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…

JavaScript保留两位小数

目录 使用toFixed方法 使用Math.round方法 使用toFixed方法 let number 123.456; let result Number(number.toFixed(2)); // 123.46 注意: 1. 返回字符串类型:toFixed 方法返回的是一个字符串类型的值,而不是数字类型。因此&#xf…

gradio快速入门 — Reactive Interfaces

Gradio自动刷新演示。 实时界面 你可以在界面中设置liveTrue让界面自动刷新,这样只要用户输入发生变化,界面就会重新计算。 import gradio as grdef calculator(num1, operation, num2):if operation "add":return num1 num2elif operati…

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

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

Nginx 的配置和运行核心数

查看 Nginx 配置 Nginx 配置文件通常位于 /etc/nginx/nginx.conf 或 /usr/local/nginx/conf/nginx.conf 路径下。你可以使用以下命令查看这个文件的内容: cat /etc/nginx/nginx.conf在配置文件中找到 worker_processes 这一行,其值就是 Nginx 配置的工作…

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

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

windows下安装IntelliJIDEA

windows下安装IntelliJIDEA 步骤1:下载IntelliJ IDEA 打开浏览器并访问IntelliJ IDEA下载页面. https://www.jetbrains.com/idea/download/选择合适的版本: Ultimate:付费版本,包含更多功能,适合专业开发。Community…

内核学习——3、自旋锁的作用及其实现

作用: 保护一段临界区的操作时独占的,不能由其他cpu或者线程同时访问破坏数据结构多核系统SMP: 主要考虑一个cpu进入临界区之后,其他CPU不能再去进入这个临界代码区单核系统: 不能被其他进程抢占单核系统自旋锁实现&am…

深入了解python生成器(generator)

生成器 生成器是 Python 中一种特殊类型的迭代器。生成器允许你定义一个函数来动态产生值,而不是一次性生成所有值并将它们存储在内存中。生成器使用 yield 关键字来逐个返回值。每次调用生成器函数时,函数会在 yield 语句暂停,并记住当前的…