【文档理解】TextMonkey:一种OCR-Free的用于文档理解的多模态大模型

背景

传统的信息提取,通常是从文本中提取信息,相关技术也比较成熟。然而对于复杂领域,例如图片,文档等形式的数据,想要提取出高质量的、可信的数据难度就比较大了,这种任务也常称为:视觉文档理解(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的构造如下图所示。
在这里插入图片描述
核心的模块主要有三个:

  1. Shifted Window Attention。现有的多模态大模型,如Monkey和LLaVA1.6,通过将图像切分为小块来提高输入分辨率。然而这种裁剪策略可能会无意中分割相关单词,导致语义不连贯。此外,这种分裂造成的空间分离也使得处理与文本位置相关的任务(如文本检测)变得具有挑战性。TextMonkey在继承Monkey高效的图像分辨率缩放功能的同时,采用滑动窗口注意力机制建立了块与块之间的上下文联系。

  2. 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作为查询,并采用交叉注意力机制进一步融合所有特征。如下图:
    在这里插入图片描述

  3. 多任务训练。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的多模态大模型,总体看好。至于未来这些多模态大模型能否在工业领域落地,也还需要做进一步的考究。文中只介绍了该模型的大概内容,在实际的处理中还需要参考原文以及开源的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706296.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

职业生涯第一课---“Redis分布式锁优化:确保唯一性与效率“

前言 最近因为刚入职公司开启自己的实习生涯,工作和毕设论文同步进行,导致有段时间没更新博客了,今天来分享一下最近学到的一些知识。 场景介绍 BOSS让我写一些接口,他提出这样一个需求,该接口的参数有多个&#xf…

Windows下配置TortoiseGit 访问Ubuntu虚拟机下Samba共享目录

前言: 本文记录学习使用 Git 版本管理工具的学习笔记,通过阅读参考链接中的博文和实际操作,快速的上手使用 Git 工具。 本文参考了引用链接博文里的内容。 引用: 【TortoiseGit】TortoiseGit安装和配置详细说明-CSDN博客 Git版本管理可视…

ubuntu下安装pwndbg

安装pwndbg 如果可以科学上网 首先安装git apt install git 然后拉取git库 git clone GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy 进入到pwngdb的文件夹中 cd pwngdb 执行 ./setup.sh 而后输入gdb 出现红色pwndgb就是安装成功…

ALV 图标显示

前言 在ABAP ALV中,使用fieldcat来定义列表中每个字段的显示属性,包括图标(Icon)的显示。图标可以在ALV列表中为特定列的行或标题添加图形元素,以增强视觉提示或传达附加信息。 ICON查询 图标的名称用事务码”ICON“进…

析构函数详解

目录 析构函数概念特性对象的销毁顺序 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸🥸 C语言 🐿️🐿️🐿️ C语言例题 &…

设计模式与软件体系结构课后练习参考答案

目录 软件设计模式第二章 创建型软件设计模式1. 工厂模式2. 生成器模式3. 单例模式 第三章 结构型软件设计模式1. 组合模式2. 适配器模式3. 外观模式4. 桥接模式 第四章 行为型软件设计模式1. 迭代器模式2. 访问者模式3. 中介者模式4. 策略模式5. 状态模式 案例分析工厂模式案例…

LED电源质量和性能测试解析

LED电源的性能对于确保照明系统的稳定性和效率至关重要。在LED技术不断进步的今天,对电源进行严格的测试成为了一项挑战。本文将详细探讨LED电源的测试项目,包括电性能、保护功能和安规测试,以及可靠性测试,旨在为测试员提供一个全…

Springboot开发 -- Postman 调试 session 验证 接口

当我们在开发Spring Boot应用时,经常会遇到带有Session验证的接口,这些接口需要用户先登录并获取到Session ID(或称为cookie中的JSESSIONID),然后在后续的请求中携带这个Session ID来保持会话状态。下面我将以一个实际…

6---Linux下版本控制器Git的知识点

一、Linux之父与Git的故事: Linux之父叫做“Linus Torvalds”,我们简称为雷纳斯。Linux是开源项目,所以在Linux的早期开发中,许多世界各地的能力各异的程序员都参与到Linux的项目开发中。那时,雷纳斯每天都会收到许许…

STM32HAL库-中断篇

中断 中断简介 中断是一种事件处理机制,可以暂停主程序的运行,转而处理特定事件程序。 中断的作用和意义: 实时控制 在确定事件内对响应事件做出相应 故障处理 检测到故障需要第一时间处理 数据传输 如串口通信,不确定数…

大模型对数据库运维的赋能:智能运维的新时代

引言随着人工智能技术的飞速发展,大模型作为AI领域的前沿技术,已经开始在数据库运维(DBA)领域展现出其独特的价值。大模型的引入,不仅提升了数据库运维的效率,还极大地改善了运维的质量和智能化水平。本文将深入分析大模型在数据库…

Python专题:十五、JSON数据格式

Python的数据处理:JOSN 计算机的主要工作:处理数据 最容易处理的数据就是结构化数据 非结构化数据:视频,文件等 近些年的大数据、数据挖掘就是对互联网中的各种非结构化的数据的分析和处理 半结构化数据 明确的结构属性&…