文档多模态增强:在“阅读理解”任务中重拾“理解”

社区文章 发布于 2024 年 5 月 16 日

我们很高兴能与大家分享 Hugging Face 在文档 AI 方面持续取得的进展。继我们最近发布了两个最大的文档数据集 IDLPDFa 后,我们正积极利用这些数据集中的标注,特别是文本行的位置信息。文档 AI 团队的 Pablo MontalvoRoss WightmanDana Aubakirova 正在开发一个用于文档的数据增强流水线。这个流水线设计独特,旨在同时修改视觉和文本特征,从而增强模型在预训练阶段处理和理解复杂文档的能力。


引言

文档数据增强的需求源于真实世界文档与其数字扫描件之间的差异。真实文档常因打印、扫描或复印等过程而发生变化。这些物理变化会引入视觉失真,如折痕、褶皱、撕裂、墨迹变化和注释,从而使数字解读变得复杂。

Figure Description

图 1:IDL 数据集中的样本,展示了倾斜方向、墨迹变化、手写注释以及扫描引入的噪声。

许多涉及文档的机器学习任务(如文档分类和信息提取)的性能都受到这种噪声的显著影响。尽管如此,这些高级任务通常仍被期望能有效地处理这类带有噪声的扫描文档。为解决此问题,研究者开发了多种方法来创建包含现实噪声伪影和退化的文档图像,这些通常是扫描、复印和其他办公流程的结果。这些努力旨在评估和增强模型的鲁棒性及其“阅读”能力。

另一个研究方向是生成合成数据,以解决标注数据稀缺的问题,并规避真实世界数据所带来的复杂性。例如,WebSight 是一个合成数据集,旨在训练 AI 模型处理视觉网页设计并将其转换为功能性 HTML 代码。通过专注于合成数据,他们成功绕过了真实世界 HTML 中常见的噪声和复杂性,使 AI 模型能高效学习。这一概念也延伸到了文档处理领域。例如,SynthDog 利用 ImageNet 的背景、纸张照片数据库的纹理以及维基百科的文本来合成文档。这些文档的布局通过一个简单的基于规则的算法生成,该算法将内容排列成随机堆叠的网格。为了增强真实感,还应用了各种图像渲染技术,使文档看起来栩栩如生,更易于模型解释和分析。另一个例子是 Genalog,这是一个开源、跨平台的 Python 包,专为生成带有合成噪声的文档图像而设计,模拟扫描的模拟文档的外观。该工具允许添加各种文本退化,从而增加文档分析模型的挑战性。

文档理解任务的标准方法是,首先预训练模型以阅读文本,然后根据具体任务对模型进行微调,以理解文档内容。前述所有数据增强工作要么是修改现有图像,要么是生成全新文档。在第一种情况下,如下图 2 所示,只改变了图像,而文本保持不变。

image/png

图 2:使用 Albumentations 提供的图像变换对文档应用的一组随机增强。

我们的重点是结合多种文本增强技术和图像渲染过程。这种方法使我们能够创建具有扭曲布局和语义相似内容的文档,并相应地修改标注。主要目标是确保模型能够完全理解复杂的文档布局、字体变化和修改后的上下文。

我们假设,与人类相似,阅读和理解的能力应该同步发展。因此,至关重要的是设计有针对性的数据增强方法,既能“增强模型对视觉文本失真的鲁棒性”,又能“使其能够准确解释句法、词序和整体上下文,从预训练阶段就保持语义完整性”。

一个密切相关的方法见于 Pix2Struct 的预训练阶段,其涉及恢复解析的被遮蔽部分,如图 3 所示,这类似于掩码语言建模。值得注意的是,Pix2Struct-Large 在 DocVQA 任务上比之前的视觉 SOTA 模型 Donut 高出 9 个点。与 UDOP 等顶级单任务方法不同(这些方法使用现成的 OCR 系统、预训练的编码器和额外的预训练),Pix2Struct 仅依赖视觉表示,无需领域内数据,却实现了 76.6 的有竞争力的 ANLS。我们方法的一个主要区别在于,我们不仅遮蔽内容,还在重新渲染之前对其进行修改。

image/png

图 3:Pix2Struct 预热阶段的输入-输出对示例,图像中的视觉信号被遮蔽,任务是利用视觉上下文作为线索恢复解析的被遮蔽部分。


所提出的方法

为了增强文档图像,我们首先随机选择文档中的文本行。一个超参数控制要修改的行数。然后,我们使用边界框确定文本位置,并用白色补丁遮盖这些区域,如图 1 所示。

Description of the image

