【文档理解】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.mzph.cn/web/13175.shtml

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

相关文章

CTF网络安全大赛web题目:just_sqli

这道题目是bugku的web题目 题目的 描  述: KosenCTF{} 原文链接&#xff1a; CTF网络安全大赛web题目&#xff1a;just_sqli - 红客网-网络安全与渗透技术 题目Web源代码&#xff1a; <?php$user NULL; $is_admin 0;if (isset($_GET["source"])) {highlig…

齐护K210系列教程(二十七)_语音识别

语音识别 1.烧录固件和模型2.语音识别程序2.1训练并识别2.2使用本地文件语音识别 3.课程资源联系我们 1.烧录固件和模型 注&#xff1a;本应用只适用于有麦克风功能的型号&#xff1a;AIstart_pro、AIstart_掌机、AIstart_Mini, 其它型号不支持&#xff01; 机器码生成以及模…

linux中远程服务器上传输文件的10个sftp命令示例

目录 1. 如何连接到 SFTP 2. 帮助 3.检查当前工作目录 4. 使用 sftp 列出文件 远程 本地 5. 使用 sftp 上传文件 6. 使用 sftp 上传多个文件 7. 使用 sftp 下载文件 8. 在 sftp 中切换目录 远程 本地 9. 使用 sftp 创建目录 10. 使用 sftp 删除目录 11. 退出 sf…

(001)apidoc 的安装

安装 1.确定 node 和 npm 的匹配版本 node -vv10.14.1# 切换node 版本 nvm list nvm use 20.12.22.安装 apidoc。 npm install -g apidoc3.生成文档&#xff1a; apidoc -i ../ -o document/ -f ".java$"-i &#xff1a;指定扫描路径。-o&#xff1a;输出目录。…

【Linux:环境变量】

环境变量一般是指在操作系统中用来指定操作系统环境的一些参数 常见的环境变量&#xff1a; PATH 指定可执行程序的搜索路径 系统级的文件&#xff1a;/etc/bashrc 用户级文件&#xff1a;~/.bashrc ~/.bash_profile HOME 指定用户的主要工作目录&#xff08;当前用…

kettle从入门到精通 第六十一课 ETL之kettle 任务调度器,轻松使用xxl-job调用kettle中的job和trans

想真正学习或者提升自己的ETL领域知识的朋友欢迎进群&#xff0c;一起学习&#xff0c;共同进步。若二维码失效&#xff0c;公众号后台加我微信入群&#xff0c;备注kettle。 1、大家都知道kettle设计的job流程文件有个缺点&#xff1a;只能设置简单的定时任务&#xff0c;无法…

数据库-索引(高级篇)

文章目录 索引概念&#xff1f;索引演示&#xff1f;索引的优劣&#xff1f;为什么使用索引就快&#xff1f;本篇小结 更多相关内容可查看 索引概念&#xff1f; 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。在数据之外&#xff0c;数据库系统…

语法分析-文法

如果对于一部文法中&#xff0c;存在至少一个句子有两个或者两个以上的语法树则该文法是二义性的。 我们可以以上面的例子进行解释&#xff0c;对于第棵个语法树&#xff0c;我们可以看到是先进行了加法运算再进行的乘法运算&#xff0c;因为需要先把EE作为整体运算完后再成为E…

上海亚商投顾:沪指低开低走 两市成交额跌破8000亿

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天震荡走低&#xff0c;三大股指尾盘均跌近1%。地产股逆势走强&#xff0c;光大嘉宝、天地源、云南城投…

幻兽帕鲁Palworld服务器手动+docker部署方法+备份迁移

目录 帕鲁部署官方文档帕鲁手动安装法手动安装steamcmd通过steamcmd安装帕鲁后端 docker容器一键部署幻兽帕鲁绿联云NAS机器部署幻兽帕鲁客户端连接附录1&#xff1a;PalServer.sh的启动项附录2&#xff1a;配置文件游戏存档保存和迁移 关于阿里云计算巢 帕鲁部署官方文档 htt…

​学者观察 | 从区块链应用创新看长安链发展——CCF区块链专委会荣誉主任斯雪明

导语 2024年1月27日&#xff0c;斯雪明教授在长安链发布三周年庆暨生态年会上发表演讲&#xff0c;认为在区块链发展过程中&#xff0c;不仅需要技术创新&#xff0c;同时需要有价值、有特色、有示范意义的应用创新。斯雪明教授介绍了国内区块链技术与应用发展的现状、趋势与挑…

【数据结构】排序(直接插入排序,希尔排序)

目录 一、排序的概念 二、常见的排序算法 三、插入排序 1.直接插入排序 1.直接插入排序实现 2.直接插入排序特性及复杂度 2.希尔排序 1.排序思路 2.希尔排序实现 3.希尔排序的特性及复杂度 一、排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#x…

python手写数字识别(PaddlePaddle框架、MNIST数据集)

python手写数字识别&#xff08;PaddlePaddle框架、MNIST数据集&#xff09; import paddle import paddle.nn.functional as F from paddle.vision.transforms import Compose, Normalizetransform Compose([Normalize(mean[127.5],std[127.5],data_formatCHW)]) # 使用tran…

[Java基础揉碎]多线程基础

多线程基础 什么是程序, 进程 什么是线程 什么是单线程,多线程 并发, 并行的概念 单核cpu来回切换, 造成貌似同时执行多个任务, 就是并发; 在我们的电脑中可能同时存在并发和并行; 怎么查看自己电脑的cpu有几核 1.资源监视器查看 2.此电脑图标右键管理- 设备管理器- 处理器…

k8s 二进制安装 详细安装步骤

目录 一 实验环境 二 操作系统初始化配置&#xff08;所有机器&#xff09; 1&#xff0c;关闭防火墙 2&#xff0c;关闭selinux 3&#xff0c;关闭swap 4, 根据规划设置主机名 5, 做域名映射 6&#xff0c;调整内核参数 7&#xff0c; 时间同步 三 部署 dock…

原生IP介绍

原生IP&#xff0c;顾名思义&#xff0c;即初始真实IP地址&#xff0c;是指从互联网服务提供商获得的IP地址&#xff0c;IP地址在互联网与用户之间直接建立联系&#xff0c;不需要经过代理服务器代理转发。 原生IP具备以下特点。 1.直接性 原生IP可以直接连接互联网&#xff…

代码随想录算法训练营第五十四天

第二题我看了很久还是没太明白&#xff0c;我发现理解动规有一点点吃力了啊&#xff0c;努努力。 392.判断子序列 总感觉在不等于的时候&#xff0c;应该是dp[i][j] dp[i-1][j-2]; 这里其实按他那个图会更好理解一点。 class Solution { public:bool isSubsequence(string s, …

CentOs安装

安装 开发工具 &#xff1a;GCC、 JDK、mysql 如果出现蓝屏&#xff0c;要在BIOS开启虚拟化支持&#xff0c;或者移除打印机。

Google:站长移除无效网址

当您的网址不需要呈现在Google站长中时&#xff0c;您可以在站长工具中移除网址 操作步骤&#xff1a;登录Google站长&#xff0c;绑定网站完成后&#xff0c;点击左侧删除 >> 输入网址 如果遇到一些网址&#xff0c;可以找寻网址间的规律&#xff0c;比如说&#xff0…

2024生日快乐祝福HTML源码

源码介绍 2024生日快乐祝福HTML源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c; 源码截图 源码下载 2024生日快乐祝福HTML源码