多模态检索增强生成的简单介绍

news2024/10/11 10:16:18

原文地址:An Easy Introduction to Multimodal Retrieval Augmented Generation 

2024 年 3 月 20 日 

图像和文本的装饰图像被输入计算机并产生合成输出。

如果检索增强生成(RAG) 应用程序可以处理多种数据类型(表格、图形、图表和图表)而不仅仅是文本,那么它的实用性就会呈指数级增长。这需要一个能够通过连贯地解释文本、视觉和其他形式的信息来理解并生成响应的框架。 

在这篇文章中,我们讨论了应对多种模态和方法来构建多模态 RAG 管道的挑战。为了使讨论简洁,我们只关注两种模态:图像和文本。 

为什么多模态很难?

企业(非结构化)数据通常分布在多种模态中,无论是充满高分辨率图像的文件夹还是包含文本表格、图表、图表等的混合的 PDF。 

在处理此类模态传播时,需要考虑两个要点:每种模态都有其自身的挑战以及如何管理跨模态的信息?

每种模态都有其自身的挑战

例如,考虑图像(图 1)。对于左侧的图像,重点更多地放在一般图像上,而不是微小的细节上。注意力只集中在池塘、海洋、树木和沙子等几个关键点上。 

一系列图像,从基本视觉效果到更详细的插图,简洁表达的信息水平不断提高。

图1. 图像中信息表达简洁程度的提高

报告和文档可能包含信息密集的图像,例如图表和图表,其中有许多兴趣点和可以从图像中得出的其他上下文。无论您构建什么管道,都必须捕获并解决这些细微差别,以有效地嵌入信息。

您如何跨模态管理信息?

另一个重要方面是跨不同模态表示信息。例如,如果您正在处理文档,则必须确保图表的语义表示与讨论同一图表的文本的语义表示一致。

多模态检索方法

了解了关键挑战后,以下是构建 RAG 管道以应对这些挑战的具体细节。

构建多模态 RAG 管道有几种主要方法:

  • 将所有模态嵌入到同一向量空间中
  • 将所有模态归结为一种主要模态
  • 对于不同的方式有单独的 stores

为了使讨论简洁,我们只讨论图像和文本输入。

将所有模态嵌入到同一向量空间中

对于图像和文本,您可以使用CLIP等模型在同一向量空间中对文本和图像进行编码。这使得您可以在很大程度上使用相同的纯文本 RAG 基础设施并更换嵌入模型以适应另一种模态。对于生成过程,您可以将所有问答的大语言模型(LLM) 替换为多模态 LLM (MLLM)。

这种方法简化了管道,因为通用检索管道中所需的唯一更改是交换嵌入模型。 

在这种情况下,需要权衡的是获得一个模型,该模型可以有效地嵌入不同类型的图像和文本,并且还可以捕获所有复杂的信息,例如图像中的文本和复杂的表格。

将所有模态归结为一种主要模态

另一种选择是根据应用程序的重点选择主要模态,并将所有其他模态置于主要模态中。 

例如,假设您的应用程序主要围绕 PDF 上基于文本的问答。在这种情况下,您可以正常处理文本,但对于图像,您可以在预处理步骤中创建文本描述和元数据。您还可以存储图像以供以后使用。 

在推理过程中,检索主要根据图像的文本描述和元数据进行,并根据检索的图像类型,通过 LLM 和 MLLM 的混合生成答案。 

这里的主要好处是,从信息丰富的图像生成的元数据对于回答客观问题非常有帮助。这也解决了调整嵌入图像的新模型以及构建重新排序器以对不同模态的结果进行排序的需要。主要缺点是预处理成本和丢失图像的一些细微差别。 

对于不同的方式有单独的stores

排名-重新排名是另一种方法,您可以为不同的模态提供单独的存储,查询它们以检索前N个块,然后让专用的多模态重新排名器提供最相关的块。 

这种方法简化了建模过程,因此您不必调整一个模型即可使用多种模态。然而,它以重新排序器的形式增加了复杂性,以排列现在最上面的M * N块(每个来自M种模态)。 

生成多模态模型

LLM旨在理解、解释和生成基于文本的信息。经过大量文本数据的训练,LLM可以执行一系列自然语言处理任务,例如文本生成、摘要、问答等。

MLLM 可以感知的不仅仅是文本数据。MLLM 可以处理图像、音频和视频等模态,这通常是现实世界数据的组成方式。他们将这些不同的数据类型结合起来,对信息进行更全面的解释,从而提高预测的准确性和稳健性。 

这些模型可以执行广泛的任务:

  • 视觉语言理解和生成
  • 多模态对话
  • 图像字幕 
  • 视觉问答(VQA) 

这些都是 RAG 系统在处理多种模态时可以受益的任务。要更深入地了解 MLLM 如何处理图像和文本,需要了解这些模型的构建方式。 

