当前位置: 首页 > news >正文

PDF解析黑科技:从OCR-Free到多模态大模型的进化之旅

各位看官好呀!今天咱们继续来聊聊PDF解析那些事儿~ 这可是本系列的第四篇文章啦!前几期没看的小伙伴赶紧去补课(戳这里)。今天的主角是那些不用OCR也能读懂文档的"超级AI"——大型多模态模型!

三巨头登场

首先让我们掌声欢迎今天的三位主角:

  • TextMonkey:专治各种文档理解困难症
  • Vary:视觉词汇量比牛津词典还丰富
  • StrucTexTv3:文本图像处理界的"小钢炮"

TextMonkey:文档界的"齐天大圣"

TextMonkey是一款专为文本中心任务(如文档问答和场景文本分析)定制的大型多模态模型。

概述

TextMonkey能在有限训练资源下提升分辨率,同时保留跨窗口信息并减少因分辨率提升带来的冗余token。此外,通过多种数据和前置提示,TextMonkey已经具备了处理多任务的能力。

TextMonkey架构图

图1:TextMonkey架构概览。来源:TextMonkey论文

如图1所示,TextMonkey架构具有以下特点:

  • 初始处理:输入图像通过分割模块被划分为不重叠的448x448像素块,这些块再被分割为更小的14x14像素块,每个小块被视为一个token
  • 跨窗口关系增强:TextMonkey采用Shifted Window Attention机制成功整合了跨窗口连接,同时扩展了输入分辨率。此外,TextMonkey在Shifted Window Attention机制中引入零初始化,使模型能够避免对早期训练的剧烈修改
  • Token重采样器:用于压缩token长度,减少语言空间中的冗余。这些处理后的特征与输入问题一起由LLM分析,生成所需答案
性能表现

如图2左侧所示,TextMonkey能够准确定位和识别场景图像和文档图像中的文本。

TextMonkey可视化结果

图2:TextMonkey的可视化结果。模型生成的边界框用红色标出,真实位置用绿色框标出。来源:TextMonkey论文

此外,解析表格和图表的能力也至关重要。TextMonkey也进行了相关测试,如图3所示。

图表和表格结构化示例

图3:图表和表格结构化示例。来源:TextMonkey论文

如图3所示,TextMonkey能够将图表和表格转换为JSON格式,展现了其在下游应用中的潜力。

Vary:视觉词汇的"变形金刚"

现代大型视觉语言模型拥有庞大的通用视觉词汇表——CLIP,包含超过4亿个图像-文本对。它涵盖了大多数常见图像和视觉任务。

然而,在某些场景下,如高分辨率感知、非英语OCR和文档/图表理解,CLIP-VIT可能因低效的token化而表现不佳。这是因为它难以将所有视觉信息编码为固定数量的token(通常为256个)。

虽然mPlug-Owl和Qwen-VL尝试通过解冻其视觉词汇网络(CLIP-L或CLIP-G)来解决这个问题,但**Vary**认为这不是一个合理的方案。原因如下:

  • 可能覆盖原始词汇知识
  • 在相对较大的LLM(7B)上更新视觉词汇训练效率低
  • LLM的强大记忆能力阻止视觉词汇网络多次查看同一图像(即无法在多个epoch上训练数据集)

这引出了一个问题:我们能找到一种简化并有效增强视觉词汇的策略吗?

概述

Vary,一种高效且用户友好的方法,被提出来解决上述问题。

这种方法受到扩展普通LLM文本词汇的启发。当将英文LLM转换为另一种语言(如中文)时,需要扩大文本词汇以提高新语言下的编码效率和模型性能。直观地说,对于视觉分支,当向模型输入"外语"图像时,视觉词汇也需要扩展。

传统方法与Vary对比

图4:传统方法与Vary对比。与其他使用现成视觉词汇的模型不同,Vary的过程可分为两个阶段:视觉词汇的生成和融合。在第一阶段,Vary使用"词汇网络"和一个小型仅解码器网络通过自回归产生强大的新视觉词汇。在第二阶段,Vary将视觉词汇与原始词汇结合,高效地为LVLM提供新特征。来源:Vary论文

如图4所示,Vary中的词汇扩展过程包括两个步骤:

  1. 创建新视觉词汇:补充现有词汇(CLIP)。这个流程包括一个词汇网络和一个迷你仅解码器transformer,通过预测下一个token来训练词汇模型
  2. 合并新旧词汇:在此过程中,新旧词汇网络都被冻结,以防止视觉知识被覆盖
架构

如图5所示,Vary有两种形式:Vary-tiny和Vary-base。

  • Vary-tiny主要专注于生成新的视觉词汇
  • Vary-base则是一种新型大型多模态模型,设计用于使用这种新视觉词汇处理各种视觉任务

