大型多模态语言模型在理解和操作图像方面已经展示了令人印象深刻的能力。然而,许多这类模型在理解图像中嵌入的密集文本内容方面存在困难,这主要是由于文本识别和布局理解能力的限制。 为了理解这些限制的根源,作者进行了探索性分析,揭示了传统视觉编码器在视觉文本理解方面的不足。 因此,作者提出了LLaVA-Read,一个利用双重视觉编码器以及视觉文本编码器的多模态大型语言模型。作者的模型在各项富含文本的图像理解任务中超越了现有的最先进模型,展现了在图像中文本内容理解方面的增强能力。 总的来说,作者的研究指出视觉文本理解仍然是一个开放的挑战,高效的视觉文本编码器对于未来成功的多模态系统至关重要。
1 Introduction
指令微调已显示出在未见任务中的显著泛化能力,这促使大型语言模型(如GPT-4[3])的采用不断增加。近期,多模态语言模型从视觉指令微调中受益,在现实世界应用中取得了重大成功。这些模型利用了如CLIP-ViT的视觉编码器,为LLM赋予了图像理解能力。然而,在理解图像中的文本信息方面仍存在挑战,这很可能是由于训练数据集中自然图像的普遍性,正如所强调的。为了解决这个问题,[14]提出通过引入带噪声的光学字符识别(OCR)标注来改进端到端视觉指令微调模型,从而提高视觉与语言的协同对齐。此外,低分辨率视觉编码器也带来了挑战,因为至少需要九个像素才能识别一个单词。先前的工作探索了各种方法来提高编码器的分辨率,在多个下游任务中取得了显著的性能提升。然而,值得注意的是,高分辨率编码器通常需要更多资源进行图像编码,并产生更多的视觉标记供语言模型处理,这导致训练和推理过程中的低效率。提出了视觉标记合并和更智能的架构设计等方法来减轻这些挑战并提升模型性能。
文档图像通常包含文本密集的内容,其视觉组成部分通常较为简单,而文本部分则紧密排列。一个相关的问题随之产生:现有的视觉编码器在编码视觉文本和为语言模型生成视觉标记方面的能力如何?为了回答这个问题,作者进行了合成实验,以评估视觉编码器在文本识别方面的表现,并将其与开源光学字符识别(OCR)工具进行比较。作者的分析显示,OCR工具在编码大型文本块方面具有更高的效率和准确性,而流行的视觉编码器在识别较短和较小的单词和短语方面表现出色。此外,OCR工具可以轻松地扩展以处理高分辨率图像,且成本极低。受到这些发现的启发,作者提出了一种名为LLaVA-Read的新型架构,它集成了多个视觉编码器。作者的理念是,视觉编码器应有效地捕捉视觉信息,同时轻量级的视觉文本编码器(例如OCR工具)从高分辨率图像中提取文本。此外,作者还探索了将高分辨率视觉编码器集成到LLaVA-Read中,而不增加语言模型处理的视觉标记数量,通过融合模块实现。为了增强多个视觉编码器之间的对齐和协作,作者利用了视觉文本编码器中的文本和布局信息,引入了各种布局感知的预训练和微调任务。这些努力在理解文本密集型图像方面带来了显著的改进。
总之,作者的贡献有三方面:
- 作者对大型多模态模型在文本识别能力方面进行了全面分析,结果显示它们在场景文本理解方面具有令人印象深刻的实力,但在理解文本密集图像中的大量文本内容方面的能力有限。
- 作者提出了LLaVA-Read,这是一种擅长高效编码文本和视觉信息的模型架构。使用多个视觉编码器,包括轻量级的视觉文本编码器,能够高效地提取视觉文本。
- 结合布局感知的预训练和指令微调,LLaVA-Read在理解文本密集型图像方面表现出显著的增强,超过了在公共基准测试上的多个 Baseline 模型。
2 Related Work
多模态指令调优多模态指令调优,包括图像[4; 20; 8]、视频[21; 22]和音频[23; 24]设置,一直是研究的热点话题。大多数研究致力于将视觉表示通过独立的视觉编码器整合入大型语言模型中。MiniGPT-4[7]使用ChatGPT生成高质量遵循指令的数据,而LLaVA[4]通过用标题和边界框提示GPT-4来生成此类数据。先前的研究[25; 26]通过提示OpenAI GPT-4V生成了超过100万高质量的多模态LLM训练数据。LLaMA-Adapter[27; 28]使用COCO数据对文本-图像特征进行对齐,而mPLUG-owl[29]结合了大量的图像-文本对进行预训练和混合数据进行微调。InstructBLIP[20]通过将13种视觉语言任务转换为遵循指令格式来解决这个问题。mPLUG-Owl[30; 29]在现有文档数据集上应用了多任务指令微调。以前的研究调查了改善编码器分辨率的不同方法,在各个下游任务中取得了显著改进。一个全面的调查可在[34]中找到。尽管如此,许多模型在视觉文本理解任务上仍存在困难[13]。所提出的LLaVA-Read旨在提高文本丰富图像的理解能力,可以同时进行视觉目标和视觉文本的理解。
视觉文档理解人们一直努力提升多模态大型语言模型(LMMs)以更好地理解文本丰富的图像,包括文档图像。其中,LLaVAR[14]使用GPT-4通过OCR和标题工具收集微调数据,无需人工标注。它发现分辨率在识别文本信息方面扮演着重要角色,并探索了几个选项。TGDoc[35]改进了LLaVAR并探索了多模态LLMs的文本定位。Monkey[18]在简单的文本标签和高输入分辨率之间进行了“手术”,使得在密集文本的视觉丰富文档图像上实现了显著性能。TextMonkey[36]实施了偏移窗口注意力,有效地过滤出相似的标记。同时,DocPedia[37]和HRVDA[38]将输入分辨率扩大,以减少多模态LLMs与视觉文档理解之间的差距。近期的研究将学术论文中的图表作为输入,这些图表由文本和图形组成[39; 29]。InternLM-XComposer2[17]将视觉编码器的分辨率扩展到4096。基于OCR的方法因引入更多错误而受到批评[40],现在可以通过大型语言模型和视觉编码器的帮助而得到缓解。LLaVA-Read使用PaddleOCR作为视觉-文本编码器,因为其具有良好的泛化能力,同时也可以使用其他具有强大泛化能力的视觉编码器。
视觉文本理解人类对于文本排列的适应能力非常强,因为他们可以利用文本中的图形信息[42]。先前的视觉语言建模工作旨在处理未见过的词汇表外(OOV)单词,以克服固定词汇表的缺点,可能导致性能下降[43]。PIXEL[44]实现了与BERT[45]相当的性能,但它只能执行自然语言理解任务。Pixar[46]提出了第一种基于像素的自动回归LLM,执行文本生成。[47]开发了强大的屏幕截图LMs,以解锁复杂任务,如图表理解和UI导航。针对文本丰富的图像的多模态LLMs可以提取视觉文本,这与视觉文本理解问题相似。主要区别在于,多模态LLMs不仅需要理解视觉文本,还需要理解视觉目标及其关系。受到先前研究[47]的启发,LLaVA-Read在合成数据上对多模态LLMs进行了视觉文本理解分析,揭示了它们在较短场景文本理解方面的出色能力,但在理解文本丰富图像中大量文本内容方面的熟练程度有限。这一观察促使作者增加一个额外的视觉-文本编码器,以提高多模态LLMs的阅读能力。
3 LLaVA-Read: Enabling LLaVA to Read
在设计LLaVA-Read时,作者坚信视觉编码器应当专注于处理视觉目标,而轻量级的视觉文本编码器则应专注于从图像中提取文本。作者相信这种方法可以提高视觉组件的效率,因为文本识别与视觉目标检测呈现出不同的模式。尽管高分辨率视觉编码器能够捕捉更精细的细节,但它们也会生成更多的视觉标记。为了减轻在LLaVA-Read中采用两个视觉编码器所带来的额外计算成本,作者在保持与LLaVA相同视觉标记的同时,合并了这些编码器的输出。关于架构设计的更多细节将在3.1节中详细阐述。本质上,LLaVA-Read提供了一个多模态LLM框架,它利用多个视觉编码器来提高视觉标记的学习和转换效率。为了促进多个视觉编码器之间的增强协作,作者在3.2节和3.3节讨论的两阶段训练中提出了布局感知调整。
模型架构
视觉-文本编码器:成功的商业视觉-文本提取解决方案通常比视觉目标检测模型小得多[48; 49; 50]。提高视觉编码器的分辨率以识别视觉文本往往会带来不必要的计算成本,导致训练和推理效率低下。尽管视觉编码器擅长理解视觉目标信息和场景文本,但它们通常难以处理大块或段落的视觉文本(更多细节见第4.1节)。Donut [40] 和 LayoutLM [51] 等解决方案提供了整洁的方法,但由于预训练数据集领域的限制,它们的泛化能力有限。因此,作者考虑使用开源OCR工具作为替代编码器来提取文本和布局信息。LLaVAR [14]最初使用PaddleOCR 1构建了一个噪声预训练数据集,以增强文本识别能力。因此,作者集成了轻量级的PaddleOCR作为作者的视觉-文本编码器。使用基于OCR的方法的一个主要担忧是可能引入的错误。然而,视觉编码器与大型语言模型的协同工作减轻了这一缺陷。此外,更强大的视觉-文本编码器(包括基于OCR和免OCR的)可以替换作者框架中的PaddleOCR,可能会提供更好的性能。在本文中,作者使用PaddleOCR作为一个例子来验证作者对视觉-文本编码器的信念。此外,它还展示了将视觉文本高效地转换为LLM的优秀泛化能力的文本标记的高效率。作者定制了一个OCR分词器,有效地编码单词及其各自的位置(即文本边界框)。这个分词器包括一个布局恢复模块和一个标准的LLM分词器。在接收到富含文本的图像的OCR结果时,布局恢复模块通过插入空格和换行来处理输入,如[52]中所述。布局恢复过程遵循一种启发式方法:_i_) 根据坐标,识别并重新排列同一行中检测到的单词的文本框,从上到下,从左到右;_ii_) 根据每行的宽度和单词数计算平均字符宽度。然后根据同一行中两个文本框之间的水平距离插入占位符,从而提取单行文本;_iii_) 为每行插入换行字符,重建页面布局。附录中的图8提供了一个OCR分词器如何操作的示例。一旦获得了带有布局信息的纯文本,它就作为LLM提示的一部分,用于训练和推理:。
使用低分辨率视觉编码器的LLaVA已经取得了显著的成效[4],并且集成更高分辨率的编码器通常会导致性能提升[33]。然而,高分辨率编码器倾向于生成更多的视觉标记,而基于相似性的标记合并或压缩等方法可能会牺牲细节。理想情况下,高分辨率编码器应该关注与问题相关的细节,而不是显著增加语言模型中的视觉标记数量。为了解决这个问题,作者提出了一种新颖的方法,将高分辨率编码器中的细节合并到低分辨率编码器中。具体来说,作者利用预训练的OpenCLIP模型ConvNext-L/32-320作为高分辨率编码器,以及预训练的CLIP模型ViT-L/14-336作为低分辨率编码器。具有32像素图像块大小的高分辨率视觉编码器可以容纳大约2.3倍于具有14像素块大小的低分辨率编码器的更高分辨率图像。例如,如果低分辨率编码器处理的图像尺寸为,那么高分辨率编码器处理的图像尺寸为。如果分辨率高于,将对编码器应用位置嵌入插值。
为了防止生成额外的视觉标记,作者按以下方式结合两个视觉编码器的视觉特征:,其中和是两个具有与相同输入和输出维度的全连接层。此操作确保生成的特征与低分辨率特征大小相同[33]。这种直接的合并策略在富含文本的图像理解中是有效的,正如第4节的经验结果所证明的。
Layout-aware Pretraining for Feature Alignment
作者从LAION-5B数据集开始,有选择地保留了明显包含文本的图像。在筛选后的LAION-5B中,作者随机抽取了10,000张图像,并根据CLIP-ViT-B/32视觉特征[53]将其聚类成50组。在仔细检查聚类结果后,精心挑选了14个集群,包含了如海报、书籍封面、广告和教育文档等富含文本的多样化图像。在预训练阶段,作者使用了主要由自然图像组成的LLaVA LCS-558k预训练数据集。此外,作者还通过整合LLaVAR [14]中的42.2万张LAION图像、TGDoc [35]中的9.9万张幻灯片图像以及来自PubTabNet [54]、DocVQA [55]、WikiTableQuestions [56]、ChartVQA [57]、VisualMRC [58]和TabFact [59]等公共数据集的11.2万张与文档相关的图像来增强该数据集。表1展示了训练数据的统计信息。与LLaVA [4]类似,在预训练阶段只训练了投影层。此外,作者冻结了视觉编码器,并直接组合了两个视觉嵌入。除非特别提及,否则在预训练阶段不使用视觉-文本编码器。
任务I:文本识别遵循LLaVAR [14],作者使用PaddleOCR从原始图像中提取视觉文本,并将所有检测到的单词拼接成目标序列。然后,作者通过(i)随机抽取一个输入指令和(ii)使用识别的文本序列作为期望的输出响应,为每张图像生成单轮对话。值得注意的是,由于OCR工具在不同字体和背景下的性能差异,这种遵循指令的数据可能会产生噪音。
任务II:文本定位文本识别任务仅提取文本信息,但忽略了PaddleOCR的布局信息。与任务I类似,作者通过(i)随机抽取一个指令来提取文本和边界框,以及(ii)使用识别的文本序列及其边界框作为期望的输出响应,为每张图像创建单轮对话。这种简单的训练方案是有效的,并使模型发展出接地能力[61]。准确表示边界框是重要的;因此,作者将边界框坐标的每个整数值转换为一个浮点值,范围从0到1。此外,作者使用左上角和右下角坐标来表示文本框。
任务III:页面解析为了更好地捕捉布局信息,作者预训练模型将图像页面解析为纯文本,同时最小化布局信息的丢失。作者采用布局重建模块来解析单词和边界框,并引入占位符和新行字符来重建图像布局[52]。此外,对于表格[54],作者将HTML代码转换为Markdown风格。对于WikiTableQuestions [56]和TabFact,作者将图像渲染以获得相应的Markdown代码。对于图表解析,作者使用了PlotQA [62]和ChartQA [57]中的图像,利用源数据构建相应的Markdown代码。
任务IV:布局恢复布局重建任务的目的是将的能力转移到LLaVA-Read上。它利用任务II的OCR结果和任务III中的页面解析来构建指令调整对。此任务旨在教导语言模型更好地理解坐标并使用视觉-文本结果重建布局。不同预训练任务的代表性示例见附录中的图7和图8。
Layout-aware Finetuning for Instruction Following
联合理解视觉文本和物体对于高效分析富含文本的图像至关重要。为了增强模型对视觉物体的理解,作者使用了LLaVA的自然图像微调数据集进行了微调。尽管扩大数据集可能进一步提高视觉物体的理解能力,但本文并未探索这一方向。为了提高对视觉文本的理解并调整不同编码器之间的对齐,作者结合了来自LLaVAR [14]、TGDoc [35]和TRINS [53]的指令微调数据集,用于富含文本的图像指令微调。此外,作者还合并了来自不同来源的文档相关的视觉问答数据集,以提高性能。总共,作者收集了大约42.5万个指令微调数据集。
4 Experimental Results
作者首先进行了视觉文本理解分析,这启发了作者提出LLaVA-Read中的视觉文本编码器分支。然后,作者在经典的富含文本的图像基准测试以及OCR基准测试[13]上评估了LLaVA-Read的性能。作者用128的批处理大小、2048的上下文窗口大小以及2e-3的学习率对模型进行了1个周期的预训练,以获得投影层。接着,作者在425k指令调整集上以32的批处理大小、4096的上下文窗口大小以及2e-5的学习率对LLaVA-Read进行了3个周期的微调。作者使用Vicuna-1.5 13B作为基础语言模型。所有实验均在NVIDIA A100s上执行。
Visual Text Understanding Analysis
跟随之前的工作,作者通过改变字体大小和单词数量生成合成数据,以评估不同视觉编码器对文本识别的能力,如图2所示。作者使用PaddleOCR作为一个简单有效的视觉-文本编码器,并结合OpenAI CLIP和训练过的投影层来检查视觉编码器的文本识别能力。作者使用多种字体渲染富含文本的图像,并以OCR准确率作为评价指标。对于PaddleOCR和多模态大型语言模型(LLM),准确率意味着渲染出的 GT 单词能够精确地出现在输出结果中。对于带有投影的CLIP,作者首先获取模型输出,即视觉标记嵌入,然后基于相似度对语言模型词汇中的单词进行排名。如果 GT 单词出现在前三个单词中,作者认为这些单词被模型检测到了。作者列出了一些研究问题,以帮助读者更好地理解作者的实验结果。请注意,作者从NLTK [64] 包中移除了停用词,因为文本段落中存在许多重复的停用词。
RQ1: 作者需要多少像素来识别单词? 作者首先研究不同模块在不同字体大小下的文本识别能力表现。在图1(a)中,所有富含文本的渲染图像都有纯白色的背景,类似于扫描文档图像或屏幕截图。在图1(b)中,所有富含文本的渲染图像都选择了一张随机的图像作为背景,对应于场景文本和海报设置。在这两种情境中,作者使用机器学习术语作为要识别的文本,每个短语不超过四个单词。作者用字体的高度来衡量字体大小。带有投影的CLIP能够以最小6像素的字体大小来识别文本,以达到最佳性能。此外,无论在微调前后,带有投影的CLIP的性能都相似。
Rq2: 一个文本标记是否等同于一个视觉标记? 在图2(c)中,作者展示了三个不同模块在文本识别能力方面的表现。当单词数量少于50个时,带有投影的视觉编码器和多模态LLM(即CLIP 投影 LLM)可以工作,但准确率较低。然而,当文本量很大时,即单词数量增多,两个模块的性能开始下降。这项分析显示,使用CLIP编码器将视觉文本转换为视觉标记的效率低下,而语言模型只能处理包含文本信息的视觉标记的短序列。相比之下,视觉文本编码器(即PaddleOCR)在编码大量视觉文本方面表现出更好且一致的性能,凸显了多模态LLM在阅读能力方面的重要性。
发现2. 传统的视觉编码器生成固定长度的视觉标记,在将视觉文本转换为视觉标记供语言模型使用时,这种做法导致标记使用效率低下。
RQ3: 视觉-文本编码器在文本识别方面始终是最佳选择吗? 作者在实验中使用的视觉-文本编码器是PaddleOCR,与OpenAI CLIP ViT-L/14-336相比,其模型体积大幅缩小(不到1%)。PaddleOCR在识别大量文本方面表现出色,但至少需要9像素,且无法识别小于7像素的文本,而CLIP 投影则表现更佳。在场景文本实验(图2b)中,当字体大小增加时,字体大小并不影响带有投影的CLIP的性能,而PaddleOCR的表现则变差。总之,像PaddleOCR这样的视觉文本编码器被证明是有益的,而在某些情况下,视觉编码器也有助于理解视觉文本。
Main Results
作者在表2和表4(a)中评估了LLaVA-Read及其 Baseline 在OCRBench和其他富含文本的图像基准测试上的表现。LLaVA-Read在OCR基准测试中展示了开源模型中的最先进性能,并且与Gemini和GPT-4v的性能相当。与其它 Baseline 相比,带有低分辨率编码器的LLaVA-Read可以大幅超越Text-Monkey,这是最佳的开源模型,显示了添加视觉文本编码器的益处。特别是,在图像中嵌入大量文本的KIE和其他经典文档VQA的性能得到了显著提升。此外,结合了更高分辨率编码器(即LLaVA-Read-H)的LLaVA-Read进一步提升了模型的性能,尤其是在ChartVQA和TextVQA方面。对于ChartVQA,添加布局信息可以使QA准确度提高30%。当加入高分辨率视觉编码器时,模型性能进一步提升了大约20%。图表图像中的布局信息过于复杂,难以通过启发式函数重建,而高分辨率视觉编码器在这种情况下可以提供帮助。对于TextVQA,它显示了视觉编码器在场景文本理解中的重要性,因为随着视觉编码器分辨率的提高,性能变得更好。这一观察与作者在第4.1节中发现的结论一致。
关于富含文本图像VQA的消融研究作者首先比较了LLaVA-Read与训练中向LLaVA提供OCR词的LLaVA加OCR。这两种设置之间的差距显示了OCR分词器的优势,其中既使用了OCR文本又使用了文本框。没有布局微调的LLaVA-Read仍然比LLaVA OCR表现出更好的性能,验证了布局感知预训练的有效性。作者还对布局预训练进行了另一项消融研究;移除了特定预训练任务的LLaVA-Read模型都显示出较差的性能。如果作者移除了100k与文档相关的微调数据集,那么面向文档的VQA性能将下降。作者发现,在手动检查结果后,模型通常在图表5QA上失败。视觉编码器的分辨率在多模态LLM中扮演着重要的角色,因为更高的分辨率通常意味着更多的细节。如果作者添加了高分辨率的视觉编码器,作者观察到场景文本中心VQA和面向文档的VQA都得到了改善。此外,如果作者将分辨率从768增加到1024,性能也得到了增强。从LLaVA-Read中移除PaddleOCR并没有导致模型崩溃,但导致了性能下降。
生成的示例表3展示了一个生成的示例,对于这个示例,LLaVA-Read首先需要解析这张图像,然后按照用户指令中的方案以JSON格式输出结果。
LLaVA-Read正确地从给定的图像中提取出所有信息,而LLaVA 1.5和GPT-4V仍然会犯错误。更多关于接地(grounding)的生成示例在附录C中提供。
关于文本识别的消融研究表5展示了不同方法在OCRBench文本识别任务上的结果。
文本识别任务包括六个子集:
i)常规文本识别,ii)不规则文本识别,iii)艺术文本识别,iv)手写识别,v)数字字符串识别,vi)非语义文本识别。
每个子集有50个测试示例,总共300个测试示例。PaddleOCR表现最差,只在常规文本识别和非语义随机文本识别上表现良好。拼写错误或缺失字符是PaddleOCR性能不佳的主要原因。对于三种LLaVA-Read变体,分辨率较高的模型通常性能更好。如果作者移除了PaddleOCR的支持,LLaVA-Read仍然可以工作,性能略有下降。
然而,正如表5所示,当移除OCR支持时,LLaVA-Read在视觉问答方面的性能显著下降。
5 Conclusions
在本文中,作者首先分析了多模态LLM的视觉文本理解能力,证明了整合额外的视觉文本编码器的必要性。接着作者提出了LLaVA-Read,一种通过整合布局信息和使用多个视觉编码器来增强多模态大型语言模型阅读能力的模型架构。
通过对富含文本的图像理解任务的全面评估,LLaVA-Read超越了现有的最先进模型,证明了在模型中融入布局信息和利用多个视觉编码器在提高图像中文本内容理解方面的有效性。
这项工作为多模态语言模型的进步做出了贡献,并为未来研究提高这类模型阅读能力提供了有价值的见解。
局限性和更广泛的影响
LLaVA-Read使用PaddleOCR作为其视觉文本编码器,这依赖于PaddleOCR的准确性。尽管语言模型和视觉编码器可以缓解这一问题,但如果文本提取存在错误或不准确,仍可能对模型性能产生负面影响。在类似于Donut [40]的架构下,在一个大型语料库上训练视觉-文本编码器应该能进一步增强LLaVA-Read的性能。
此外,LLaVA-Read在训练和推理过程中仍然需要计算资源,这可能在资源受限的环境或处理能力有限的设备上限制了其实际应用。对于更广泛的影响,LLaVA-Read可以通过从图像中提供准确高效的文本提取,为视力受损的人士提高可访问性。
此外,LLaVA-Read可以在数据录入、信息检索和文档分析等任务中大幅减少人工工作,从而提高生产力和效率。
参考
[1].LLaVA-Read: Enhancing Reading Ability of Multimodal Language Models.