导读本次分享聚焦于多模态 RAG 的实现路径与发展前景。
核心议题涵盖五方面:
1. 基于语义抽取的多模态 RAG
2. 基于 VLM 的多模态 RAG
3.如何 Scale 基于 VLM 的多模态 RAG
4. 技术路线的选择
5. 问答环节
分享嘉宾|金海Infiniflow联合创始人
编辑整理|王红雨
内容校对|李瑶
出品社区|DataFun
01
基于语义抽取的多模态 RAG
多模态 RAG 的发展方向旨在构建一个高度集成的系统,能够无缝融合文本、图像和其它多媒体元素,为用户提供更丰富的信息交互体验。
实现多模态 RAG 系统的三种主要技术路径如下:
传统对象识别与解析(雕花路线)
传统的多模态文档处理首先会运用图像识别技术,如 OCR(Optical Character Recognition,光学字符识别),从图像中抽取出文字、表格和图片等元素。之后,这些独立的对象会被进一步解析,转换成文本格式,以便于后续的信息检索与分析。
采用 Transformer 架构
近年来,深度学习模型,特别是 Transformer 架构,在自然语言处理领域取得了巨大成功。在多模态 RAG 上,这种方法涉及使用编码器(Encoder)对整个文档进行编码,再由解码器(Decoder)将编码后的信息转化为可读文本。这种方法与第一种类似,只是模型不同,第一种用的是 CNN,这种是 Transformer。此法的优势在于可以更好地捕捉上下文依赖关系,提高信息的连贯性和一致性。
采用视觉语言模型
第三种方式是直接利用视觉语言模型(Visual Language Model, VLM)处理多模态数据。此类模型可以直接接收文档、图片或视频等形式的原始输入,将其转化为向量(Patch Embedding)。这些向量可用于构建更加精细的文档嵌入,有助于增强 RAG 系统的检索和生成能力。尤其值得一提的是,由于单一向量难以充分反映复杂文档的所有方面,使用多向量(或称为张量)成为了优选方案,以减少信息丢失,更全面地代表文档含义。
下面来具体看一下路线一,我们称其为“雕花”式路线。
从上图中可以看到,文档通常富含图形和表格,如折线图、饼状图和柱状图,甚至存在表格跨页、合并单元格等复杂情况,处理难度较高。
该路线的核心步骤如上图所示。首先进行文档结构识别,区分各个组成部分,明确哪些是段落、哪些是表格、哪些是图表等。针对每一类识别出的对象进一步解析,对于文本部分,采用 OCR 技术转录文字;对于图表,则需专门的模型进行识别和解析,理解其内容与意义。
“雕花”路线的特点在于其深度和广度,几乎覆盖了文档内的每一个细节。耗时费力,但对于确保信息的全面性和精准性具有不可替代的作用。但其处理效率相对较低,自动化程度受限,尤其面对大规模数据集时,挑战更为显著。
路线一的 RAG 架构是最基础的 RAG:文档被细分成 chunks,每一块包含可独立处理的内容片段,通过 Embedding 模型将每块转换成向量,以便在向量数据库中进行相似性检索,检索结果作为提示词提供给大模型。
实际应用场景下会更为复杂,需要进入更深层次的 RAG 架构。文档布局模型识别出不同布局后,分离不同类型的 chunks。之后进行检索,会用到全文索引、向量索引、稀疏向量索引以及图索引等。检索召回后,利用 Tensor Reranker 进行重排序,提升检索效果。最后交由大模型生成回答。
在此过程中,面对复杂文档,如果没有“雕花”的过程,那么一定会存在信息混乱,导致“Garbage in, garbage out”。
我们根据第一种路线,设计了 RAGFlow 的功能模块,并通过 Infinity 数据库提供向量处理。
在“雕花”过程中,表格识别是一大难点。
表格通常布局复杂,需要判定单元格边界、识别表头和合并的单元格,还要判断跨页结构,对色彩标记、图表嵌入等进行识别,处理难度很大。
我们实现了利用 Transformer 架构对表格内容进行解析。
采用 VAE(Variational Auto Encoder)提取图片特征,经过 Encoder 生成 Code Book,再经过 Decoder 得到最终结果。如果结果一致,则证明 Code Book 可以准确表达表格结构和内容。再来训练 Encoder 和 Decoder,最后生成 HTML 表格。生成的表格与原表格经过严格对比,确认无误后,我们就认为 Transformer 模型是准确有效的。
此流程不仅适用于表格识别,亦可用于流程图、饼状图、柱状图等其它图表类型的解析。
02
基于 VLM 的多模态 RAG
接下来介绍另一种路线——基于视觉语言模型的多模态 RAG。
VLM 能够同时处理图像与文本信息,对复合媒介资料提供全面解析。如上图中所示,模型不仅能够识别出图像中猫的位置,精确定位猫的轮廓,还可以回答关于图像内容的提问,体现出其强大的多模态认知能力。下面来看一下 VLM 的进展。
2024 年见证了多模态语言模型的迅猛崛起,以 GPT-4o 为代表的各种开源、闭源模型百花齐放,标志着多模态领域的重大进步。今年是多模态模型的爆发之年,那么明年是否会是多模态 RAG 的爆发之年呢?下面来看一些相关的例子。
使用 PaliGemma 模型针对 PDF 文档进行问答,例如提问 2018 年中国 IDC 市场规模有多大,模型直接给出了柱状图中的具体数字,非常准确。
又如,对 Qwen2 模型提问一张图表中的内容,模型也给出了准确而详细的解析。
上图中展示的是一篇利用 VLM 实现多模态搜索的论文,其中用到了 ColPali 方法,即基于上下文的延迟交互。其核心理念是将多模态文档转换为多维向量,再运用相似度匹配,交予大型模型生成答案,这一流程与现代 RAG 类似。其最为重要的一点是多模态信息如何表达。传统搜索引擎使用全文索引,提取关键词进行检索,然后用倒排索引的方式进行打分。而在 AI 时代,文本采用向量的方式进行表达,可显著提升信息处理效能。
ColPali 系统的评估标准为 nDCG(归一化折减累积增益),显示出相比于以往方法,其准确度有了质的飞跃,达到了 80% 以上的水平,较之前低于 60% 的结果有着显著改进。实验表明,在特定数据集(如 MLDR)上的表现亦十分出色,实现了接近 70% 的准确度,充分证明了技术的有效性。
前面提到,ColPali 用到了基于上下文的延迟交互,也就是上图中最右边的一种模型。图中第一种,DualEncoder,是现在常用的利用向量数据库做相似度匹配的方式。文档经模型转换为一系列向量,之后聚合简化为单个向量,用于快速查询和匹配。这种方式的优势是速度快,效率高。局限性在于信息大量丢失,难以精确定位文档与查询间的关联。
于是,引入了 Reranker,即图中第二种方式,Cross Encoder。通过初筛获取候选 chunks 后,采用该方式重新排序,模型根据相关性排序,再作为提示词。这种方式的问题是需借助 GPU 运行,且文档数量受限。
因此出现了延迟交互模型。首先将文档生成为多向量(或称为张量)存储。用户查询时,同样转化为张量形式,计算内积 MaxSim 得分,而非依赖模型计算。这样可以显著减少计算量,待选文档数量就可以增大,最后召回率就可以得到提升。
ColPali 就是采用了这种方式。将 PDF 文档切为 1024 个 patches,每个 patch 使用 128 维向量表示,这样一个 PDF 文档就转成了包含 1024 个向量的张量。
一个 PDF 切分为多页,每页采用一个 Tensor 来表示。
计算 MaxSim 得分。
上图中列出了一些相关模型的效果。它们都是名字中包含了“Col”的版本,相较于之前传统版本都有着显著提升。
03
如何 Scale 基于 VLM 的多模态 RAG
接下来探讨如何应用基于 VLM 的多模态 RAG。
第一个挑战是数据规模变大,Tensor 复杂度增加。例如前面提到的,用 1024 个向量来表示一个文档,无论存储复杂度还是计算复杂度都大幅上升。
那么在张量之上是否还有必要建索引呢?索引对降低计算规模的作用是有限的。因此我们采取了对张量进行二值化处理等方式来减小数据规模。我们也发现,用张量做重排序,和直接用张量作为第一次搜索排序,其准确度是相近的。
因此,利用 Infinity 数据库,第一轮搜索采用全文搜索、稠密向量搜索和稀疏向量搜索,搜索得到的结果再经过 Tensor Reranker 重排序。
Infinity 数据库针对结构化数据、稠密向量、稀疏向量、张量、全文搜索都有对应的索引,还可以进行融合搜索。
从上图展示的测试结果中可以看到,蓝色部分是没有采用张量方式的搜索,BM25 是全文搜索,效果较好,而现在常用的稠密向量搜索效果最差。我们还对搜索方式两两进行排列组合,结果发现,组合和类型越多,搜索准确度越高。黄色是加上了张量重排序的搜索,可以看到准确度得到了显著提升。
延迟交互将是 RAG 的未来发展趋势。JaColBERT 和 Jina-ColBERT v2 都展现出了积极的进展。
04
如何选择技术路线
上图所示的工作中认为视觉语言模型的路线更具优势。但我们认为雕花路线和视觉语言模型各有所长,对于抽象图像较多的文档更适合采用 VLM 的方式,相反则更适合传统手段。
两种路线将长期并存:
基于 Transformer 的新一代 OCR,针对多模态文档的提取精度更加准确。
OCR 和 VLM 可以长期共存。
支持 Tensor 的延迟交互将是未来多模态 RAG 的标配选择。
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有