LLMs之RAG:解读RAG主流的七类架构(Naive RAG/Retrieve-and-rerank/Multimodal RAG/GraphRAG/HybridRAG/Agentic RAG(Ro

LLMs之RAG:解读RAG主流的七类架构(Naive RAG/Retrieve-and-rerank/Multimodal RAG/GraphRAG/HybridRAG/Agentic RAG(Router)/Agentic RAG(Multi-Agent))

目录

解读RAG主流的七类架构(Naive RAG/Retrieve-and-rerank/Multimodal RAG/GraphRAG/HybridRAG/Agentic RAG(Router)/Agentic RAG(Multi-Agent))


解读RAG主流的七类架构(Naive RAG/Retrieve-and-rerank/Multimodal RAG/GraphRAG/HybridRAG/Agentic RAG(Router)/Agentic RAG(Multi-Agent))

原图地址:https://x.com/weaviate_io/status/1866528335884325070

2024年12月11日,Weaviate(开源向量数据库)在官方社交媒体帖子,发布了七种最流行的RAG架构原理图。从图中可以看出,Retrieval-Augmented Generation(RAG)被划分为多种架构,每种架构在检索与生成的结合方式上有所不同,适用于不同的场景需求。这些RAG架构的多样性展示了技术的发展趋势,针对不同应用场景进行了优化设计。从简单的检索生成到复杂的多模态、多代理协作,每种架构都有其独特的优点和适用范围。博主进一步解读,如下表格所示:

架构名称

核心原理

优点

缺点

适应场景

Naive RAG

基于文档分块,通过检索机制获取相关内容,直接将结果输入生成模型生成答案。

>> 文本分块、检索机制、生成模型

简单易实现,计算成本低。

容易出现事实错误或语义不一致,无法处理复杂的上下文管理任务。

基础的问答任务,对精度要求不高,数据量较小的情况。

Retrieve-and-rerank

在基础RAG上新增重排序模块,对检索结果重新排序优化其相关性,确保生成模型输入更加相关的上下文信息。

>> 初步检索、重排序模型、生成模型

可以提高检索结果的准确性,减少噪声数据的影响。

计算成本相对较高,需要设计有效的重排序算法。

高精度问答,如法律文档、技术文档的精准查询和回答。

Multimodal RAG

支持多模态输入(文本、图像、视频等),利用多模态嵌入和生成模型进行检索和生成。

>> 文本与图像处理、模态融合

能够处理和理解多模态数据,适配能力强,可提高生成结果的准确性和丰富性。

实现复杂,计算成本高,需要大量的多模态数据

涉及图片、视频等多模态数据的问答,如电商推荐、图像描述生成、视频问答。

Graph RAG

文档表示为图结构(图数据库),通过图节点和边(图神经网络)的关联挖掘文档之间的语义和逻辑关系,强化上下文关系理解。

>> 图数据库、知识图谱、语义关联

可以有效地捕捉文档之间的关联关系,提高检索结果的准确性。

需要构建和维护图数据库,计算成本相对较高。

需要处理文档之间关系的任务,例如知识图谱问答、复杂关系推理(如医学或科研领域)。适用于知识推理场景。

Hybrid RAG

结合多种检索策略(例如关键词检索、语义向量检索等)进行检索和生成。

>> 图结构、传统检索、知识融合

可以提高检索结果的多样性和覆盖率。

实现复杂,需要协调多种检索方法。

需要同时考虑多种检索策略才能更好地满足需求的场景。

Agentic RAG (Router)

利用路由机制,根据查询动态选择检索源和生成模型,针对性地生成响应。

>> AI Agent、智能路由、资源选择

动态选择能力强,资源利用效率高,能够应对多变的任务需求。

路由策略设计较复杂,对任务分类准确性依赖高。

多数据源、多任务类型场景,如需要跨API、数据库和生成模型的集成应用。

Agentic RAG (Multi-Agent)

利用多个AI Agent分别负责不同的检索任务或数据源,多代理协作,每个代理专注于不同的数据源或任务(如搜索引擎、企业应用、邮件系统等,然后将结果整合到一起生成答案。

>> 多智能体、任务分配、工具协作

高度模块化,强大的并行处理多个检索任务,适应性极高,高效率。

代理之间的协调较复杂,对系统设计和通信机制要求高。

超复杂的大规模任务,需要多个代理协同完成的场景,例如多轮对话、复杂推理等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

99.20 金融难点通俗解释:中药配方比喻马科维茨资产组合模型(MPT)

目录 0. 承前1. 核心知识点拆解2. 中药搭配比喻方案分析2.1 比喻的合理性 3. 通俗易懂的解释3.1 以中药房为例3.2 配方原理 4. 实际应用举例4.1 基础配方示例4.2 效果说明 5. 注意事项5.1 个性化配置5.2 定期调整 6. 总结7. 代码实现 0. 承前 本文主旨: 本文通过中…

python算法和数据结构刷题[1]:数组、矩阵、字符串

一画图二伪代码三写代码 LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中)-CSDN博客 算法通关手册(LeetCode) | 算法通关手册(LeetCode) (itcharge.cn) 面试经典 150 题 - 学习计…

EWM 变更库存类型

目录 1 简介 2 配置 3 业务操作 1 简介 一般情况下 EWM 标准收货流程是 ROD(Ready on Dock) --> AFS(Avaiable for Sale),对应 AG 001 --> AG 002,对应库存类型 F1 --> F2。 因业务需要反向进行的时候,AFS --> ROD,AG 002 --> AG 001,库存类型 F2…

B站吴恩达机器学习笔记

机器学习视频地址: 4.5 线性回归中的梯度下降_哔哩哔哩_bilibili 损失函数学习地址: 损失函数选择 选凸函数的话,会收敛到全局最小值。证明凸函数用Hessian矩阵。凸函数定义:两点连线比线上所有点都大。 batch理解&#xff1…

SpringBoot 数据访问(MyBatis)

SpringBoot 数据访问(MyBatis) 向 SQL 语句传参 #{} 形式 #{}:如果传过来的值是字符串类型。那两边会自动加上 单引号。当传递给 #{} 的参数值是非字符串类型(如整数、浮点数、布尔值等),MyBatis 不会为这些值添加引…

【游戏设计原理】93 - 节奏

与“序-破-急”类似的节奏概念广泛存在于全球不同文化和创意领域中。以下是一些常见的节奏框架和理论,它们与“序-破-急”在本质上有相似之处,但体现出不同的风格和应用: 1. 三幕式结构(Three-Act Structure) 来源&a…

蓝桥云客 三羊献瑞

三羊献瑞 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 观察下面的加法算式: 祥 瑞 生 辉 三 羊 献 瑞 -------------------三 羊 生 瑞 气其中,相同的汉字代表相同的数字,…

OpenCV:二值化与自适应阈值

目录 简述 1. 什么是二值化 2. 二值化接口 2.1 参数说明​​​​​ 2.2 示例代码 2.3 运行结果 3. 自适应阈值 3.1 参数说明 3.2 示例代码 3.3 运行结果 4. 总结 4.1 二值化 4.2 自适应阈值 相关阅读 OpenCV:图像的腐蚀与膨胀-CSDN博客 简述 图像二值…

【memgpt】letta 课程6: 多agent编排

Lab 6: Multi-Agent Orchestration 多代理协作 letta 是作为一个服务存在的,app通过restful api 通信 多智能体之间如何协调与沟通? 相互发送消息共享内存块,让代理同步到不同的服务的内存块

Java---猜数字游戏

本篇文章所实现的是Java经典的猜数字游戏 , 运用简单代码来实现基本功能 目录 一.题目要求 二.游戏准备 三.代码实现 一.题目要求 随机生成一个1-100之间的整数(可以自己设置区间),提示用户猜测,猜大提示"猜大了",…

STM32标准库移植RT-Thread nano

STM32标准库移植RT-Thread Nano 哔哩哔哩教程链接:STM32F1标准库移植RT_Thread Nano 移植前的准备 stm32标准库的裸机代码(最好带有点灯和串口)RT-Thread Nano Pack自己的开发板 移植前的说明 本人是在读学生,正在学习阶段&a…

使用Navicat Premium管理数据库时,如何关闭事务默认自动提交功能?

使用Navicat Premium管理数据库时,最糟心的事情莫过于事务默认自动提交,也就是你写完语句运行时,它自动执行commit提交至数据库,此时你就无法进行回滚操作。 建议您尝试取消勾选“选项”中的“自动开始事务”,点击“工…

AutoDL 云服务器:xfce4 远程桌面 终端乱码 + 谷歌浏览器

/usr/bin/google-chrome-stable --no-sandbox --proxy-server"127.0.0.1:7890" 打开新的PowerShell ssh -p 54521 rootconnect.yza1.seetacloud.com /opt/TurboVNC/bin/vncserver -kill :1 rm -rf /tmp/.X1* USERroot /opt/TurboVNC/bin/vncserver :1 -desktop …

《STL基础之vector、list、deque》

【vector、list、deque导读】vector、list、deque这三种序列式的容器,算是比较的基础容器,也是大家在日常开发中常用到的容器,因为底层用到的数据结构比较简单,笔者就将他们三者放到一起做下对比分析,介绍下基本用法&a…

JavaScript网页设计案例(任务管理器)

任务管理器 功能描述:用户可以添加任务、删除任务,并且任务列表在页面刷新后不会丢失,还能进行任务过滤与搜索。代码实现思路 HTML 结构:创建输入框用于输入任务、按钮用于添加任务,以及无序列表用于展示任务列表。CSS…

模型I/O功能之模型包装器

文章目录 模型包装器分类LLM模型包装器、聊天模型包装器 截至2023年7月,LangChain支持的大语言模型已经超过了50种,这其中包括了来自OpenAI、Meta、Google等顶尖科技公司的大语言模型,以及各类优秀的开源大语言模型。对于这些大语言模型&…

机器人抓取与操作经典规划算法(深蓝)——2

1 经典规划算法 位姿估计:(1)相机系位姿 (2)机器人系位姿 抓取位姿:(1)抓取位姿计算 (2)抓取评估和优化 路径规划:(1)笛卡…

开发环境搭建-4:WSL 配置 docker 运行环境

在 WSL 环境中构建:WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 基本概念说明 容器技术 利用 Linux 系统的 文件系统(UnionFS)、命名空间(namespace)、权限管理(cgroup),虚拟出一…

【2024年华为OD机试】(B卷,100分)- 热点网站统计(Java JS PythonC/C++)

一、问题描述 题目描述 企业路由器的统计页面需要动态统计公司访问最多的网页URL的Top N。设计一个算法,能够高效动态统计Top N的页面。 输入描述 每一行都是一个URL或一个数字: 如果是URL,代表一段时间内的网页访问。如果是数字N&#…

Git图形化工具【lazygit】

简要介绍一下偶然发现的Git图形化工具——「lazygit」 概述 Lazygit 是一个用 Go 语言编写的 Git 命令行界面(TUI)工具,它让 Git 操作变得更加直观和高效。 Github地址:https://github.com/jesseduffield/lazygit 主要特点 主要…