MLLM 的流行子类型之一是Pix2Struct,这是一种预训练的图像到文本模型,可以通过其新颖的预训练策略对视觉输入进行语义理解。顾名思义,这些模型生成从图像中提取的结构化信息。例如,Pix2Struct模型可以从图表中提取关键信息并以文本形式表达。

了解了这一点后,您可以按照以下步骤构建RAG 管道。

构建多模态 RAG 管道

为了展示如何处理不同形式的数据,我们将引导您完成索引多个技术帖子的应用程序,例如使用 NVIDIA H100 GPU 打破 MLPerf 训练记录。这篇文章包含复杂的图像,这些图像是带有富文本、表格数据,当然还有段落的图表和图形。 

以下是开始处理数据和构建 RAG 管道之前所需的模型和工具:

  • MLLM:用于图像字幕和 VQA。
  • LLM:一般推理和问题回答。
  • 嵌入模型:将数据编码为向量。
  • 矢量数据库:存储编码矢量以供检索。

解释多模态数据并创建矢量数据库

构建 RAG 应用程序的第一步是预处理数据并将其作为向量存储在向量存储中,以便您可以根据查询检索相关向量。 

对于数据中存在的图像,下面是一个通用的 RAG 预处理工作流程(图 2)。 

演示用于处理包含图像的数据的 RAG 预处理工作流程,展示从数据摄取到处理和分析的步骤顺序。

图 2. 带图像的数据的一般 RAG 预处理工作流程

该帖子包含几个条形图,如图 3 所示。要解释这些条形图,请使用 Google 的DePlot,这是一种视觉语言模型,与LLM结合使用时能够理解图表和绘图。该模型可在 NGC 上找到。

有关在 RAG 应用程序中使用 DePlot API 的更多信息,请参阅使用优化的 DePlot 模型查询图。

要使用 MLLM 分析的条形图图像

图 3. PDF 中的条形图示例,包括标题

此示例重点介绍图表和绘图。其他文档可能包含可能需要模型定制来处理专门图像的图像,例如医学图像或示意图。这取决于用例,但您有多种选择来解决图像中的这种差异:调整一个 MLLM 来处理所有类型的图像,或者为不同类型的图像构建模型集合。 

为了使解释简单,这是一个包含两个类别的简单集成案例: 

  • 使用DePlot处理带有图形的图像
  • 其他要使用 MLLM(如KOSMOS2)处理的图像

在这篇文章中,我们扩展了预处理管道,以更深入地处理管道中的每种模态,利用自定义文本拆分器、自定义 MLLM 和 LLM 来创建 VectorDB(图 4)。

该图显示了提取文本、分离图像和文本、构建图像描述、将表格线性化为文本、分割文本以及其他处理步骤。

图 4. 使用定制 MLLM 处理不同类型图像的 RAG 预处理工作流程

以下是预处理工作流程中的一些关键步骤:

  • 分离图像和文本
  • 根据图像类型使用 MLLM 对图像进行分类
  • 在 PDF 中嵌入文本
分离图像和文本

目标是将图像转化为文本形式。首先提取和清理数据以分离图像和文本。然后,您可以着手处理这两种模态,最终将它们存储在向量存储中。

根据图像类型使用 MLLM 对图像进行分类

MLLM 生成的图像描述可用于将图像分类,无论它们是否是图形。根据分类,对包含图形的图像使用 DePlot 来生成线性化的表格文本。该文本在语义上与常规文本不同,这给在推理过程中执行搜索时检索相关信息带来了挑战。

我们建议使用线性化文本的摘要作为块存储在向量存储中,并将自定义 MLLM 的输出作为元数据,您可以在推理期间使用。

在 PDF 中嵌入文本

您可以根据正在使用的数据探索各种文本分割技术,以实现最佳 RAG 性能。为简单起见,将每个段落存储为一个块。

与您的矢量数据库对话

通过此管道,您可以成功捕获 PDF 中存在的所有多模态信息。以下是当用户提出问题时 RAG 管道的工作方式。

当用户向系统提出问题时,简单的 RAG 管道会将问题转换为嵌入,并执行语义搜索以检索一些相关的信息块。考虑到检索到的块也来自图像,在将所有块发送到 LLM 以生成最终响应之前,请执行一些额外的步骤。

图 5 显示了如何使用从图像和文本中检索为块的信息来处理用户查询并进行回答的参考流程。 

该图显示了从 Slack 界面、用户查询、NeMo Guardrails、矢量存储和嵌入模型开始的工作流程,分解为相似的块,分离为图像、图表/绘图中的文本和纯文本,最后进入 LLM 进行最终处理回复。

图 5. 使用定制 MLLM 从多模态数据检索信息的 RAG 推理工作流程