Vary架构概览

图5:Vary架构概览。来源:Vary论文

关于数据

Vary有多种类型的训练数据,如图6所示。

Vary的训练数据

图6:Vary的训练数据。作者绘制

以下将详细说明每种数据的具体构建过程。

文档数据

使用来自文档的高分辨率图像-文本对作为预训练新视觉词汇的主要数据集。

该过程从收集arXiv和CC-MAIN-2021-31-PDFUNTRUNCATED中的公开可获取文章样式的PDF文档开始,构成英文部分。中文部分由从互联网收集的电子书组成。

使用PyMuPDF的fitz提取每个PDF页面的文本信息,并使用pdf2image将每个页面转换为PNG图像。通过这个过程,创建了100万中文和100万英文文档图像-文本对用于训练。

图表数据

这是为了支持图表理解。

选择Matplotlib和pyecharts作为渲染工具。对于matplotlib样式的图表,已建立25万中英文图表。对于pyecharts,已建立50万中英文图表。

此外,每个图表的文本真实值被转换为python-dict形式。图表中使用的文本,如标题、x轴和y轴,都是从互联网下载的NLP语料库中随机选择的。

负面自然图像

为确保新引入的词汇不会引入噪声,Vary从COCO数据集中提取12万张图像,每张图像对应一段文本。文本部分从以下句子中随机选择:“这是一张自然图像”;“这里有一张自然图片”;“这是一张自然照片”;“这是一张自然图像”;“那是来自自然的镜头”。

LATEX渲染文档

这是为了支持公式和表格。

首先在arxiv上收集了一些.tex源文件,然后使用正则表达式提取表格、数学公式和纯文本。最后,使用准备好的新模板通过pdflatex重新渲染这些内容。

收集了10多个模板用于批量渲染。此外,每个文档页面的文本真实值被转换为mathpix markdown样式以统一格式。

通过这个构建过程,获得了50万英文页面和40万中文页面。一些样本如图7所示。

合成数据可视化

图7:合成数据可视化。来源:Vary论文

如图7所示,Vary使用pdflatex渲染文档,使用pyecharts/matplotlib渲染图表。文档数据获取中/英文文本、公式和表格。图表数据包括中/英文条形图、折线图、饼图和复合样式。

语义关联图表渲染

使用GPT-4生成一些使用相关语料库的图表,然后使用高质量语料库为Vary-base训练渲染额外的20万图表数据。

通用数据

从LAION-COCO中随机提取400万图像-文本对。在SFT阶段,使用LLaVA-80k或LLaVA-CC665k以及DocVQA和ChartQA的训练集进行微调。

尽管Vary进行了许多实验,但我们主要关注与PDF解析相关的性能。

与Nougat的细粒度文本感知对比

图8:与Nougat的细粒度文本感知对比。Vary-tiny是基于OPT-125M生成视觉词汇的模型,具有纯OCR能力,包括中文和英文。Vary-base是在Qwen-Chat 7B基础上扩展视觉词汇的模型,通过提示控制同时具备纯文档OCR和markdown格式对话能力。来源:Vary论文

如图8所示,Vary-base在英文纯文本文件上达到了与Nougat相似的性能水平。此外,Vary-base在处理公式和表格方面优于Nougat,编辑距离为0.181,F1分数为81.10%。

图9展示了Vary将图像转换为Markdown以及纯OCR的能力。

Vary-base的指令跟随能力

图9:Vary-base在优秀markdown转换或纯OCR方面的指令跟随能力。Vary-base可以根据用户提示控制文档图像输入的输出格式。来源:Vary论文

图10展示了Vary的表格识别能力。

Vary-base的Markdown/Latex格式转换能力

图10:Vary-base在表格上的Markdown/Latex格式转换能力。图片来自互联网。来源:Vary论文

StrucTexTv3:文本丰富图像的高效视觉语言模型

由于多样性、复杂性和独特理解需求,文本丰富图像对大型多模态模型提出了各种挑战。

一个重要挑战是这些图像中普遍存在的小而密集的文本,这需要高分辨率输入以进行精确文本提取。有三种方法可以解决这个问题。

  • 像LLaVA和Qwen-VL这样的方法通常使用224x224或336x336的图像尺寸,难以捕捉这些精细细节
  • PALI-X和PALI-3旨在直接利用更高分辨率的图像。然而,这种方法受限于内存和计算资源,显著限制了ViT-based视觉编码器可以处理的分辨率
  • Monkey和UReader使用滑动窗口技术将输入图像分割成较小的块。虽然这种方法在一定程度上缓解了尺度问题,但可能引入语义不一致,影响模型的感知和理解能力

