一文读懂:从RAG到多模态RAG

如果说2023年见证了大语言模型的“寒武纪大爆发”,那么2024年则是多模态大模型“元年”。GPT-4o的出现让大家见识到多模态能力引入,给下游应用生态带来的巨大改变。随之而来的,RAG技术也将逐渐从单语言模态的RAG进化到多模态RAG。本文将带大家速览多模态RAG技术的原理及实现。

什么是RAG

什么是RAG: Retrieval Augmented Generation,检索增强生成。是一种结合了信息检索技术和大型语言模型提示功能的框架。它通过从数据源检索信息来辅助LLM生成答案,提高了模型在知识密集型任务中的准确性和可信度。

我们为什么需要RAG: 大型语言模型通常基于固定的历史数据集进行训练,这意味着它们的知识是过时的,无法涵盖最新的信息或特定领域的专业知识。RAG的目的是通过引入额外知识库,检索其中的相关信息,并根据检索结果给予用户回答。这也可以显著减少大模型因为并不具备相关知识,而出现的“幻觉”现象。当然我们也可以直接把整个数据库作为LLM的prompt输入,但由于transformer架构O(N2)复杂度的限制,LLM支持的最长输入长度通常有限,多数支持到128k token已经是极限,使得在面临更长知识库输入时,RAG依然是当下唯一可行的解决方案。

如何实现RAG: 在实际应用时,我们常需要给定一系列文档,并使用RAG方法,让LLM针对这些文档进行检索与交互。RAG的实现主要包含以下几个步骤:

  • 数据准备阶段: 包括数据提取、分块(chunking)、向量化(embedding)、数据入库等环节。数据提取涉及将不同格式的数据(如PDF、Word、数据库等)处理为统一的格式。分块是将大文档分割成较小的、语义完整的单元,以便于后续处理和检索。

  • 检索阶段: 系统根据输入查询检索相关文档或信息。这个阶段依赖于搜索算法和索引方法来快速识别大量集合中最相关的数据。

  • 增强阶段: 将用户查询和检索到的额外上下文放入一个提示模板中,以增强提示。

  • 生成阶段: 使用大型语言模型来针对检索结果,生成对用户的回复。

走向多模态RAG

从RAG的应用可以看出,多数时候,我们需要把一些文档作为RAG的输入,用于检索和生成。而现实应用中,文档通常是以图文交错的形式存在的,比如网页、PDF、PPT文件等等。

通常的做法是,只保留文档中的文本信息。对于PDF文档,则进行OCR文字识别,读取其中的文本。但这样会导致大量图片中至关重要的信息被丢失,以及很多结构化内容的错乱,比如标题、表格、页眉页脚等格式错乱。

改进的做法是,把所有模态信息都转换为纯文本,再进行RAG。我们可以使用多种计算机视觉模型,比如检测模型对文档结构进行识别,然后对文档中不同的模块,使用不同的“广义OCR模型”进行解析。比如对于文本段落,使用OCR模型进行文本识别;对于表格,可以用表格模型进行识别转换为Markdown或LaTeX文本;对于公式,则套用公式识别转换为LaTeX;对于图片,则可使用多模态大模型如GPT-4o进行文本解读(caption),保存为文本描述。有很多开源的工具可以完成这些事情,比如MinerU等。通过解析算法,多模态数据就被完全转换为纯文本的格式了,也就可以照葫芦画瓢套用纯文本的RAG方法了。

我们注意到,使用上述的方法,信息不可避免会存在丢失,而且依赖过多的解析模型。而时间来到2024年,多模态大模型实现了爆发式的技术突破,高分辨率的视觉输入已经取得了巨大突破,使用单一的多模态大模型做广义OCR也变得非常容易。比如QWen2-VL以及InternVL-2等开源多模态大模型,在文档的广义OCR上都有非常好的效果。

多模态大模型成功,让端到端(end-to-end)的算法已经成为了主流。原生多模态的RAG算法也成为了可能:既然多模态大模型有能力理解文本,那我们其实即无需再把图像转换为文本,而可以直接使用图像,提取embedding去做RAG。
在这里插入图片描述

即从图(a)转变为图(b)的模式

DSE

https://arxiv.org/abs/2406.11251
在这里插入图片描述

DSE,即Document Screenshot Embedding,是一个不使用广义OCR的多模态RAG方法,直接把原始文档的扫描图片,切片后,使用视觉语言模型的编码器编码。其对query和docunment使用了双编码的架构。验证了这一想法的可行性。

ColPali

https://arxiv.org/abs/2407.01449

ColPali架构也是利用视觉语言模型来从文档页面的图像中产生高质量的上下文化嵌入。ColPali使用了延迟交互(late interaction)技术,大大提高了检索效率,同时在检索性能上超越了现有的文档检索系统,并且具有更快的处理速度和可端到端训练的特点。上图对比了传统的文档RAG与多模态RAG的区别。因为减少了广义OCR的解析过程,使得处理速度也有了质的提升。