下面是一个示例问题,提示支持多模态 RAG 的机器人可以访问感兴趣的 PDF,“具有 3D U-Net 的 NVIDIA A100 和 NVIDIA H100(v2.1) 之间的性能差异是什么?”

该管道成功检索了相关图形图像,并准确地解释了它,在 3D U-Net 基准测试中,NVIDIA H100 (v2.1) 每个加速器的相对性能比 NVIDIA A100 高出 80%。

该示例展示了 RAG 管道能够回答涉及 NVIDIA 开发人员博客文章中的文本和图像的问题。

图 6. 问题示例以及从NVIDIA 开发者博客的条形图中提取的答案

以下是执行搜索并检索前五个相关块后处理问题所涉及的一些关键步骤: 

  • 如果块是从图像中提取的,MLLM 会将图像和用户问题一起作为输入来生成答案。这只不过是一个 VQA 任务。然后,生成的答案将用作LLM做出响应的最终上下文。
  • 如果从图表或图中提取块,请调用存储为元数据的线性化表,并将文本作为上下文附加到 LLM。
  • 最后,来自纯文本的块按原样使用。

所有这些块以及用户问题现在都已准备好供LLM生成最终答案。根据图 6 中列出的来源,机器人参考了显示不同基准上的相对性能的图表,以生成准确的最终响应。 

扩展 RAG 管道

这篇文章涉及使用跨多种模态的数据来回答简单的基于文本的问题的场景。为了进一步发展多模态 RAG 技术并扩展其功能,我们建议进行以下研究领域。

解决包含不同模态的用户问题

考虑一个由包含图表和问题列表的图像组成的用户问题,需要对管道进行哪些更改才能适应这种类型的多模态请求?

多模态反应

基于文本的答案提供了代表其他模态的引文,如图 6 所示然而,书面解释可能并不总是用户查询的最佳结果类型。例如,多模态响应可以进一步扩展以根据请求生成图像,例如堆叠条形图。

多模态Agents

解决复杂的问题或任务超出了简单的检索的范围。这需要规划、专用工具和摄取引擎。有关更多信息,请参阅LLM 代理简介。

概括

由于 多模态模型的进步以及对 RAG 驱动的工具和服务的需求增加,生成式 AI 应用中的未来多模态功能还有很大的改进和探索空间。 

能够将多模态功能集成到其核心运营和技术工具中的企业能够更好地扩展其人工智能服务和产品,以适应尚未列出的用例。 

获得在 GitHub 中实施多模态 RAG 工作流程的实践经验。

Related resources

  • GTC session: RAG: Overview of Design Systems, Data, and Customization
  • GTC session: 通过多模态检索增强生成解决非结构化企业数据的挑战
  • GTC session: Techniques for Improving the Effectiveness of RAG Systems
  • Webinar: Building Intelligent AI Chatbots Using RAG
  • Webinar: Bringing Generative AI to Life with NVIDIA Jetson
  • Webinar: Fast-Track to Generative AI With NVIDIA

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

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

相关文章

【能省则省】搭建网站仅50/年 云服务器选择建议 程序员职场刚需云产品 附最新价格对比表

《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准! 【腾讯文档实时更新】云服务器1分钟教会你如何选择教程 2024-开年采购活动 云服务器专区 京东云 阿里云 腾讯云 配置最新价格表 与 官方活动地址 ​ 当前活动…

Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器

Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器 1、什么是Docker Swarm?2、Docker Swarm 与 Docker Compose的区别3、创建一个Swarm集群(1-Manager,2-Worker)1、资源准备2、初始化Swa…

机器人姿态估计-IMU、互补滤波算法应用

机器人姿态估计-IMU、互补滤波算法应用 附赠自动驾驶学习资料和量产经验:链接 机器人的姿态测量对于许多应用至关重要,如导航、运动控制等。在这篇文章中,我们将介绍如何利用MPU6050传感器以及互补滤波和卡尔曼滤波算法来实现自平衡车的姿态…

vue 实现自定义分页打印 window.print

首先这里是我自定义了打印界面才实现的效果,如果不用自定义界面实现,应该是一样的吧。具体可能需要自己去试试看 我的需求是界面有两个表格,点击全部打印,我需要把第一表格在打印是第1页,第二个表格是第二页 如图&…

二十二、软考-系统架构设计师笔记-真题解析-2018年真题

软考-系统架构设计师-2018年上午选择题真题 考试时间 8:30 ~ 11:00 150分钟 1.在磁盘调度管理中,应先进行移臂调度,再进行旋转调度。假设磁盘移动臂位于21号柱面上,进程的请求序列如下表所示。如果采用最短移臂调度算法,那么系统…

ensp中pc机访问不同网络的服务器

拓扑图如下,资源已上传 说明:pc通过2个路由访问server服务器 三条线路分别是192.168.1.0网段,192.168.2.0网段和192.168.3.0网段,在未配置的情况下,pc设备是访问不到server的 具体操作流程 第一;pc设备…