StrucTexTv3是一种高效的视觉语言模型,通过三个关键创新解决了上述挑战。

  • 开发了一种先进的视觉语言模型,专门用于感知和理解文本丰富的图像。该模型有效解决了与高分辨率输入和复杂表示学习相关的挑战
  • StrucTexTv3收集了近3000万基于文本丰富图像的多模态数据点,称为TIM-30M。该数据集包括广泛的感知和理解指令学习数据
  • 利用指令学习,StrucTexTv3展现了广泛的感知和理解能力。尽管其LLM只有1.8B,但它在各种任务和数据集上提供了优于7B LLM模型的性能
概述

StrucTexTv3概览

图11:StrucTexTv3概览。来源:StrucTexTv3论文

如图11所示,StrucTexTv3包含三个组件:

  1. 一个高效的视觉编码器,有效提取视觉特征
  2. 一个多粒度token采样器,从多尺度视觉特征中提取丰富、细粒度的视觉表示
  3. 一个LLM,理解并推理文本丰富图像中的视觉线索和语言符号
训练数据

如图12所示,StrucTexTv3构建了一个基于文本图像的大规模多模态训练数据,即TIM-30M,主要包括感知任务和理解任务。

TIM-30M数据摘要

图12:TIM-30M数据摘要。来源:StrucTexTv3论文

这里,我们将重点关注文档解析数据集的构建,这也是PDF解析中最相关的任务。

StrucTexTv3的文档解析数据源主要由三部分组成:公开可用的基准数据、arXiv数据和弱标记的内部数据集。此外,表格结构识别由FinTabNet和PubTabNet的数据支持,使我们的模型能够解析表格结构。每个表格图像表示为一个HTML序列。

**StrucTexTv3遵循Nougat**概述的数据生产过程。它从arXiv下载LaTeX源代码,将其转换为PDF格式,然后转换为相应的Markdown序列。同时,收集了大量书籍和学术论文图像,并通过商业API获取伪标签以提高模型的泛化能力。

StrucTexTv3使用提示"将图像的文本内容转换为markdown"来指导模型将输入解析为Markdown格式。

训练

训练过程包括三个阶段:

  • 预训练阶段:目标是赋予模型感知文本的能力
  • 多任务预训练:利用来自各种感知和认知任务的所有训练数据,使模型具备感知和认知能力。输入图像大小保持在1600x1600,最大序列长度设置为4096
  • 监督微调阶段:应使用图12中详述的高质量基准数据进一步微调模型。StrucTexTv3保持与第二阶段相同的图像大小、序列长度和可训练参数,并在更高质量的基准上进行了额外的2000步训练
关于性能

图13展示了StrucTexTv3在感知和理解文本丰富的一般图像方面的能力。

StrucTexTv3的一般文本丰富图像感知和理解能力

图13:StrucTexTv3的一般文本丰富图像感知和理解能力。第一行展示感知级能力,如文本定位、文档解析和图表解析。第二行展示认知级能力,包括面向文档的VQA、关键信息提取、表格摘要和文本图像翻译。来源:StrucTexTv3论文

让我们重点关注PDF解析任务的性能。

对于此任务,当提供文档图像时,模型需要输出Markdown转换结果,包括正文、表格HTML信息和公式识别结果。

应使用三个测试集评估模型在此任务上的性能。这些测试集包括200个用于正文解析的文档图像、100个包含数学公式的文档图像和100个包含跨单元格表格的文档图像。在每个数据集中,一半图像应为中文,另一半为英文。

文档解析基准上的实验结果

图14:文档解析基准上的实验结果。来源:StrucTexTv3论文

图14表明,StrucTexTv3在处理中英文文档方面优于其他方法。这种优越性能在包含纯文本或带有公式和表格识别结果的图像中都很明显。

见解与思考

对文档理解的代表性大型多模态模型的介绍到此结束,现在让我们谈谈一些见解和思考。

关于训练数据

从上一节可以明显看出,用于文档理解的OCR-free大型多模态模型需要大量数据。这是因为这些模型需要解决文档感知和理解等各种任务,并且其结构相当复杂。

如果专注于PDF解析任务,则需要较少的数据。例如,使用TIM-30M数据集,我们可能会删除理解数据。然而,这一行动是否会影响PDF解析任务的有效性仍有待验证。

此外,如果您希望获得像StrucTexTv3这样的图像-markdown对,建议使用Nougat的方法,如图15所示。

Nougat的数据处理流程

图15:Nougat的数据处理流程,TeX源和原始PDF论文最终被转换为图像-Markdown对。作者绘制。参见前一篇文章

关于模型

TextMonkey和Vary都集成了7B参数的LLM,而StrucTexTv3的参数最少,只有1.8B。

