查看原文
其他

NVIDIA介绍什么是RAG(2篇)

常华Andy Andy730
2025-01-01
什么是检索增强生成(RAG)?

Source:Rick Merritt; What Is Retrieval-Augmented Generation, aka RAG?; November 15, 2023

若要深入了解生成式AI的最新动态,我们可以借助法庭的比喻来进行思考。

法官基于他们对法律的整体认知来审理案件并作出判决。然而,面对某些特殊案件,如医疗事故或劳动争议,法官可能需要借助更为专业的知识。这时,他们会指派法庭书记员前往法律图书馆,寻找相关的先例和具体案例以供参考。

大型语言模型(LLM)就如同一位出色的法官,能够应对各类人类提出的问题。然而,为了提供权威且带有引用来源的答案,模型需要一个助手来进行相应的研究。

在AI领域,这位“法庭书记员”的角色便是由检索增强生成(RAG)过程来扮演的。

关于“RAG”的由来

帕特里克·刘易斯(Patrick Lewis)是2020年那篇开创性论文的主要作者,正是他创造了这一术语。对于这一如今被广泛应用于数百篇论文和数十种商业服务的首字母缩略词,刘易斯表示歉意,他认为这代表了生成式AI的未来发展趋势。

刘易斯在新加坡的一次采访中说道:“如果我们当初知道我们的工作会如此广泛地被接受,我们肯定会更慎重地考虑这个名字。”当时,

“我们原本打算给它取一个更悦耳的名字,但在撰写论文时,大家都没有更好的想法。”刘易斯现在领导着AI初创公司Cohere的RAG团队,他这样补充道。

那么,究竟什么是检索增强生成(RAG)呢?

检索增强生成(RAG)是一种通过从外部资源获取事实来增强生成式AI模型准确性和可靠性的技术。

换句话说,它弥补了LLM工作原理中的一个空缺。LLM本质上是神经网络,其性能通常通过其包含的参数数量来衡量。这些参数基本上反映了人类使用词语构成句子的普遍规律。

这种深入理解,有时被称为参数化知识,使得LLM能够迅速速度响应一般性的提示。然而,对于那些希望深入探究当前或更具体主题的用户来说,它并不足以满足需求。

结合内部与外部资源

刘易斯和他的同事们开发了检索增强生成技术,将生成式AI服务与外部资源连接起来,特别是那些包含最新技术细节的资源。

这篇论文是与前FacebookAI研究部门(现为Meta AI)、伦敦大学学院和纽约大学的合著者共同撰写的,他们称RAG为“一种通用的微调方法”,因为它几乎可以被任何LLM用来连接任何外部资源。

增强用户信任

检索增强生成为模型提供了可引用的来源,就像研究论文中的脚注一样,用户可以核查任何声明,从而增强了信任。

此外,这项技术还有助于模型消除用户查询中的歧义,并降低了模型因猜测错误而产生幻觉现象的可能性。

RAG的另一大优势在于其相对简单的实现过程。刘易斯和论文的三位合著者在一篇博客中表示,开发人员只需五行代码就能实现这一过程。

这使得该方法比使用额外数据集对模型进行重新训练更为迅速和经济。同时,它还允许用户在运行过程中即时更换新的数据源。

RAG的应用场景

通过检索增强生成技术,用户可以与数据存储库进行对话,从而开启全新的体验方式。这意味着RAG的应用潜力可能是现有数据集数量的数倍。

例如,一个与医学索引相结合的生成式AI模型可以成为医生或护士的得力助手。金融分析师也将受益于与市场数据相关联的助手。

事实上,几乎任何企业都可以将其技术或政策手册、视频或日志转化为名为知识库的资源,以增强LLM的能力。这些资源能够应用于多种场景,比如客户或现场支持、员工培训以及开发人员工作效率提升等。