图 4:流水线首先根据一个预定义的超参数随机选择并用白色补丁遮盖文档每页中的特定文本行,该超参数控制要修改的文本比例。遮盖后,每行文本都通过随机选择的文本增强方法进行修改,然后重新渲染到原始布局中。页面的标注也相应地被更改。

接下来,我们将几种文本增强方法之一应用于相应的文本行,这些方法通常用于文本生成任务。这些方法包括 **随机插入、删除、交换** 和 **关键词替换**。目前,我们使用 NLTK 和 RAKE 等工具进行这些操作。然而,利用大语言模型(LLM)来生成这类文本增强具有巨大潜力。不过,在训练期间集成这种动态增强可能会导致计算成本高昂。

在修改文本后,我们将其重新渲染到文档上,使用原始边界框的大小作为新文本字体大小的代理。JSON 文件也会进行相应更改。这个过程产生了一个具有语义相似的文本内容和视觉上扭曲的图像的数据集。

image/png

图 5:增强后的输入对的详细图示。高亮显示的行表示已更改的行。


下一步计划

如前所述,阅读和思考是紧密交织的认知过程,可以同时发生。在阅读时,我们会进行多项认知任务,如词语识别、句子解释和意义构建。这不仅涉及解码书面文字,还包括激活背景知识、进行推断以及将新信息与已知信息相结合。我们希望模型能够识别关键词、理解同义词、在信息缺失时填补空白,并能尽管词序发生变化也能掌握上下文,这凸显了阅读理解的复杂性。这些能力表明,思考不仅仅是阅读的附属品,而是与之深度融合,对于解释各类文本至关重要。

因此,一个相关的问题随之而来:在学习或训练过程中,整合这些认知任务的最佳阶段是什么?也就是说,思考应该在何时被明确地纳入其中?这对于开发一个能有效模仿人类阅读和理解能力的强大模型至关重要。

在此背景下,我们需要评估在模型训练的不同阶段引入数据增强技术的有效性。具体来说,我们正在探索是在模型使用真实数据训练后应用这些技术更有益,还是从训练一开始就应用,或是通过在整个训练过程中逐步整合。下图描绘了在这三种情况下,数据增强对模型认知任务性能的预期影响。我们正在积极分析这个问题,并将在有新发现时提供更新。

image/png

图 6:在不同预训练阶段加入数据增强后,模型“认知能力”的预期曲线。

image/png

图 7:更多增强样本的例子。请注意字体和字号的差异,这引入了额外的挑战。

致谢

非常感谢 Pablo MontalvoRoss WightmanVaibhav Srivastav 对这篇博文提出的详细反馈。

参考文献

@inproceedings{lee2023pix2struct,
  title={Pix2struct: Screenshot parsing as pretraining for visual language understanding},
  author={Lee, Kenton and Joshi, Mandar and Turc, Iulia Raluca and Hu, Hexiang and Liu, Fangyu and Eisenschlos, Julian Martin and Khandelwal, Urvashi and Shaw, Peter and Chang, Ming-Wei and Toutanova, Kristina},
  booktitle={International Conference on Machine Learning},
  pages={18893--18912},
  year={2023},
  organization={PMLR}
}

@inproceedings{groleau2023augraphy,
  title={Augraphy: A data augmentation library for document images},
  author={Groleau, Alexander and Chee, Kok Wei and Larson, Stefan and Maini, Samay and Boarman, Jonathan},
  booktitle={International Conference on Document Analysis and Recognition},
  pages={384--401},
  year={2023},
  organization={Springer}
}

@inproceedings{kim2022ocr,
  title={Ocr-free document understanding transformer},
  author={Kim, Geewook and Hong, Teakgyu and Yim, Moonbin and Nam, JeongYeon and Park, Jinyoung and Yim, Jinyeong and Hwang, Wonseok and Yun, Sangdoo and Han, Dongyoon and Park, Seunghyun},
  booktitle={European Conference on Computer Vision},
  pages={498--517},
  year={2022},
  organization={Springer}
}

@article{feng2020genaug,
  title={Genaug: Data augmentation for finetuning text generators},
  author={Feng, Steven Y and Gangal, Varun and Kang, Dongyeop and Mitamura, Teruko and Hovy, Eduard},
  journal={arXiv preprint arXiv:2010.01794},
  year={2020}
}

@article{laurenccon2024unlocking,
  title={Unlocking the conversion of Web Screenshots into HTML Code with the WebSight Dataset},
  author={Lauren{\c{c}}on, Hugo and Tronchon, L{\'e}o and Sanh, Victor},
  journal={arXiv preprint arXiv:2403.09029},
  year={2024}
}

社区

注册登录 发表评论