如图14所示,StrucTexTv3在PDF解析任务中的性能甚至超过了7B模型。因此,StrucTexTv3模型架构是一个高度优先考虑的选择。

然而,截至2024年7月1日,StrucTexTv3尚未开源。因此,目前没有可供参考的官方代码。

关于PDF解析的评估

Vary和StrucTexTv3都进行了对比实验,如图8和图14所示。Vary使用归一化编辑距离和F1分数,以及精确率和召回率作为评估指标。另一方面,StrucTexTv3使用1-归一化编辑距离作为其评估指标。

我的印象是,PDF解析的评估相对不成熟,可用于对比实验的模型很少。

关于输入分辨率

TextMonkey认为增加分辨率也会增加token数量。TextMonkey进行了相关实验,表明在分辨率方面,越大并不总是越好,不合理的增加模型分辨率策略有时会对模型产生负面影响。

如何合理扩大分辨率是一个更值得考虑的问题。

局限性

使用OCR-free大型多模态模型进行PDF解析仍处于早期阶段,技术尚未完全成熟。

这种方法需要大量训练数据和高端的机器配置。它最适合较大的团队或资源丰富的团队。对于较小的团队或资源有限的团队,这种方法可能不是最佳选择。

给技术选型的建议

选择文档解析方案时,要考虑:

  1. 文档类型:纯文本?带表格?有复杂公式?
  2. 语言需求:是否需要多语言支持?
  3. 部署条件:有土豪级GPU?还是只能在树莓派上跑?

小团队推荐试试StrucTexTv3的轻量版,大厂可以考虑自研类似DocLLM的定制方案。

未来展望

2025年文档解析技术的三大预言:

  1. "零样本"解析:模型看到全新排版也能从容应对
  2. 多模态交互:直接对着文档图片问"这条款有什么陷阱?"
  3. 实时协作:多人同时编辑扫描件,AI自动保持一致性

结语:文档解析的未来在哪里?

各位看官,看到这里是不是已经对文档解析技术的未来充满期待?作为你们的"算法救星",我最后再送上几点独家见解:

  1. 多模态融合将越来越深入:未来的文档解析不仅是"看"文档,还会结合语音注释、编辑历史、用户反馈等多维度信息

  2. 具身文档交互成为新趋势:通过AR/VR设备,用户可以"走进"文档中进行立体化解析和编辑

  3. 文档智能体即将涌现:具备长期记忆和个性化适应能力的文档解析AI将成为每个企业的数字员工

  4. 隐私计算技术将深度融合:在保证文档安全的前提下实现高效解析

  5. 绿色计算成为标配:低能耗的文档解析算法将受到更多关注

记住,在这个信息爆炸的时代,谁能更好地驾驭文档数据,谁就掌握了知识的钥匙。而我,你们重金聘请的"算法救星",会继续为你们追踪最前沿的技术动态!(毕竟我的工作和家人都指望这个吃饭呢~)

看完这篇文章,相信你已经从"文档解析小白"升级为"半个专家"了!如果想继续深造,记得关注作者的其他文章哦~

最后提醒:如果发现文中有错别字,那一定是GPT-4V识别时出的错,绝对不是作者的问题!(溜了溜了)


http://www.mrgr.cn/news/96577.html

相关文章:

  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例14,TableView16_14 拖拽自动保存示例
  • 《异常检测——从经典算法到深度学习》30. 在线服务系统中重复故障的可操作和可解释的故障定位
  • 基于PX4和Ardupilot固件下自定义MAVLink消息测试(QGroundControl和Mission Planner)
  • SQL注入之盲注技术详解
  • DataPlatter:利用最少成本数据提升机器人操控的泛化能力
  • 大模型时代的基础架构 读书笔记
  • Android设计模式之代理模式
  • 项目上传github——SSH连接配置文档
  • 【MySQL】从零开始:掌握MySQL数据库的核心概念(四)
  • 【MySQL】从零开始:掌握MySQL数据库的核心概念(五)
  • Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型多变量回归预测
  • 车载以太网网络测试-25【SOME/IP-报文格式-1】
  • Cocos Creator Shader入门实战(七):RGB不同算法效果的实现,及渲染技术、宏定义、属性参数的延伸配置
  • AIGC1——AIGC技术原理与模型演进:从GAN到多模态融合的突破
  • 01-Docker 安装
  • 五.ubuntu20.04 - ffmpeg推拉流以及Nginx、SRS本地部署
  • YOLOv11模型的常见处理
  • 我的机器学习学习之路
  • 【TensorRT】TensorRT从安装到推理——Python 环境下 MobileNetV4 三分类任务
  • VUE如何前端控制及动态路由详细讲解