正是由于RAG具有如此广泛的潜力,包括AWS、IBM、Glean、Google、Microsoft、NVIDIA、Oracle和Pinecone在内的众多公司都在积极采用这项技术。

开始使用检索增强生成

为了帮助用户轻松上手,NVIDIA精心打造了一款针对检索增强生成的AI工作流。它包含一个示例聊天机器人,以及构建个性化应用程序所需的各项要素。

该工作流基于NVIDIA NeMo框架,该框架专门用于开发和定制生成式AI模型。同时,它还支持NVIDIA Triton Inference Server和NVIDIA TensorRT-LLM等软件,确保生成式AI模型在生产环境中顺畅运行。

这些软件组件共同构成了NVIDIA AI Enterprise的核心,为用户提供一个功能强大、安全稳定、易于部署的软件平台,助力生产就绪AI的开发与应用。

在使用RAG工作流时,为获得最佳性能,通常需要大量的内存和计算资源来处理数据。在这方面,NVIDIA GH200 Grace Hopper超级芯片以其288GB的快速HBM3e内存和高达8 petaflops的计算能力成为理想之选。相较于CPU,它可带来高达150倍的加速度,显著提升工作效率。

一旦企业熟悉RAG技术,便可轻松将现成的或定制的LLM与内部或外部知识库相结合,创造出各式各样的助手,以支持员工和客户的工作。

值得一提的是,RAG无需依赖数据中心。借助NVIDIA软件的强大支持,LLM得以在Windows PC上首次亮相,用户甚至可以在笔记本电脑上轻松访问各种应用程序。

在个人电脑上运行RAG

RAG在个人电脑上的应用案例屡见不鲜。如今,配备NVIDIA RTX GPU的个人电脑已具备在本地运行部分AI模型的能力。通过个人电脑上的RAG,用户可以轻松链接至私人知识来源,如电子邮件、笔记或文章,从而提升回答的准确性和相关性。同时,用户可以放心,他们的数据来源、提示和回答均将得到严格保护,确保私密性和安全性。

最近,一篇博客文章详细介绍了如何通过TensorRT-LLM加速在Windows上运行的RAG,实现更快速、更优质的结果输出。

RAG的历史

该技术的起源可以追溯到至少20世纪70年代早期。当时,信息检索领域的研究人员开发了一种他们称之为问答系统的原型,这种应用使用自然语言处理(NLP)技术来访问文本,最初仅限于棒球等特定领域。

尽管文本挖掘背后的概念多年来保持相对稳定,但驱动其发展的机器学习引擎却取得了显著进步,大大提升了实用性和受欢迎程度。

在1990年代中期,Ask Jeeves服务(现为Ask.com)凭借其形象鲜明的男仆吉祥物,使问答系统广受欢迎。而到了2011年,IBM的沃森(Watson)在“Jeopardy!”游戏节目中击败两位人类冠军,成为家喻户晓的电视明星。

来自伦敦实验室的洞察

这篇开创性的2020年论文发布时,刘易斯正在伦敦大学学院攻读自然语言处理博士学位,并在Meta位于伦敦的新AI实验室工作。该团队致力于寻找一种方法,将更多知识融入LLM的参数中,并通过自主开发的基准来衡量其进展。

在前期研究的基础上,并受到谷歌研究人员论文的启发,该团队逐渐形成了这样一个引人注目的愿景:构建一个训练有素的系统,该系统内置检索索引功能,从而能够学习并生成任何所需的文本输出。刘易斯回忆道:“当我们把来自Meta另一个团队的有前景的检索系统与我们正在进行的工作相结合时,首批结果出乎意料地令人印象深刻。”

刘易斯还表示,这项工作的成功主要归功于团队成员伊桑·佩雷斯(Ethan Perez)和道韦·基耶拉(Douwe Kiela),他们分别来自纽约大学和FacebookAI研究部门。

