为了进行不依赖OCR的文档图片理解,目前多模态大模型主要通过增加图片的分辨率来提升文档问答的性能。然而,不断增加的图片分辨率也导致了视觉编码的token数量显著增加,一张A4大小的文档图片在LLM端往往消耗掉上千的token数量。这不仅导致了过高的显存占用,也大大增加了首包的时间,严重限制了其在多页文档理解方面的应用。
为了平衡多页文档理解场景中的问答效果和资源消耗,
阿里巴巴通义实验室mPLUG团队
近期提出mPLUG-DocOwl2(
mPLUG-DocOwl2: High-resolution Compressing for OCR-free Multi-page Document Understanding
),具备多页文字解析,多页文档问答以及多页论文结构解析等能力,
在多页文档理解benchmark上达到OCR-free的新SOTA,并且每页文档图片仅消耗324token,首包时间降低50%,单个A100-80G最多能放下60张高清文档图片。
-
论文链接: https://arxiv.org/abs/2409.03420
-
代码链接: https://github.com/X-PLUG/mPLUG-DocOwl/tree/main/DocOwl2
模型结构
NLP领域对于文本总结和压缩已经有了很多研究。考虑到文档图片的主要信息都是布局和文字信息,且现有的多模态大模型普遍通过一个vision-to-text模块将视觉特征映射到语言特征空间,作者提出文档图片特征在和大模型特征空间对齐之后,也可以像文本特征一样进行压缩同时保留住布局信息和文字信息。
为此,在已有多模态大模型结构的基础上,作者提出一个高分辨率文档图片压缩模块High-resolution DocCompressor缩减视觉特征的token数量。DocOwl2模型整体结构如下图所示:
模型整体延续了DocOwl 1.5的结构,对于每一张高清文档图片会采用Shape-adaptive Cropping模块进行切片,同时将原图放缩为一个低分辨率全局图,随后每个切片和全局图会单独经过High-resolution Visual Encoding进行编码,包括ViT提取特征,以及H-Reducer水平合并4个特征并将纬度对齐到LLM。之后,DocOwl2采用High-resolution DocCompressor对视觉特征进行压缩。
考虑到同一个布局单元的文字信息语义连贯,更容易进行语义总结,作者希望进行文档图片特征压缩的时候以布局相关特征作为指导。低分辨率全局图上文字难以辨认但布局信息得到保留,因此作者采用低分辨率的全局图片特征作为压缩指导(query),以高分辨率切片特征作为压缩对象(key/value),通过cross-attention进行压缩。
此外,低分辨率全局图片的每一个特征只编码了部分区域的布局信息,如果让每个低分辨率特征都关注所有高分辨率特征不仅增加压缩难度,而且大大增加了计算复杂度。
为此,作者对于每一个query都从切片特征中挑选了相对位置一致的一组高分辨率特征作为压缩对象,其数量和切片的数量一致,并可能来自不同的切片。经过该压缩模块之后,任意形状的文档图片的token数量都缩减为了全局图片的token数量。DocOwl2的单个切片以及全局图片都采用了504x504的分辨率,因此,最终单个文档图片的token数量为(504x504)/(14x14)/4=324个。
模型训练
DocOwl2由3个阶段进行训练:单页预训练,多页预训练,以及多任务指令微调。
为了充分训练模型对于文档图片的压缩以及信息的保留能力,单页预训练采用了DocOwl1.5的结构化解析数据DocStruct4M,其任务为输入文档图片,解析出图片中所有的文字信息。
之后,为了训练模型区分多页文档特征的能力,多页预训练阶段设计了Multi-page Text Parsing任务和Multi-page Text Lookup任务。前者对于多页文档图片,要求模型解析指定的1-2页的文字内容,后者则给定文字内容,要求模型给出文字所在的页码。
经过两轮预训练之后,作者整合了单页文档理解和多页文档理解的问答数据进行联合训练。即包含简洁回复,又包含给出具体解释和答案依据的指令微调数据。
实验结果
DocOwl2在以更少视觉token、更快的首包时间的前提下达到了多页文档理解的SOTA效果。
同时,在单页文档理解任务上,相比相似训练数据和模型结构的DocOwl1.5,DocOwl2缩减了>80%的token,维持了>90%的性能。即使相比当下最优的MLLM,DocOwl2也在常见的单页数据集(DocVQA, ChartQA, TextVQA)上以更少的token和更快的首包时间的前提下达到了>80%的性能。
从样例中可以看出,对于A4大小的文档图片,即使只用324个token编码,DocOwl2依然能够清晰的识别图片中的文字。
对于文档问答,模型不仅能给出答案,还能给出详细的解释以及相关的页码。
除了文档,DocOwl2也能理解文字丰富的新闻视频。