C# 操作 Word 全域查找且替换(含图片对象)

目录 关于全域查找且替换 Word应用样本 SqlServer数据表部分设计样本 范例运行环境 配置Office DCOM 设计实现 组件库引入 实现原理 查找且替换的核心代码 窗格内容 页眉内容 页脚内容 形状内容 小结 关于全域查找且替换 C#全域操作 Word 查找且替换主要包括如下…

CSGO赛事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 目录 1. 系…

QT数据类型和容器用法

Qt库提供了基于通用模板的容器类, 这些类可用于存储指定类型的数据项,Qt中这些容器类的设计比STL容器更轻,更安全且更易于使用。容器类也都是隐式共的,它们是可重入的,并且已针对速度/低内存消耗和最小的内联代码扩展进行了优化&a…

RabbitMQ基础笔记

视频链接:【黑马程序员RabbitMQ入门到实战教程】 文章目录 1.初识MQ1.1.同步调用1.2.异步调用1.3.技术选型 2.RabbitMQ2.1.安装2.1.1 Docker2.1.1 Linux2.1.1 Windows 2.2.收发消息2.2.1.交换机2.2.2.队列2.2.3.绑定关系2.2.4.发送消息 2.3.数据隔离2.3.1.用户管理2…

Elasticsearch:语义搜索即服务处于卓越搜索的中心

作者:来自 Elastic Sherry Ger, Stephen Brown 对于许多企业来说,搜索卓越中心(center of excellence - COE)向其用户提供搜索服务,从不同的数据源中整理知识,并将搜索功能集成到其内部和外部应用程序中。…

神策数据参与制定首份 SDK 网络安全国家标准

国家市场监督管理总局、国家标准化管理委员会发布中华人民共和国国家标准公告(2023 年第 13 号),全国信息安全标准化技术委员会归口的 3 项国家标准正式发布。其中,首份 SDK 国家标准《信息安全技术 移动互联网应用程序&#xff0…

如何配置本地ssh连接远程Linux服务器

1.条件 本地操作系统Ubuntu远程服务器(Linux都可以) 本地如果是Window,其实也一样,但是需要先下载ssh和putty工具,然后操作步骤是一样的 2.生成ssh公私钥对 # 在本地重新生成SSH公私钥对非常简单,在你的命令行终端&a…

词令关键词口令直达工具:打开「词令」输入关键词直达口令怎么使用?

词令是一款关键词口令直达工具;使用词令关键词口令直达工具,输入指定的词令关键词直达口令,搜索直达该词令关联的网站、页面、程序、应用、服务或功能等等,实现一键直达目标,避免繁琐的查找点击行为,提高用…

报错 /core/library/think/cache/driver/File.php 第 126 行左右(已解决)

报错 /core/library/think/cache/driver/File.php 第 126 行左右 解决方法: 网站后台版本低于v1.5.2出现的缓存问题,如果无法登录后台了,就通过FTP,把 /data/runtime 里的都删掉,然后进后台升级到最新版 一、进入宝…

初步了解JavaSE

目录 前言: 一、Java SE主要包含模块: 二、JavaSE的环境搭建 三、JavaSE简单入门 1)文件名称不对,如果有一个叫 helloworld.java,但是class命名为HelloWord. 2)如果希望我们文件名称和类名不一致&…

光耦合器电路基本概述

在当今快速发展的技术环境中,光耦合器电路在确保电信号跨隔离电路的无缝传输方面发挥着关键作用。这些半导体器件通常被称为光电隔离器,具有许多优点,包括电路隔离、信号传输和精确的电路控制。然而,如果不全面了解市场上各种光耦…

【漏洞复现】通天星CMSV6 admin 弱口令漏洞(CVE-2024-29666)

0x01 产品简介 CMSV6平台是基于车辆位置信息服务和实时视频传输服务的创新技术和开放运营理念。为GPS运营商车辆硬件设备制造商、车队管理企业等车辆运营相关企业提供核心基础数据服务。 0x02 漏洞概述 CMSV6 7.31.0.2、7.32.0.3版本中存在弱密码漏洞,未授权的攻…

俄罗斯深陷芯片自主困境,良率仅5成 |百能云芯

俄罗斯的芯片产业一直以来都面临着诸多挑战,尤其是在当前的国际形势下,这些挑战更加凸显。随着俄乌冲突的爆发,西方国家对俄罗斯实施了一系列经济制裁,导致俄罗斯科技产业受到了严重影响。据了解,俄国最大的本土芯片厂…

GooglePlay无法下载应用问题

问题如下 解决方法 1、实际上是因为google尚未添加apk downloader扩展程序 2、添加该扩展程序后,在应用中搜索应用名即可 欧克!下载完成