微信扫码
与创始人交个朋友
我要投稿
引入了一个创建数据集的方法,用于将 PDF 与源代码配对,该数据集用于训练 Nougat 模型。
该方法仅依赖于页面的图像即可将PDF转换为轻量级标记语言,不依赖于 OCR
PDF在互联网上的数据格式中排名第二,仅次于HTML,占普通抓取量的2.4%。然而,这些文件中存储的信息很难转换成其他格式。对于高度专业化的文档尤其如此。与我们目标相关的开源解决方案包括GROBID,它将数字生成的科学文档解析为XML,重点关注书目数据,以及pdf2htmlEX,它将数字生成的PDF转换为HTML,同时保留文档的布局和外观。然而,这两种解决方案都无法恢复数学表达式的语义信息。我们基于Donut(点评:又是一篇开创性的经典工作)架构构建。该模型不需要任何与OCR相关的输入或模块。模型结构如下:
我们将文档图像渲染为96 DPI的分辨率。由于Swin Transformer的输入尺寸限制,我们选择了输入尺寸(H, W) = (896, 672)。这个纵横比介于美国信纸(22:17)和A4纸格式(4:3)之间。文档图像将被重新调整大小,然后进行填充以达到所需的输入尺寸。这个输入尺寸允许我们使用Swin基础模型架构。我们使用预训练的权重来初始化模型。Transformer解码器的最大序列长度为S = 4096。这个相对较大的长度是由于学术论文的文本可能非常密集,特别是表格的语法在标记上非常密集。
本文主要贡献在于数据构建流程,这里不做过多介绍模型结构。接下来看下数据构建方法。
# Datasets
# 分割页面
在编译过程中,LaTeX编译器会自动确定PDF文件的分页。由于我们没有为每篇论文重新编译LaTeX源码,我们必须启发式地将markdown源文本分割成对应不同页面的部分(即每一页pdf图像对应一个markdown文件)。这一步涉及大量的规则处理,比如说:为了解决PDF中的图形和表格可能与源代码中的位置不对应问题,在预处理步骤中使用pdffigures2删除这些元素。然后将识别出的标题与XML文件中的标题进行比较,并基于它们的Levenshtein距离进行匹配,一旦源文档被分割成单独的页面,被删除的图形和表格就会重新插入到每个页面的末尾。
从所周知,一旦涉及大量规则,就很难确保生成的单页pdf图像和对应的文本是完全匹配的,再加上数据处理过程中的字符规范化问题,这些问题中的每一个都降低了整体数据质量。但作者认为大量的训练样本弥补了这些小错误。
点评:个人觉得这里的数据构建有些地方并不合理,比如说这里将图形和表格的位置全部插入到每页的末尾,会导致和图片中的阅读顺序对不上。所以存在优化空间的,比如说可以基于版式提取模型得到pdf每页图像的block,对每页pdf靠近底部的text block进行OCR识别,再去和markdown源文本里的内容做对比,这样将markdown文件拆分成单个pdf图像对应的markdown文件也会更准确。
我们观察到模型会退化为一遍又一遍地重复相同的句子。模型无法自行从这种状态中恢复过来。在最简单的情况下,最后一个句子或段落被不断地重复。我们在测试集中的1.5%页面观察到了这种行为,但领域外文档的频率会增加。陷入重复循环是使用贪婪解码采样时基于Transformer模型的一个已知问题。模型也可能在两个句子之间交替,但有时会改变一些单词,因此严格的重复检测是不够的。作者提出在训练过程中引入随机扰动以增强模型对错误预测标记的处理能力,以及在推理时检测和处理重复的方法,但是仍然无法根本解决这类问题,这也让模型的实用性受到限制。
点评:个人认为有两种方法可以降低重复和幻觉:
1.输出添加位置信息的预测,比如TextMonkey和mPlug-DocOwl1.5都把text grounding任务做为下游任务进行微调,在消融实验里也提到了增加文本位置预测可以显著降低模型输出的幻觉;
2. 降低图像里文本的数量,在图片中文本数量较少时,一般不容易出现重复和幻觉,所以可以按上篇文章提到的办法,将图片划分为多个有物理意思的block,再对单个block训练对应的端到端识别模型,这样也可以解决模型输出的重复问题
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-04-11
2024-08-21
2024-07-09
2024-07-18
2024-08-13
2024-10-25
2024-07-01
2024-06-17