AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【LLM】通过文档截图嵌入统一多模态检索
发布日期:2024-07-23 08:10:49 浏览次数: 1868


           

 


一、结论写在前面
论文标题:Unifying Multimodal Retrieval via Document Screenshot Embedding
论文链接:https://arxiv.org/pdf/2406.11251
项目链接:https://github.com/texttron/tevatron/
在现实世界中,文档以不同的格式和多样的模态组织。传统的检索流程需要定制的文档解析技术和内容提取模块来准备索引的输入。这一过程繁琐、易出错且存在信息丢失。


为此,论文提出了文档截图嵌入(Document Screenshot Embedding,DSE),一种利用截图简化文档检索过程的新型信息检索范式,通过绕过传统预处理步骤并直接使用视觉-语言模型对文档进行编码,DSE提供了一种统一的处理多种文档模式的方法,无需任何内容提取预处理并保留文档中的所有信息(包括文本、图像和布局)。DSE利用大型视觉-语言模型直接将文档截图编码为密集表示用于检索。

为了评估论文的方法,论文首先构建了Wiki-SS数据集,一个包含1.3M维基百科网页截图的语料库,用于回答Natural Questions数据集中的问题。在这种文本密集型文档检索设置中,DSE相较于依赖解析的其他文本检索方法显示出竞争性的有效性。例如,DSE在Top-1检索准确率上超越了BM25 17个百分点。此外,在混合模态任务如幻灯片检索中,DSE在nDCG@10上显著优于OCR文本检索方法超过15个百分点。这些实验表明,DSE是针对多种类型文档的有效检索范式。    

存在几个限制,值得进一步探讨。首先,对于更通用的文档检索任务,如涉及结构和内容高度多变的PDF或网页,其有效性仍有差距。此外,结合论文的方法与提取的文本和图像内容可以使DSE在通用检索任务中更加灵活。其次,论文目前的做法完全依赖于监督微调。然而,文本检索研究显示,对比预训练可以显著提高检索器的有效性。第三,对视觉数据的依赖在视觉数据质量较低的环境中引入了挑战。模糊或低分辨率的截图可能会降低DSE的有效性。相反,处理非常高分辨率的图像可能会降低计算效率。

           

 

     

 

