跳到正文
北京时间
原文
Hugging Face:Blog·· 2022-11-21精选AI 评分66

Hugging Face 发布 Document AI 实践指南:六大用例与开源模型选型

Accelerating Document AI

AI 导读

Hugging Face 发布 Document AI 指南,梳理 OCR、文档图像分类、版面分析、文档解析、表格识别和 DocVQA 六大用例及对应开源模型与指标。

推荐理由

原文系统梳理了 Document AI 六类用例及对应开源模型、指标与许可证,团队可直接按图索骥选型并自建方案。

正文 · AI 翻译

企业中充斥着包含知识的文档,而这些知识无法通过数字化工作流获取。这些文档可能包括信件、发票、表单、报告到收据等各种形式。随着文本、视觉和多模态 AI 的进步,现在可以解锁这些信息。本文展示了您的团队如何免费使用开源模型构建自定义解决方案!

Document AI 包含许多数据科学任务,从图像分类、图像转文本、文档问答、表格问答到视觉问答。本文首先介绍 Document AI 中用例的分类法以及针对这些用例的最佳开源模型。接下来,本文重点关注许可、数据准备和建模。在本文中,有指向网络演示、文档和模型的链接。

用例

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

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

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

png

OCR 是 Document AI 用例的支柱,因为它对于将文本转换为计算机可读的内容至关重要。一些广泛可用的、在文档级别运行的 OCR 模型包括 EasyOCR 或 PaddleOCR。还有像 TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models 这样的模型,它在单行文本图像上运行。该模型与文本检测模型(如 CRAFT)配合使用,后者首先以边界框的形式识别文档中各个文本“片段”。OCR 的相关指标是字符错误率(CER)以及词级别的精确率、召回率和 F1。查看这个 Space 以了解 CRAFT 和 TrOCR 的演示。

什么是文档图像分类?

将文档分类到适当的类别(如表单、发票或信件)称为文档图像分类。分类可以使用文档的图像和文本中的一种或两种。最近新增的多模态模型利用视觉结构和底层文本,显著提高了分类器的性能。

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

png

这就是 LayoutLM 和 Donut 这类模型发挥作用的地方。通过不仅纳入文本信息,还纳入视觉信息,这些模型可以大幅提高准确率。作为对比,在 RVL-CDIP 这一文档图像分类的重要基准上,一个 BERT-base 模型仅使用文本就能达到 89% 的准确率。而 DiT(Document Image Transformer)是一个纯视觉模型(即它不以文本作为输入),可以达到 92% 的准确率。但像 LayoutLMv3 和 Donut 这样使用多模态 Transformer 同时利用文本和视觉信息的模型,可以达到 95% 的准确率!这些多模态模型正在改变从业者解决 Document AI 用例的方式。

什么是文档版面分析?

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

目前文档版面分析领域最先进的模型是 LayoutLMv3 和 DiT(Document Image Transformer)。这两个模型都使用经典的 Mask R-CNN 目标检测框架作为骨干。这个 文档版面分析 Space 展示了如何使用 DiT 来识别文档中的文本段、标题和表格。这里展示了一个使用 DiT 检测文档不同部分的示例。

png

使用 DiT 进行文档版面分析。

文档版面分析通常使用 mAP(平均精度均值)指标,该指标常用于评估目标检测模型。版面分析的一个重要基准是 PubLayNet 数据集。在撰写本文时最先进的 LayoutLMv3 达到了 0.951 的整体 mAP 分数(来源)。

什么是文档解析?

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

LayoutLM 的第一个版本(现在称为 LayoutLMv1)于 2020 年发布,相比现有基准有了大幅提升,并且它至今仍是 Hugging Face Hub 上最受欢迎的 Document AI 模型之一。LayoutLMv2 和 LayoutLMv3 在预训练期间纳入了视觉特征,从而带来了改进。LayoutLM 系列为 Document AI 性能带来了阶跃式变化。例如,在 FUNSD 基准数据集上,一个 BERT 模型的 F1 分数为 60%,但使用 LayoutLM,可以达到 90%!

LayoutLMv1 现在有许多后继者,包括 ERNIE-Layout,它在这个 Space 中展示了令人期待的结果。对于多语言用例,有 LayoutLM 的多语言变体,如 LayoutXLM 和 LiLT。这张来自 LayoutLM 论文的图展示了 LayoutLM 分析一些不同文档的过程。

png

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

drawing

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

