加速文档 AI

发布于 2022 年 11 月 21 日
在 GitHub 上更新

企业中充满了各种文档,其中包含的知识无法被数字化工作流程所获取。这些文档种类繁多,从信件、发票、表格、报告到收据。随着文本、视觉和多模态 AI 的进步,现在已经可以解锁这些信息。本文将向您展示,您的团队如何利用开源模型免费构建定制化解决方案!

文档 AI 包含许多数据科学任务,例如 图像分类图像到文本文档问答表格问答视觉问答。本文首先对文档 AI 中的用例进行了分类,并介绍了适用于这些用例的最佳开源模型。接着,文章将重点讨论授权许可、数据准备和建模。在整篇文章中,我们提供了指向 Web 演示、文档和模型的链接。

用例

构建文档 AI 解决方案至少有六种通用用例。这些用例在文档输入和输出的类型上有所不同。在解决企业级文档 AI 问题时,通常需要结合多种方法。

什么是光学字符识别 (OCR)?

将打印、手写或印刷的文本转换为机器可编码文本的过程称为光学字符识别 (OCR)。这是一个被广泛研究的问题,有许多成熟的开源和商业产品。下图展示了一个将手写体转换为文本的例子。

png

OCR 是文档 AI 用例的支柱,因为它对于将文本转换为计算机可读内容至关重要。一些广泛使用的文档级 OCR 模型包括 EasyOCRPaddleOCR。还有像 TrOCR: 基于 Transformer 的预训练模型光学字符识别 这样的模型,它可以在单行文本图像上运行。该模型与像 CRAFT 这样的文本检测模型配合使用,CRAFT 首先以边界框的形式识别文档中各个“文本块”。OCR 的相关指标是字符错误率 (CER) 和词级的精确率、召回率及 F1 分数。可以查看这个 Space 来了解 CRAFT 和 TrOCR 的演示。

什么是文档图像分类?

将文档分类到适当的类别,如表格、发票或信件,称为文档图像分类。分类可以只使用文档的图像或文本,也可以两者都用。近期新增的多模态模型,它们同时利用视觉结构和底层文本,极大地提升了分类器的性能。

一种基本方法是在文档图像上应用 OCR,然后使用类似 BERT 的模型进行分类。然而,仅依赖 BERT 模型并未考虑任何布局或视觉信息。下图来自 RVL-CDIP 数据集,展示了不同类型文档在视觉结构上的差异。

png

这时候,像 LayoutLMDonut 这样的模型就派上用场了。通过不仅结合文本,还结合视觉信息,这些模型可以显著提高准确性。作为比较,在重要的文档图像分类基准 RVL-CDIP 上,一个 BERT-base 模型通过使用文本可以达到 89% 的准确率。而 DiT (文档图像转换器) 是一个纯视觉模型 (即不将文本作为输入),可以达到 92% 的准确率。但像 LayoutLMv3Donut 这样的模型,它们通过多模态 Transformer 同时使用文本和视觉信息,可以达到 95% 的准确率!这些多模态模型正在改变从业者解决文档 AI 用例的方式。

什么是文档布局分析?

文档布局分析是确定文档物理结构的任务,即识别构成文档的各个基本构建块,如文本段落、标题和表格。这个任务通常通过将其构建为图像分割/对象检测问题来解决。模型会输出一组分割掩码/边界框以及类别名称。

目前在文档布局分析方面最先进的模型是 LayoutLMv3DiT (文档图像转换器)。这两个模型都使用经典的 Mask R-CNN 框架作为对象检测的骨干。这个文档布局分析 Space 展示了如何使用 DiT 来识别文档中的文本段落、标题和表格。下图展示了一个使用 DiT 检测文档不同部分的示例。

png

使用 DiT 进行文档布局分析。

文档布局分析通常使用 mAP (平均精度均值) 指标,这在评估对象检测模型时很常用。布局分析的一个重要基准是 PubLayNet 数据集。在撰写本文时,LayoutLMv3 是最先进的模型,其总 mAP 得分为 0.951 (来源)。

什么是文档解析?

文档解析是布局分析的进一步延伸。文档解析是从文档中识别和提取关键信息 (通常以键值对的形式),例如从发票表格中提取姓名、项目和总额。这个 LayoutLMv2 Space 展示了如何解析文档以识别问题、答案和标题。

LayoutLM 的第一个版本 (现在称为 LayoutLMv1) 于 2020 年发布,它在现有基准测试上取得了显著进步,至今仍是 Hugging Face Hub 上最受欢迎的文档 AI 模型之一。LayoutLMv2LayoutLMv3 在预训练期间加入了视觉特征,从而带来了性能提升。LayoutLM 系列为文档 AI 的性能带来了阶跃式的变化。例如,在 FUNSD 基准数据集上,BERT 模型的 F1 得分为 60%,而使用 LayoutLM 则可以达到 90%!

LayoutLMv1 现在有了许多后续模型,包括 ERNIE-Layout,它在这个 Space 中展示了有前景的结果。对于多语言用例,有 LayoutLM 的多语言变体,如 LayoutXLMLiLT。下图来自 LayoutLM 论文,展示了 LayoutLM 分析不同文档的情景。