完成后,这项工作在一组NVIDIA GPU上成功运行,充分展示了如何使生成式AI模型更具权威性和可信度。自那时起,已有数百篇论文引用了这一成果,这些论文进一步扩展了相关概念,使得这一领域的研究持续保持活跃。

检索增强生成的工作原理

在宏观层面,以下是NVIDIA技术简报对RAG过程的描述。

当用户向LLM提出问题时,AI模型会将查询发送至另一个模型,将其转化为数字格式,以便机器进行解析。这种查询的数字版本有时被称为嵌入(embedding)或向量(vector)。

检索增强生成将LLM与嵌入模型和向量数据库紧密结合

随后,嵌入模型将这些数字值与可用知识库中机器可读索引的向量进行比对。一旦找到匹配项或多个匹配项,它会检索相关数据,将其转化为人类易于理解的文字,并传回给LLM。

最后,LLM将检索到的词汇与自身对查询的回应相结合,形成最终答案,并呈现给用户,可能还会引用嵌入模型找到的来源。

确保来源的时效性

在后台,嵌入模型会持续创建并更新机器可读索引,这有时被称为向量数据库,以确保适应新的和更新的知识库。

检索增强生成将LLM与嵌入模型和向量数据库紧密结合

众多开发人员发现LangChain这一开源库尤为实用,它有助于将LLM、嵌入模型和知识库有效地串联起来。NVIDIA在其检索增强生成的参考架构中也采用了LangChain。

展望未来,生成式AI的发展将侧重于创造性地整合各类LLM和知识库,以打造新型助手,为用户提供可验证的权威结果。


多模态检索增强生成简介

Source:Annie Surla, Aditi Bodhankar, Tanay Varshney; An Easy Introduction to Multimodal Retrieval Augmented Generation; Mar 20, 2024

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

本文探讨了处理多模态的挑战以及构建多模态RAG管道的方法。为了保持讨论的聚焦,我们主要关注两种模态,即图像和文本。

为何多模态处理存在难度?

企业(非结构化)数据通常分布在多种模态之间,无论是包含高分辨率图像的文件夹,还是融合了文本表格、图表和图示等多种形式的PDF文档。

在处理这种模态分布时,需要考虑两个核心要点:每种模态自身面临的挑战,以及如何有效管理跨模态的信息。

每种模态的独特挑战

以图像为例(图1)。对于左侧的图像,我们更关注整体画面而非细节。注意力主要集中在几个关键元素上,如池塘、海洋、树木和沙子。

图1. 图像中信息的逐渐简化表达程度

报告和文档可能包含信息密集的图像,如图表和图示,其中有许多关注点和其它可从图像中推导出的内容。无论构建何种管道,都必须捕捉并解决这些细微之处,以有效地嵌入信息。

如何跨模态整合信息?

另一个关键方面是在不同模态之间表达信息。例如,处理文档时,必须确保图表的语义表示与讨论相同图表的文本的语义表示相匹配。

多模态检索策略

在理解主要挑战后,以下是构建RAG管道以应对这些挑战的具体策略。

构建多模态RAG管道的主要方法包括:
  1. 将所有模态嵌入到统一的向量空间中
  2. 将所有模态转化为一个主导模态中
  3. 为不同模态设置独立的存储空间

为简化讨论,本文仅涉及图像和文本输入。

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

对于图像和文本,可以使用诸如CLIP这样的模型,将文本和图像编码到相同的向量空间中。这样一来,在很大程度上,可以沿用相同的仅文本RAG基础架构,只需更换嵌入模型以适应另一种模态。在生成过程中,可以用多模态LLM(MLLM)替换所有问答的大型语言模型(LLM)。

这种方法简化了管道,因为在通用的检索管道中,唯一需要变更的就是替换嵌入模型。

不过,这种方法也存在权衡之处。要想访问能够有效嵌入不同类型的图像和文本,并捕捉所有细微差别的模型(比如图像中的文本和复杂表格),可能并非易事。

2.将所有模态引入一个主导模态中

