VISRAG: VISION-BASED RETRIEVAL-AUGMENTED GENERATION ON MULTI-MODALITY DOCUMENTS
作者:Shi Yu
机构:清华大学
来源:arXiv 2024.10.14
https://github.com/openbmb/visrag
需要解决的问题:传统RAG只能处理text,无法充分利用视觉信息,而真实世界的数据通常以多模态的形式出现,因此传统的文本RAG无法对其进行处理。
做法:文档直接使用VLM进行embedding,作为一个image,之后进行检索来增强VLM的生成。相比于传统的RAG达到了25%-39%的增益。
1 Induction
结构:
- 纯视觉的RAG pipeline,包括基于VLM的检索器VisRAG-Ret和生成器VisRAG-Gen。
- 借鉴于基于文本的稠密retriever的bi-encoder,VisRAG-Ret将query和document映射到一个embedding空间,模型直接利用文档的image,而不是依赖于文档的内容。
- 如何获得embedding?对输入的text和image token最终的隐藏状态使用weight mean pooling。
- 通过检索topk个文档images送入VisRAG来获得最终的答案。
- 由于一些VLM只能处理单个图像,所以提出page concatenation以及权重选择技术来使得模型能够处理多个图像。
意义:VisRAG能以原始图像的形式保存所有的信息,因此防止可能存在的信息损失以及畸变。
数据集:
- 来自于VQA数据集
- web-crawled PDFs的query-document对
基模型:GPT-4o
2 Methodology
2.1 典型的基于文本的RAG和直接基于图像的RAG对比
-
根据作者的描述,只采用基于文本的RAG会丢失多模态文档中的图像信息,而VisRAG可以保留原页面中的图像信息。
-
检索过程中,使用了ANN(Approximate Nearest Neighbor)方法来检索文档 D R D_R DR。
2.2 检索器
- 在VLM隐藏层的最后一层使用一个位置加权平均池化(position-weighted mean pooling),越往后的token权重越大,这里的v就是query和page的embedding,其中 h i h_i hi表示第i个隐藏状态,S表示序列的长度。
其中权重 w i w_i wi表示为:
- 判定query和检索到文档的相似度:cosine similarity
- 损失:使用InfoNCE loss
2.3 生成器
处理多个检索页面的几种方法:
-
页面拼接
一个最简单的方法就是直接对所有的page进行水平拼接,然后送给LM:
-
权重选择法
这里的 λ ( q , d ) \lambda(q,d) λ(q,d)表示归一化的检索分数:
也就是说,如果给定query和document情况下,生成答案a的概率P越大,以及检索分数越大,则总的 P ( a ∣ q , d ) P(a|q,d) P(a∣q,d)越大。
- 直接处理多个图片
需要LM具有处理多幅图片的能力,例如MiniCPM-V 2.6 以及Qwen-VL 2。
2.4 构建数据
- 数据集的来源
- Query过滤(提出的VisRAG无法适用于这些问题,所以需要进行过滤)
由于一些问题如:“这个会议在哪举办?”,这种问题在不同文档中指向不明确,对于作者提出的多文档检索模型来说不适合,因此作者过滤了这些问题(使用LLAMA-3-8b)。
-
评估矩阵
对于检索: MRR@10 and Recall@10
对于回答:使用answer accuracy(允许5%的误差)
3 实验方法
-
文档解析(包括两种方法)
第一种使用经典的OCR方法
第二种直接使用大模型,例如MiniCPM-V 2.0,并进行一定的微调
-
实验对比方法
对于检索实验包括三种方法
第一种是Off-the-self,即拿这些模型直接进行对比
第二种是Out-of-domain,即在综合数据上进行预训练,在VQA任务上进行回答
第三种是In-domain,即在VQA和综合数据上进行预训练,在VQA上进行回答
对于生成实验,冻结检索部分,对比生成模型的效果
注意这里只有检索部分进行了预训练,生成部分的模并没有进行训练
-
实施细节
batch_size设置128,8个A100,temperature设置为0.02
4 实验结果
- 检索实验的结果。作者拿的是Out-of-domain的模型与BGE和NV-Embed,说明尽管后两个出色的模型在干净的数据上表现好,但真实的图片检索任务上表现不如VisRAG。除此之外,红框中的数据表明,作为一种visual encoder,SigLP在视觉任务中表现好,而MiniCPM(OCR)在文本任务中表现好。
- 生成的准确率的表现。在single-image方面,权重选择比拼接效果好。整体上使用多图片(交给模型处理)比使用单图片效果好。
- 综合数据量增长对于模型检索性能的影响(out of domain)
- 文档篇幅长度对于RAG性能的影响