png

LayoutLM 的许多后继者采用了一种生成的、端到端的方法。这始于 Donut 模型,它简单地将文档图像作为输入,并生成文本作为输出,不依赖于任何独立的 OCR 引擎。

drawing

由编码器-解码器 Transformer 组成的 Donut 模型。图片来自 Donut 论文。

在 Donut 之后,各种类似的模型被发布,包括谷歌的 Pix2Struct 和微软的 UDOP。如今,像 LLaVa-NeXTIdefics2 这样的大型视觉语言模型可以被微调,以端到端的方式执行文档解析。事实上,只要任务可以被定义为图像-文本到文本的任务,这些模型就可以被微调以执行任何文档 AI 任务,从文档图像分类到文档解析。例如,可以参考这篇教程笔记,来微调谷歌的 PaliGemma (一个较小的视觉语言模型) 以从收据图像中返回 JSON。

像 PaliGemma 这样的视觉语言模型可以在任何图像-文本到文本任务上进行微调。请参阅教程笔记

数据科学家们发现,文档布局分析和提取是企业中的关键用例。现有的商业解决方案通常无法处理企业数据在内容和结构上的多样性。因此,数据科学团队通过微调自己的模型,常常可以超越商业工具。

什么是表格检测、提取和表格结构识别?

文档中通常包含表格,而大多数 OCR 工具在处理表格数据时效果并不理想。表格检测是识别表格在文档中位置的任务,表格提取则是创建这些信息的结构化表示。表格结构识别是识别构成表格的各个部分,如行、列和单元格的任务。表格功能分析 (FA) 则是识别表格的键和值的任务。下图来自 Table Transformer,它说明了这些不同子任务之间的区别。

jpeg

表格检测和结构识别的方法与文档布局分析类似,都使用对象检测模型,输出一组边界框和相应的类别。

最新的方法,如 Table Transformer,可以用同一个模型实现表格检测和表格结构识别。Table Transformer 是一个类似 DETR 的对象检测模型,在 PubTables-1M (一个包含一百万个表格的数据集) 上进行训练。表格检测和结构识别的评估通常使用平均精度 (AP) 指标。据报道,Table Transformer 在 PubTables-1M 上的性能为:表格检测的 AP 为 0.966,表格结构识别 + 功能分析的 AP 为 0.912。

表格检测和提取是一种令人兴奋的方法,但其在您的数据上的结果可能会有所不同。根据我们的经验,表格的质量和格式差异很大,这会影响模型的性能。在一些自定义数据上进行额外的微调将大大提高性能。

什么是文档问答 (DocVQA)?

对文档进行问答极大地改变了人们与 AI 的互动方式。近期的进步使得可以要求模型回答关于图像的问题——这被称为文档视觉问答,简称 DocVQA。在收到一个问题后,模型会分析图像并给出答案。下图是来自 DocVQA 数据集 的一个例子。用户问:“请问上面写的邮政编码是多少?” 模型则回答了相应的答案。

png

在过去,构建一个 DocVQA 系统通常需要多个模型协同工作。可能会有单独的模型用于分析文档布局、执行 OCR、提取实体,然后再回答问题。最新的 DocVQA 模型可以以端到端的方式实现问答,仅包含一个单一的 (多模态) 模型。

DocVQA 通常使用平均归一化莱文斯坦相似度 (ANLS) 指标进行评估。有关此指标的更多详细信息,我们建议参考本指南。目前在 DocVQA 基准测试上,开源模型中的 SOTA (state-of-the-art) 是 LayoutLMv3,它达到了 83.37 的 ANLS 分数。然而,这个模型是由 OCR + 多模态 Transformer 组成的流水线。

DonutLLaVa-NeXTIdefics2 这样的较新模型,使用单一的基于 Transformer 的神经网络以端到端的方式解决此任务,不依赖于 OCR。Impira 托管了一个非常有趣的 Space,展示了 LayoutLM 和 Donut 在 DocVQA 上的应用。

视觉问答非常引人注目;然而,要成功使用它,需要考虑许多因素。拥有准确的训练数据、评估指标和后处理至关重要。对于着手这个用例的团队来说,要知道 DocVQA 可能很难正常工作。在某些情况下,响应可能不可预测,模型可能会“幻觉”,给出文档中没有出现的答案。视觉问答模型可能会继承数据中的偏见,从而引发伦理问题。确保正确的模型设置和后处理是构建成功的 DocVQA 解决方案的必要组成部分。

文档 AI 中的许可问题有哪些?

工业界和学术界为推动文档 AI 的发展做出了巨大贡献。有各种各样的模型和数据集可供数据科学家使用。然而,对于构建企业解决方案来说,许可问题可能是一个无法逾越的障碍。一些知名的模型具有限制性许可,禁止将模型用于商业目的。最值得注意的是,微软的 LayoutLMv2LayoutLMv3 检查点不能用于商业用途。当您开始一个项目时,我们建议仔细评估潜在模型的许可。在项目开始时了解您想使用哪些模型至关重要,因为这可能会影响数据收集和标注。本文末尾有一张表格,列出了流行模型及其许可信息。