另一个选择是根据应用程序的重点,选择一个主要模态,并将所有其它模态引入该主要模态中。

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

在推理过程中,检索主要依赖于文本描述和图像元数据,答案则是通过LLM和MLLM的混合生成的,具体取决于检索到的图像类型。

这里的关键优势在于,从信息丰富的图像生成的元数据对回答客观问题非常有帮助。这也解决了需要调整新模型以嵌入图像,以及构建重新排名器以排列来自不同模态的结果的问题。但主要的缺点是预处理成本较高,以及可能丢失图像的某些细微差别。

3.为不同模态设置独立的存储空间

Rank-rerank是另一种方法,即不同模态拥有单独的存储。对它们进行查询以检索前N个块,然后利用专门的多模态重新排列器,提供最相关的块。

这种方法简化了建模过程,因此不必调整一个模型以处理多种模态。然而,它也增加了重新排列器的复杂性,因为需要重新排列现在的前M*N个块(每个从M个模态中选择N个)。

用于生成的多模态模型

LLM主要用于理解、解释和生成基于文本的信息。通过大量文本数据的训练,LLM能够执行多种自然语言处理任务,如文本生成、摘要编写、问答互动等。

而MLLM的功能则不仅限于文本数据。它能处理图像、音频和视频等多种模态数据,这些通常是现实世界数据的组成形式。MLLM将这些不同的数据类型融合,以更全面地解释信息,从而提高预测的准确性和稳定性。

这些模型能够执行的任务包括:
  • 视觉语言理解与生成
  • 多模态对话系统
  • 图像描述
  • 视觉问答(VQA)

这些都是RAG系统在处理多模态数据时能够获益的任务。若要深入了解MLLM如何处理图像和文本,需探究这些模型的构建方式。

MLLM的一个流行子类型是Pix2Struct,它是一个预训练的图像到文本模型。通过独特的预训练策略,该模型实现了对视觉输入的语义理解。正如其名所示,这些模型能从图像中提取结构化信息。例如,Pix2Struct模型可以从图表中提取关键信息,并用文本形式表达出来。

了解这些后,接下来我们探讨如何构建一个RAG管道。

构建多模态RAG管道

为展示如何处理不同的数据模态,我们将介绍一个应用程序,用于索引多个技术文章,如《使用NVIDIA H100 GPU打破MLPerf训练记录》。这篇文章包含复杂的图表和图形,以及丰富的文本、表格数据和段落。

在开始处理数据和构建RAG管道之前,需要准备以下模型和工具:
  • MLLM:用于图像描述和VQA。
  • LLM:用于一般推理和问答。
  • 嵌入模型:将数据编码为向量形式。
  • 向量数据库:存储编码后的向量,便于检索。

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

构建RAG应用程序的首要步骤是对数据进行预处理,并将其存储为向量,以便根据查询检索相关向量。

对于包含图像的数据,以下是一个通用的RAG预处理工作流程(图2)。

图2. 处理包含图像数据的通用RAG预处理工作流程

所讨论的文章中包含几个像图3那样的柱状图。为解释这些柱状图,可以使用Google的DePlot模型,它是一个视觉语言模型。当与LLM配合使用时,DePlot能够理解图表和绘图。该模型可在NGC上获取。

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

图3. 来自PDF的示例柱状图,附带说明文字

这个示例专注于图表和绘图的处理。其它文档可能包含需要定制模型以处理的特殊图像,例如医学图像或示意图。这取决于具体的应用场景,但可以通过以下几种方式来解决这种图像差异性问题:调整一个MLLM以适应所有类型的图像,或者构建一组针对不同类型图像的模型集合。

为简化说明,这里提供一个简单的模型集合案例,分为两类:

  • 使用DePlot处理的图像与图表类

  • 使用类似KOSMOS2的MLLM处理的其它图像类

在本文中,我们扩展了预处理管道,深入探讨了处理流程中每个模态的方法,利用定制的文本分割器、定制的MLLM和LLM来构建VectorDB(图4)。

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

