背景
传统的信息提取,通常是从文本中提取信息,相关技术也比较成熟。然而对于复杂领域,例如图片,文档等形式的数据,想要提取出高质量的、可信的数据难度就比较大了,这种任务也常称为:视觉文档理解(Visual Document Understanding, VDU),再次基础上发展的视觉文档(Visual Question Answer, VQA)。传统的方法是基于OCR的范式,首先基于OCR引擎,将文档中的数据提取出出来,转成文本,有了文本之后就可以使用传统的信息抽取方法处理,如果想结合数据位置信息,就将位置信息与文本一同在新的模型中做处理。这种方式的缺陷是:使用OCR的高计算成本,OCR模型对语言或文档类型的不灵活性,OCR错误向后续过程传播等。OCR驱动的VDU比较具有代表性的就是微软的LayoutLM系列(v1,v2,v3)。随着视觉模型的不断进步,图片与文本结合的多模态模型也在传统的任务中取得了不断地进步。OCR-Free范式的VDU技术也开始盛行,比较早的是2022年的一篇论文:OCR-free Document Understanding Transformer,一种端到端的文档理解模型,简称为:Donut。
本文要介绍的TextMonkey是一种基于LLM的多模态大模型。我们先从,Donut看起。
Donut
这个模型算是OCR-Free模型的鼻祖,模型也比较简单,相比以往的处理方案,具有不错的效果。数据处理的pipline如下:
模型的主要结构由一个编码器和一个解码器构成。编码器主要是Swin Transformer(2021年微软研究院发表在ICCV上的一篇文章), 解码器是一个自回归的语言模型,使用的BART的解码器模块。此外模型的输入也是有讲究的,主要是作者受GPT-3的启发,使用了prompt这种范式,在下游的任务中都增加了prompt,在结果输出使用特殊的token作为标志,可以将生成的序列转换成json格式的数据。模型在效果上和性能上优于传统的模型,例如下图:
在文档分类的数据上的效果如下:
在文档信息提取上的效果如下:
从上面的结果来看,使用这种基于视觉编码的方式相比与传统的方法是有一定效果的提升。在现如今大模型盛行的时代,大模型的生成、涌现、表达能力都异常突出,看看结合大模型的视觉问答效果怎么样。下文就介绍今天的主角,由华中科技大学和金山共同推出的TextMonkey:TextMonkey: An OCR-Free Large Multimodal Model for Understanding Document
TextMoneky
TextMoneky实在Monkey(Monkey: Image Resolution and Text Label Are Important Things for Large Multi-modal Models)的基础上进行了改进。Monkey已被计算机视觉顶会CVPR2024收录,相关代码也开源到github.
概述
TextMonkey在多个方面进行改进:通过采用零初始化的Shifted Window Attention,TextMonkey实现了更高输入分辨率下的窗口间信息交互;通过使用相似性来过滤出重要的图像特征,TextMonkey不仅能够简化输入,还可以提高模型的性能。此外,通过扩展多个文本相关任务并将位置信息纳入回答,TextMonkey增强了可解释性并减少了幻觉。与此同时,TextMonkey在微调之后还可以具备APP Agent中理解用户指令并点击相应位置的能力,展现了其下游应用的巨大潜力。
方法论
TextMonkey的构造如下图所示。
核心的模块主要有三个:
-
Shifted Window Attention。现有的多模态大模型,如Monkey和LLaVA1.6,通过将图像切分为小块来提高输入分辨率。然而这种裁剪策略可能会无意中分割相关单词,导致语义不连贯。此外,这种分裂造成的空间分离也使得处理与文本位置相关的任务(如文本检测)变得具有挑战性。TextMonkey在继承Monkey高效的图像分辨率缩放功能的同时,采用滑动窗口注意力机制建立了块与块之间的上下文联系。
-
Token Resampler。目前的多模态大模型面临着图像token数目随着输入分辨率的增加而增加的挑战。由于语言模型的输入长度和训练时间的限制,减少token的数量是很有必要的。在自然语言中,语言元素会存在一些冗余信息。那么可以自然的猜测在扩大图像分辨率之后,视觉部分的token也会存在冗余。本文根据以往确定语言元素相似性的方法,对已经映射到语言空间的图像token的相似性进行了度量:在图像Resampler之后随机选取20个有序特征,利用余弦相似性成对比较这些特征的相似性,得到的结果如图2所示。颜色越深代表相似性越高,实验发现每个图片的token都有一个到几个类似的token,图片特征中存在冗余。同时,本文还观察到某些令牌是高度独特的,并且缺乏其他相似的token,如图中的第四个token,这表明这个token是更为重要的。因此本文选用相似度来度量并识别独特的视觉token。并提出Token Resampler来压缩冗余视觉token。通过计算每个token与其他token的相似度,过滤得到最重要(相似度最低)的K个token。同时,为了避免直接丢弃其他token造成的信息丢失,这里还会利用过滤得到的K 个token作为查询,并采用交叉注意力机制进一步融合所有特征。如下图:
-
多任务训练。TextMonkey支持读出所有文本,文本检测识别,输出给定文本坐标,文本问答,具有位置感知的文本问答,图像结构化等多个任务。TextMonkey在进行问答时不仅看可以给出答案,还能给出答案所在位置,进一步增强了模型的可解释性。与此同时,在经过微调之后,TextMonkey还可以具备APP Agent中理解用户指令并点击相应位置的能力。
实验分析
TextMonkey与现有的多模态大模型相比,表现出了优越的性能。如下图:
为了进一步验证TextMonkey的有效性,作者在多个数据集上进行了测试,如下:
TextMonkey在Text Spotting数据集上相比于传统OCR模型也取得了极具竞争力的效果,如下:
在消融实验中也验证了Shifted Window Attention和Token Resampler两个模块是有效的。如下图:
此外作者还做了一个实验,当提高图片的分辨率时,图片对应的token会显著增加,得到的关键信息也变得尤为困难,如下表,第1,4行,不压缩token,分辨率从896提高的1344,模型的效果在4个数据集上效果下降。此外,在压缩token上,选择不同数量的Token也会对模型有一定的影响,这些都是需要考虑的。对比实验如下:
案例使用
一些测试案例可以参考:TextMonkey:用于文档理解的多模态大模型,取其中一个案例,TextMonkey在文字相当密集的情况下读取输入图片中的所有文字并且给出图片中文本的坐标。案例如下:
此外还有一个比较有意思的就是,TextMonkey还能帮助我们结构化图表,表格以及文档数据,通过将图像内容转化为Json格式的信息,方便记录和提取。如下:
补充
需要说明的是,TextMonkey基于的语言模型和视觉模型分别是:Qwen-7B ViT-BigHuge,模型参数在9.8B左右。截止发文,在模态大模型排行榜上,其在1月排名为第4,到如今5月掉到第16,说明了多模态大模型的卷的速度也是非常快的,排行榜地址:https://rank.opencompass.org.cn/leaderboard-multimodal/?m=24-05
总结
TextMonkey在Monkey的基础上增强了其图像间的跨窗口交互,在扩大分辨率的基础上增强了视觉信息的语义连续性,有效缓解了视觉信息碎片化的问题;并通过提出过滤融合策略减少图像特征长度,从而减少输入到大语言模型中冗余的视觉token数量。论文的实验说明,分辨率不是越大越好,不合理的提高模型分辨率策略有时会给模型带来负面影响,如何合理地扩大分辨率才是一个更值得去思考的问题。此外,通过在问答中引入位置信息,TextMonkey增强了可解释性并减少了幻觉。TextMonkey在多个文本相关的测试基准中处于国际领先,在OCRBench中超越其他开源多模态大模型。
对于这种OCR-Free的多模态大模型,总体看好。至于未来这些多模态大模型能否在工业领域落地,也还需要做进一步的考究。文中只介绍了该模型的大概内容,在实际的处理中还需要参考原文以及开源的代码。