CoPali其实从名字上看,就知道灵感来源于两个工作,PaliGemma和CoBERT。PaliGemma 是 Google 开发的一款具有多模态功能的视觉语言模型,它结合了视觉模型 SigLIP 和大型语言模型 Gemma。“Col” 则来自于ColBERT 的延迟交互编码器。ColPali 算是延迟交互编码器在多模态 RAG 检索的应用,并且极大提高了检索召回的精度。

延迟交互编码结合了双编码器和交叉编码器的优点。在这种架构中,query和文档被分别编码成独立的embedding集合,然后通过一个高效的交互机制来计算它们之间的相似度。

在这里插入图片描述

延迟交互编码的核心思想是将查询和文档的编码过程分开,这样文档的编码可以离线完成,而查询的编码则在在线阶段进行。这种方法的优点是可以在查询时仅对查询进行编码,从而大大提高了处理速度。此外,由于文档的编码是预先完成的,可以将其存储在数据库中,这样就可以对更多的文档进行排序,从而提高查询的精度。

在延迟交互编码中,一个关键的计算是最大相似性(MaxSim)函数,它计算每个查询Token向量与所有文档Token向量之间的相似度,并跟踪每个查询Token的最大得分。查询和文档的总相似度分数是这些最大余弦相似度分数的总和。这种方法允许模型在保持较高排序质量的同时,也具备较高的性能。

随着多模态大语言模型能力的增强,以它为基础的多模态RAG,也早已突破了传统的图像检索的应用方式,而是真正具备大规模非结构化多模态数据深度理解的能力,将会有更多toB的商业应用价值。

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

篇幅有限,部分资料如下:

👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!
在这里插入图片描述
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。

路线图很大就不一一展示了 (文末领取)
在这里插入图片描述

👉大模型入门实战训练👈

💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉国内企业大模型落地应用案例👈

💥两本《中国大模型落地应用案例集》 收录了近两年151个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
在这里插入图片描述

👉GitHub海量高星开源项目👈

💥收集整理了海量的开源项目,地址、代码、文档等等全都下载共享给大家一起学习!
在这里插入图片描述

👉LLM大模型学习视频👈

💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
在这里插入图片描述

👉640份大模型行业报告(持续更新)👈

💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

👉获取方式:

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

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

### 多模态RAG概述 多模态RAG(Retrieval-Augmented Generation)旨在增强传统文本生成模型的能力,使其能够处理多种数据形式。通过引入视觉、音频以及其他类型的输入,这些系统可以提供更丰富的上下文理解能力[^2]。 ### 实现方式 为了构建一个多模态RAG系统,通常会采用如下策略: #### 数据预处理阶段 在这个过程中,来自不同源的数据被转换成统一表示形式以便于后续处理。对于图像和视频这样的非结构化数据来说,这一步骤尤为重要。例如,在处理图片时可能会先提取特征向量作为其代表;而对于语音信号,则可以通过声谱图等方式将其转化为适合机器学习算法使用的格式。 ```python from transformers import CLIPProcessor, CLIPModel model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32") processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32") def preprocess_image(image_path): image = Image.open(image_path) inputs = processor(images=image, return_tensors="pt", padding=True) outputs = model.get_image_features(**inputs) return outputs.detach().numpy() ``` #### 跨模态融合机制设计 当面对包含多个感官通道的任务需求时,如何有效地整合各类感知信息成为了一个挑战。一种常见的做法是在编码器内部建立共享参数空间来促进不同类型表征之间的交互作用;另一种则是利用注意力机制让解码端动态调整对各路输入的关注程度[^1]。 #### 检索模块优化 考虑到实际应用场景下的效率考量,针对大规模数据库快速定位最相关条目的技术也得到了重视和发展。比如借助近似最近邻搜索(ApNN)算法可以在不影响精度的前提下显著缩短查询时间开销。 ### 研究论文推荐 有关此主题的研究成果层出不穷,以下是几篇具有代表性的工作: - **Multimodal Retrieval Augmented Generation for Complex Reasoning over Text and Images**: 探讨了结合文本与图像进行复杂推理的方法论创新。 - **VL-BERT: Pre-training of Generic Visual-Linguistic Representations from Scratch via Multi-task Learning**: 提出了一个可以从头训练通用视语义联合表达框架的新颖思路。 - **Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal Pre-training with Hard Negative Examples**: 阐述了一种用于跨媒体任务的有效解决方案——即通过困难负样本辅助的交叉模式预训练得到广泛适用性的编码网络架构。 ### 应用案例展示 目前已有不少成功的商业产品和服务采用了类似的原理和技术路线: - **搜索引擎改进**:现代互联网巨头们正积极尝试将多媒体元素融入自家平台的核心功能当中去,从而改善用户体验并提高广告投放精准度; - **虚拟助手升级**:新一代AI聊天机器人不仅限于文字对话交流,还能识别用户上传的照片甚至实时捕捉周围环境变化作出回应; - **医疗影像分析工具开发**:医生可借助此类软件迅速获取病历资料摘要的同时查看对应的X光片或CT扫描结果,进而做出更加准确诊断决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值