在 Donut 之后,发布了各种类似的模型,包括 Google 的 Pix2Struct 和 Microsoft 的 UDOP。如今,更大的视觉语言模型如 LLaVa-NeXT 和 Idefics2 可以通过微调以端到端的方式执行文档解析。事实上,这些模型可以微调以执行任何文档 AI 任务,从文档图像分类到文档解析,只要该任务可以定义为图像-文本到文本的任务。例如,参见 教程笔记本 来微调 Google 的 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 数据集的一个示例。用户问:“Mention the ZIP code written?”,模型则给出答案。

png

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

DocVQA 通常使用平均归一化 Levenshtein 相似度(ANLS)指标进行评估。关于该指标的更多细节,我们参考本指南。目前在开源 DocVQA 基准上最先进的是 LayoutLMv3,其 ANLS 得分为 83.37。然而,该模型由 OCR + 多模态 Transformer 的流水线组成。

较新的模型,如 Donut、LLaVa-NeXT 和 Idefics2,使用单个基于 Transformer 的神经网络以端到端的方式解决该任务,不依赖 OCR。Impira 托管了一个令人兴奋的 Space,展示了用于 DocVQA 的 LayoutLM 和 Donut。

视觉问答很有吸引力;然而,要成功使用它有许多需要考虑的事项。拥有准确的训练数据、评估指标和后处理至关重要。对于采用这一用例的团队来说,要注意 DocVQA 可能很难正确运行。在某些情况下,回答可能不可预测,模型可能会“幻觉”,给出文档中并未出现的答案。视觉问答模型可能继承数据中的偏见,从而引发伦理问题。确保正确的模型设置和后处理是构建成功的 DocVQA 解决方案不可或缺的一部分。

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

工业界和学术界为推进文档 AI 做出了巨大贡献。数据科学家可以使用各种各样的模型和数据集。然而,许可问题可能成为构建企业级解决方案的拦路虎。 一些知名模型具有限制性许可证,禁止将模型用于商业目的。最值得注意的是,微软的 LayoutLMv2 和 LayoutLMv3 检查点不能用于商业用途。当你启动一个项目时,我们建议仔细评估候选模型的许可证。从一开始就清楚你想使用哪些模型至关重要,因为这可能会影响数据收集和标注。本文末尾附有流行模型及其许可信息的表格。

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

文档 AI 的数据准备至关重要且充满挑战。拥有正确标注的数据非常关键。以下是我们一路走来学到的一些经验教训,以及应对数据准备的方法。

首先,机器学习依赖于数据的规模和质量。如果你的文档图像质量很差,就不能指望 AI 能够神奇地读取这些文档。同样,如果你的训练数据量小且类别众多,你的性能可能会很差。文档 AI 与机器学习中的其他问题一样,通常数据量越大,性能就越好。

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

第三,从少量数据标注开始,并明智地选择你的工具。根据我们的经验,几百份文档就能取得不错的效果。所以从小规模开始,仔细评估你的性能。一旦你缩小了整体方法的范围,就可以开始扩大数据规模,以最大化你的预测准确率。在标注时,请记住,像版面识别和文档提取这样的任务需要识别文档中的特定区域。你需要确保你的标注工具支持边界框。

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

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

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

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

你应该使用更高分辨率的图像吗?当使用图像与 LayoutLMv2 时,它会将图像缩小到 224×224,这会破坏图像的原始宽高比。较新的模型如 Donut、Pix2Struct 和 Idefics2 使用完整的高分辨率图像,保持原始宽高比。研究表明,更高的图像分辨率会显著提升性能,因为它让模型能够“看到”更多内容。然而,这也带来了训练和推理所需额外内存的成本。

drawing

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

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

后续步骤

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

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

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

资源

许多 Document AI 模型的 notebook 和教程可在以下位置找到:

Document AI 有哪些流行的开源模型?

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

此内容最后更新于 2024 年 6 月。

模型 论文 许可证 检查点
LayoutLM arxiv MIT huggingface
LayoutXLM arxiv CC BY-NC-SA 4.0 huggingface
LayoutLMv2 arxiv CC BY-NC-SA 4.0 huggingface
LayoutLMv3 arxiv CC BY-NC-SA 4.0 huggingface
DiT arxiv CC BY-NC-SA 4.0 huggingface
TrOCR arxiv MIT huggingface
Table Transformer arxiv MIT huggingface
LiLT arxiv MIT huggingface
Donut arxiv MIT huggingface
Pix2Struct arxiv Apache 2.0 huggingface
UDOP arxiv MIT huggingface
Idefics2 arxiv Apache 2.0 huggingface
PaliGemma 博客文章 PaliGemma huggingface

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

常见文档 AI 任务的指标和数据集表格。最后更新于 2022 年 11 月。

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

来源:Hugging Face:Blog · huggingface.co