以下是预处理流程中的关键步骤说明:
  1. 图像与文本分离
  2. 使用MLLM按图像类型对图像进行分类
  3. 将PDF中的文本进行嵌入处理

1.图像与文本分离

目标是整合图像和文本模态。首先,需要提取和清理数据,将图像和文本分离开来。随后,可以分别处理这两种模态,并最终将它们存储在向量存储器中。

2.使用MLLM按图像类型进行分类

MLLM生成的图像描述可用于将图像分类为不同的类别,无论它们是否为图表。根据分类结果,对包含图表的图像,我们使用DePlot生成线性化的表格文本。由于这些文本在语义上与常规文本存在差异,因此在推理过程中进行搜索并检索相关信息时会面临挑战。

我们建议使用线性化文本的摘要作为数据块存储在向量存储器中,而将定制MLLM的输出作为元数据使用,这些元数据在推理过程中可以派上用场。

3.PDF中文本的嵌入处理

根据处理的数据类型,可以探索各种基于文本分割的技术,以优化RAG性能。为简化操作,建议将每个段落作为一个数据块进行存储。

与向量数据库的交互

按照上述流程,可以成功捕获PDF中包含的所有多模态信息。当用户提出问题时,RAG管道的工作流程如下。

当用户用问题触发系统时,简单的RAG管道会将问题转换为嵌入,并进行语义搜索以检索相关的信息块。考虑到检索到的块可能包含图像数据,因此在将所有块发送到LLM生成最终响应之前,需要在推理过程中采取一些额外的处理步骤。

图5展示了如何处理用户查询,以便使用从图像和文本中检索的信息块来回答问题的参考流程。

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

以下是一个示例问题,用于提示一个具备对所需PDF访问权限且启用了多模态RAG的机器人:“NVIDIA A100和NVIDIA H100(v2.1)在3D U-Net上的性能差异是多少?”

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

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

在执行搜索并检索出前五个相关块后,处理问题的关键步骤如下:
  • 如果块是从图像中提取的,MLLM将图像与用户问题一起作为输入来生成答案。这实际上是一个视觉问答(VQA)任务。生成的答案随后作为LLM回复的最终上下文。
  • 如果块是从图表或图形中提取的,则调用存储的线性化表格作为元数据,并将文本附加为LLM的上下文。
  • 最后,从纯文本中提取的块将直接使用。

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

扩展RAG管道

本文介绍了使用分布在多个模态之间的数据来回答简单的基于文本的问题的情况。为了进一步发展多模态RAG技术并扩展其功能,我们建议研究以下领域:

处理包含不同模态的用户问题

考虑一个用户问题,其中包含一个包含图表的图像以及一系列问题的列表。为了适应这种多模态请求,我们需要对管道进行哪些变化?

多模态回应

提供基于文本的答案,并包含对其它模态的引用,如图6所示。然而,书面解释并不总是对用户查询的最佳回应方式。例如,多模态响应可以进一步扩展为根据请求生成图像,如堆叠条形图。

多模态代理

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

总结

随着多模态模型的进步以及对基于RAG的工具和服务的需求增长,生成式AI应用在未来有着巨大的多模态能力提升和探索空间。

能够将多模态能力整合到其核心运营和技术工具中的企业,将更有能力扩展其AI服务和产品,以应对尚未列出的应用场景需求。


---【本文完】---

近期受欢迎的文章:

  1. 在AI时代,CXL已死

  2. AMD携手Broadcom,PCIe Gen7交换机与AFL技术,剑指NVIDIA NVLink

  3. 存储为何对AI至关重要 - Solidigm

  4. AI浪潮终于开始惠及戴尔和HPE

  5. AI的未来需要以太网(超级以太网)



更多交流,可添加本人微信

(请附姓名/关注领域)

继续滑动看下一个
Andy730
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存