二、论文的简单介绍
2.1 论文的背景
现有的检索范式缺乏跨模态的统一编码过程,导致存在两个根本问题。首先,预处理并非易事。需要专门的加工来处理各种文档类型和内容模态,而这些处理往往并不完美。例如,野外的IITML文件由于其结构多样,可能表现出极大的复杂性,使得单一工具难以准确解析所有信息。
同样,幻灯片和PDF文件通常需要OCR模型来提取文本,并分别处理表格和图形等其他内容类型(。单独管理这些多样的模态是繁琐的,并且精确处理现实世界中长尾文档外观常常是不切实际的。其次,这一过程“破坏”了文档的原始外观,扰乱了其视觉上下文和布局完整性。文档的可视化呈现能够传达仅通过内容提取难以捕捉的重要信息。例如,除了文本和图像的内容,这些元素在文档中的大小和位置可能编码了其所含信息的重要性。
为了解决上述问题,论文引入了文档截图嵌入(DSE),这是一种新的信息检索范式,它将多种格式和模态统一为单一形式——截图,用于直接的文档编码和索引。与从文档中提取的文本和图像不同,截图易于获取。更重要的是,截图自然地保留了文档中的所有信息。如图1(b)所示,DSE直接将任何给定文档的截图编码为密集表示,通过大型视觉-语言模型进行索引。在搜索过程中,用户的查询由语言模型编码,以定位最近的文档嵌入。    
             
图1:(a)现有文档检索范式与(b)论文提出的范式之间的比较。DSE绕过了文档解析和内容提取过程,直接将包含多模态内容的文档原始外观编码为密集表示
论文进行实证研究以证明DSE对文档检索的有效性。
             

 

2.2 论文的方法
2.2.1任务定义
给定一个查询Q和一个由文档组成的语料库C,文档检索的任务是识别与查询Q最相关的k个文档,其中k < n。这种相关性是使用相似度度量来确定的。需要注意的是,“文档”截图是一个完整的信息片段(例如,一篇网络文章,一个PDF页面)。这与之前一些检索工作中的“文档”定义不同,后者表示任意信息片段,如句子或段落。对于查询,论文仅考虑与传统搜索设置类似的文本输入。处理图像查询的探索留待未来工作。
2.2.2 文档截图嵌入
论文采用双编码器架构进行密集检索,其中文档截图和用户文本查询分别使用视觉和文本编码器编码为密集向量。论文可以简单地应用来自CLIP的视觉和文本编码器到论文的任务中;然而,在论文的实验中,论文观察到视觉编码器无法编码包含更细粒度信息的截图;因此,论文提议使用大型视觉语言模型作为文档截图编码器。
Visual Encoder 当提供文档截图D时,首先由视觉编码器处理以生成一系列潜在表示。序列的长度由视觉编码器的图像标记器决定。论文以clip-vit-large-patch14-336为例,任何给定的截图首先被转换为336 x 336像素的图像,然后被划分为24 × 24的块(即总共576个块),每个块包含14 x 14像素。每个块被展平并映射到一个可训练的线性投影的块嵌入。这些块嵌入被视觉编码器编码为潜在表示。然而,如果截图包含大量文本(例如维基百科网页),576个块的潜在嵌入可能无法捕捉到截图中的细粒度文本信息。    
Vision Language Model 为了解决上述问题,论文利用了一个大型视觉语言模型Phi-3-vision,它使用了与clip-vit-large-patch14-336相同的图像标记器,但通过将其裁剪为子图像,可以以更多的块表示图像。
             
图2:DSE编码器架构概览。DSE采用双编码器架构,其中文档塔通过视觉输入将文档截图编码为密集向量,而查询塔则通过文本输入编码查询。文档和查询编码器共享同一语言模型
编码的补丁潜在嵌入与文本提示一起作为后续语言模型的输入:" 这张图片中显示了什么?"。这里,标记是一个特殊的占位符标记,并被补丁潜在嵌入序列所替换。为了更好地使用具有单向注意力的语言模型聚合信息,遵循Ma等人(2023),论文使用最后一个隐藏状态的序列结束标记嵌入作为文档截图嵌入。
             

 

2.3 实验设置
2.3.1 网页检索

数据集 论文构建了Wiki-SS数据集,使用Selenium Python工具包通过URL访问英文维基百科页面并自动截图。截图以980 x 980像素的窗口大小进行,以确保核心内容的充分覆盖。截图创建过程从2024年5月20日持续到5月23日,共四天。最终,论文获得了1,267,874张维基百科截图用于论文的实验    

为了与基于文本的检索基线进行比较,论文创建了一个文本版本的维基百科集合,该集合与Wiki-SS的集合相对应。鉴于维基百科页面随时间发生的重大更新和变化,现有的维基百科转储不能作为公平比较的依据。因此,论文基于2024年5月20日的转储,使用维基百科解析工具mwparserfromhell重新处理了维基百科文本内容。对于文本语料库中的每个文档,论文使用每个文档的前500个单词,这与Wiki-SS中的语料库相对应,其中每个截图仅覆盖第一页内容。

训练数据 论文通过采用NQ训练分割中的问题作为查询,并使用BM25在文本语料库上检索每个问题的最相关的前50个文档来创建训练数据。当相应的文本包含问题的答案时,文档候选(无论是截图还是文本)被视为正例。否则,该文档被视为硬负例候选。如果正例或负例候选列表为空,论文将丢弃训练样本,最终得到49,095个训练示例,包括查询、正例文档和硬负例文档的三元组。

评估 论文使用3,610个NQ测试集问题来评估检索器在域内的有效性。与评估问答数据集上检索有效性的先前实践一致(Karpukhin 等人,2020),论文使用top-k检索准确率作为度量。如果候选文档之一的相应文本内容中包含答案字符串的确切匹配,则认为问题得到了正确回答。论文遵循Karpukhin 等人(2020)相同的方法来计算确切匹配准确率。

2.3.2 幻灯片检索

数据集 原始的SlideVQA数据旨在用于文档视觉问答。它总共包含14.5k个QA对和52k个幻灯片图像。图像包含各种文本格式、布局和视觉内容,如图表和图表。给定一个问题,原始任务是从同一套最多20张幻灯片中选择最相关的幻灯片,然后根据选定的幻灯片回答问题。文档选择过程以重新排序和分类的形式进行。为了支持文档检索的评估,论文将SlideVQA修改为开放域检索任务,任务是从整个幻灯片图像池中检索k个最相关的幻灯片。经过论文的处理(例如,删除无法下载的幻灯片和没有可用证据幻灯片的问题),SlideVQA-open在其语料库中包含50,714张幻灯片图像(截图)。论文还创建了一个对应的基于文本的语料库,用于与文本检索器进行比较,使用pytesseract OCR工具包从幻灯片中提取文本。

训练数据 论文基于SlideVQA的原始训练分割创建训练数据集,对于给定问题,其标注的证据幻灯片被视为正样本,而同一组中的其他幻灯片则被视为硬负样本。这一过程总共产生了10,290个训练示例。    

评估 论文使用SlideVQA测试集中的2,136个问题构建了SlideVQA-open评估集。论文使用nDCG@10和Recall@10来评估模型的检索效果。在接下来的章节中,提及的SlideVQA指的是开放域检索设置。

2.3.3 实现细节
论文通过修改Tevatron工具包来实现DSE,模型初始化使用的是Phi-3-vision,这是一种拥有40亿参数的顶尖开源大型视觉-语言模型,因其性能上的有效且高效的权衡而受到认可。为了训练模型,论文采用了诸如LoRA(、FlashAttention和Deep-Speed等内存高效技术。模型在Wikipedia网页检索任务上以128的批量大小训练一个周期,在幻灯片检索任务上以64的批量大小训练两个周期。文档截图和查询编码的语言模型之间共享模型权重。在两项任务中,每个训练查询都与一个正文档和一个硬负文档配对。论文默认文档截图被调整为1344x1344像素,并裁剪成4x4个子图像。训练过程在两块A100 80GB GPU上进行。在推理阶段,使用Flat Faiss索引对嵌入进行索引,以进行精确的最近邻搜索。
表1:监督式检索效果比较。DSE和CLIP直接编码文档截图,而其他基于文本的检索模型则编码从文档中提取的文本
2.3.4 基线方法
论文将DSE与以下基于文本输入的文档检索方法进行比较:

(1) BM25:一种基于词汇表示的传统文本检索器。

(2) DPR:论文遵循DPR工作的相同设置,使用BERT-base初始化密集检索器,并基于文本输入在论文的训练数据上进行微调。    

(3) E5:类似于DPR,论文对无监督的E5-base模型进行微调,该模型基于网络数据进一步使用对比学习预训练BERT。

(4) Phi-3:论文使用与DSE相同的模型初始化和配置,但仅将语言模型组件作为基于文本的密集检索器进行微调。此外,论文还比较了微调后的CLIP模型,其图像编码器也由ViT-large初始化(与DSE相同),但仅支持固定长度的patch序列;

               

 

2.4 实验结果
2.4.1 监督学习下的检索效果

表1展示了在监督学习设置下模型的检索效果,其中模型在NQ或SlideVQA训练查询上进行了微调,并在相应的评估集上进行了评估。在维基百科网页检索任务中,DSE显著优于传统的基于文本的检索方法BM25。

具体来说,DSE在Top-1和Top-20检索准确率上分别达到了46.2%和77.6%,比BM25分别高出17个点和10个点。这表明DSE能有效编码截图格式的文本密集型文档以进行检索。

与神经文本检索方法相比,DSE优于较小的模型DPR,并与ES表现相当。Phi-3,使用与DSE相同的40亿参数语言模型,其Top-1检索准确率比DSE高出约4个点。这表明现有的视觉语言模型仍未能完全捕捉截图中的文本内容。

在包含文本和视觉内容的幻灯片检索任务中,论文观察到DSE显著优于(即在nDCG@10和Recall@10上均超过15个点)所有依赖OCR内容提取的文本检索基线。这突显了内容提取步骤中信息丢失的风险,其中OCR仅能提取文本内容,从而丢失了文档的视觉元素。

值得注意的是,神经检索方法DPR在这一任务中未能优于BM25。这可能是由于幻灯片布局的多样性,给文本内容提取带来了额外挑战,导致文本神经检索微调的噪声文本输入。相比之下,DSE 绕过了文本内容提取阶段,直接对文档截图进行编码,从而在检索时保留了更多信息。    

表2:零样本检索效果比较。模型在Wiki-SS上使用NQ问题进行训练,并在TriviaQA问题和幻灯片检索任务上进行评估
最终,尽管 DSE 和 CLIP 使用相同的视觉 transformer 骨干网络来处理文档截图,但 DSE 的表现超越了 CLIP。在 NQ 数据集上,DSE 在 top-1准确率上超过 CLIP 11.1 个百分点;在 SlideVQA 数据集上,DSE 的 nDCG@10 比 CLIP 高出 12.6 个百分点。论文认为这种效果提升得益于大型视觉-语言模型编码器,正如论文在第 5.3 节所展示的,它能够处理截图中更细粒度的信息,并可能增强了语义理解能力。
               

 

2.4.2 零样本检索有效性

论文进一步评估 DSE 的泛化能力。具体而言,论文将针对 NQ 问题微调的模型应用于 TriviaQA 问题在 Wiki-SS(或相应的 Wiki 文本)语料库中检索答案,以评估其跨不同查询分布的泛化能力。此外,论文还评估了针对 NQ 微调的模型在 SlideVQA 数据集上的跨任务泛化能力。

如表 2 所示,在 TriviaQA 上,基于 LLM(即 Phi-3)的文本检索器实现了最佳的零样本有效性,top-1 检索准确率达到 57.1%。DPR 和 CLIP 的零样本有效性较低,分别被 BM25 超越约 10 个百分点。相比之下,DSE 实现了 50.3% 的 top-1 检索准确率,比 BM25 高出 3 个百分点。这表明 DSE 在不同查询分布上具有相对良好的零样本有效性,但仍有改进空间。    

在幻灯片检索任务中,论文观察到 DSE 在所有模型中表现最佳。具体来说,DSE 在 nDCG@10 上比 BM25 高出 8 个百分点,在nDCG@10的条件下,尽管DSE仅在Wikipedia网页检索任务上进行了微调,其中文本是主要内容,但它仍然能够编码超出文本的文档信息。这一结果表明,DSE在无需特定任务训练的情况下,处理各种文档类型和任务的潜力。

               
图3:维基百科网页快照被不同数量的补丁(红色小方块)分割的示例。随着补丁数量的增加,每个补丁能够捕捉到截图中更细粒度的文本信息。(Cw, Cy)表示图像被分割成 x 个子图像;随后转换成( x 24) x ( x 24)个补丁。更多细节请参见第3.2节和图2    
               
图4:DSE在输入图像不同作物数量下的效果与效率之间的权衡。推理速度在启用BF16精度和FlashAttention的单个H100 GPU上进行测量
               

 

2.4.3 补丁序列长度的影响
加作物数量会产生更长的补丁输入序列,这为文档编码带来了更多的计算成本。另一方面,增加作物数量会导致补丁包含更精细的视觉信息,如图3所示。在(Cx, Cy) = (1, 1)的设置下,每个补丁包含多个单词,而在(Cx, Cy) = (4, 4)的设置下,一个字母由两个补丁覆盖。这导致文档编码的效率与质量之间存在权衡。论文通过训练DSE来研究这种权衡,在Wiki-SS任务上对NQ问题,论文使用不同数量的裁剪来评估相应的检索效果和文档编码速度(文档/秒)。    
               
图5:在Wikipedia和SlideQA上的两个示例的案例研究。论文展示了从微调嵌入到最后层图像块的多头注意力。GLOBAL-HEAD是关注粗略图像特征(336x336)的注意力头,而LOCAL-HEAD是在裁剪后关注更细粒度图像特征的注意力头(16x336x336)。论文验证了文本信息确实是从截图中提取的

论文在图4中绘制了效率和效果。当将图像裁剪成4x4的子图像以进行更细粒度的补丁编码时,前10名的检索准确率从62.0%提高到73.7%,表明更细的粒度有助于模型更好地理解和编码文档截图。然而,这是以计算效率为代价的。随着子图像数量的增加,模型的输入序列长度增加,导致编码时间更长。使用1x1子图像时,文档编码速度为每秒12.2个文档,而使用4x4子图像作为输入时,速度降至每秒4.3个文档。最后,实验表明,使用(C, Cy) -(2, 2)或(3, 3)在检索效果和计算效率之间提供了良好的平衡。

2.4.4 案例研究
论文进行了一项案例研究,以验证微调嵌入是否有效地利用了截图中的核心语义信息。图5展示了来自Wiki-SS和SlideVQA的两个示例的注意力可视化。论文使用了在NQ上微调的Phi-3-vision模型作为骨干,并提取了最后令牌嵌入到最终层图像块的多头注意力。图像块包含全局和局部特征:全局特征是从调整大小的完整图像输入(336 x 336)中标记化的,而局部特征是在图像调整大小到1344 x 1344后裁剪成4 x 4子图像之前获得的。对于两个示例,全局注意力头似乎关注于一般信息,如图像、标志、标题和部分。相比之下,局部注意力头集中在截图中的更细细节,如单个字母和关键词,这对检索至关重要。这种定性证据表明,DSE能够有效地从截图中的各种模态捕捉信息,从而增强其检索能力。    
2.4.5 错误分析
为了评估DSE,论文检查检索到的文档中是否存在答案字符串的完全匹配。然而,这种评估仅计算主体文本内的确切答案匹配。如果答案出现在主体文本之外的内容中,如图像、标题或表格中,这可能导致对DSE有效性的低估。为了探究这种潜在的低估,论文从NQ测试集中随机选取了50个问题,其中DSE的排名第一的检索文档被判定为无关,而基于纯文本的Phi-3对应部分则认为它们是正面的。论文手动检查了DSE检索到的相应截图,发现其中7个样本实际上是假阴性。换句话说,确切的答案可以在截图中的图像标题或表格中找到,如图6所示。这表明DSE除了包含重要线索的主文本之外,还能在其他区域捕捉信息。
图6:DSE对NQ测试集问题的前l个检索结果示例,这些问题被认为是“不相关”的,因为在相应的提取文本主体中没有找到答案的确切匹配。然而,确切答案可以在截图所覆盖的表格中找到



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询