文档 AI 中的数据准备问题有哪些?

文档 AI 的数据准备至关重要且充满挑战。拥有正确标注的数据至关重要。以下是我们在数据准备方面学到的一些经验。

首先,机器学习依赖于数据的规模和质量。如果你的文档图像质量差,你不能指望 AI 能神奇地读懂这些文档。同样,如果你的训练数据量小但类别多,你的模型性能可能会很差。文档 AI 和其他机器学习问题一样,更多的数据通常会带来更好的性能。

其次,保持方法的灵活性。你可能需要测试几种不同的方法来找到最佳解决方案。一个很好的例子是 OCR,你可以使用像 Tesseract 这样的开源产品,像 Cloud Vision API 这样的商业解决方案,或者像 Donut 这样的开源多模态模型内置的 OCR 功能。

第三,从小规模的数据标注开始,并明智地选择你的工具。根据我们的经验,几百份文档就可以得到不错的结果。所以从小处着手,并仔细评估你的性能。一旦你确定了大致的方法,就可以开始扩大数据规模,以最大限度地提高你的预测准确性。在进行标注时,请记住,像布局识别和文档提取这样的任务需要识别文档内的特定区域。你需要确保你的标注工具支持边界框。

文档 AI 中的建模问题有哪些?

构建模型的灵活性为数据科学家带来了许多选择。我们强烈建议团队从预训练的开源模型开始。这些模型可以针对您的特定文档进行微调,这通常是获得一个好模型的最快方法。

对于考虑构建自己的预训练模型的团队,请注意这可能涉及数百万份文档,并且训练一个模型可能需要几周时间。构建预训练模型需要大量投入,不推荐大多数数据科学团队这样做。相反,可以从微调一个模型开始,但首先要问自己以下这些问题。

你希望模型处理 OCR 吗?例如,Donut 不需要对文档进行 OCR,它直接处理全分辨率图像,因此在建模前无需 OCR。然而,根据你的问题设置,单独进行 OCR 可能会更简单。

你应该使用更高分辨率的图像吗?当使用 LayoutLMv2 处理图像时,它会将图像下采样到 224x224,这会破坏图像的原始宽高比。像 DonutPix2StructIdefics2 等较新的模型则使用完整的高分辨率图像,并保持原始宽高比。研究表明,更高的图像分辨率可以显著提高性能,因为它让模型能“看到”更多信息。然而,这也带来了训练和推理时需要额外内存的代价。

drawing

图像分辨率对下游任务性能的影响。图片摘自 Pix2Struct 论文

你如何评估模型?注意边界框未对齐的问题。你应该确保你选择的 OCR 引擎提供的边界框与模型处理器对齐。验证这一点可以避免出现意外的差结果。其次,让你的项目需求指导你的评估指标。例如,在某些任务中,如词元分类或问答,100% 匹配可能不是最佳指标。像部分匹配这样的指标可以考虑更多潜在的词元,例如将“Acme”和“inside Acme”视为匹配。最后,在评估过程中考虑伦理问题,因为这些模型可能使用有偏见的数据,或提供不稳定的结果,可能对某些人群产生偏见。

下一步

您是否看到了文档 AI 的可能性?我们每天都与企业合作,利用最先进的视觉和语言模型解锁宝贵的数据。我们在本文中包含了各种演示的链接,您可以将它们作为起点。文章的最后一部分包含了开始编写您自己的模型 (例如视觉问答) 的资源。一旦您准备好开始构建您的解决方案,Hugging Face 公共中心是一个很好的起点。它托管了大量的文档 AI 模型。

如果您想加速您的文档 AI 工作,Hugging Face 可以提供帮助。通过我们的企业加速计划,我们与企业合作,为 AI 用例提供指导。对于文档 AI,这可能包括帮助构建预训练模型、提高微调任务的准确性,或为处理您的第一个文档 AI 用例提供整体指导。

我们还可以提供计算积分套餐,供您大规模使用我们的训练 (AutoTrain) 或推理 (Spaces 或 Inference Endpoints) 产品。

资源

许多文档 AI 模型的 Notebook 和教程可以在以下位置找到:

哪些是流行的开源文档 AI 模型?

下表列出了当前可用的、在文档 AI 任务上达到 SOTA (state-of-the-art) 性能的 Transformers 模型。一个重要趋势是,我们看到越来越多的视觉语言模型以端到端的方式执行文档 AI 任务,将文档图像作为输入并生成文本作为输出。

最后更新于 2024 年 6 月。

文档 AI 的指标和数据集有哪些?

一张表格,列出了常见的文档 AI 任务的常用指标和数据集。此表格最后更新于 2022 年 11 月。

任务 典型指标 基准数据集
光学字符识别 字符错误率 (CER)
文档图像分类 准确率, F1 RVL-CDIP
文档布局分析 mAP (平均精度均值) PubLayNet, XFUND(表格)
文档解析 准确率, F1 FUNSD, SROIE, CORD
表格检测与提取 mAP (平均精度均值) PubTables-1M
文档视觉问答 平均归一化莱文斯坦相似度 (ANLS) DocVQA

社区

注册登录 以发表评论