无需OCR的文档理解Transformer模型Donut


📖阅读时长:19分钟

🕙发布时间:2025-02-14

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

Donut是一个用于文档图像通用理解的端到端(即自包含)视觉文档理解(VDU)模型。Donut的架构相当简单,由基于Transformer的视觉编码器和文本解码器模块组成。

Donut不依赖任何与OCR功能相关的模块,而是使用视觉编码器从给定的文档图像中提取特征。接下来的文本解码器将提取的特征映射为子词标记序列,以构建所需的结构化格式。每个模型组件都基于Transformer,因此该模型很容易进行端到端的训练。

编码器

视觉编码器将输入的文档图像转换为一组嵌入向量。虽然基于CNN的模型或基于Transformer的模型都可以用作编码器网络,但这里使用Swin Transformer,因为在文档解析的初步研究中它表现最佳。Swin Transformer首先将输入图像$x$分割为不重叠的图像块。Swin Transformer块由基于移位窗口的多头自注意力模块和一个两层的多层感知器(MLP)组成,并应用于这些图像块。然后,在每个阶段对图像块令牌应用补丁合并层。最终Swin Transformer块的输出$\{z\}$被输入到后续的文本解码器中。

解码器

给定$\{z\}$,文本解码器生成一个令牌序列,这是第$i$个令牌的独热向量。BART被用作解码器架构。具体来说,解码器模型的权重是使用公开可用的预训练多语言BART模型的权重进行初始化的。

模型输入

遵循原始Transformer,使用了教师强制策略,这是一种模型训练策略,它使用真实标签作为输入,而不是前一时间步的模型输出。在测试阶段,受GPT-3的启发,模型根据提示生成令牌序列。

在我们的实验中,为每个下游任务的提示添加了新的特殊令牌。

预训练

模型被训练以按阅读顺序(基本上是从左上角到右下角)读取图像中的所有文本。目标是通过联合依赖图像和先前的上下文,最小化下一个令牌预测的交叉熵损失。这个任务可以被解释为一个伪OCR任务。该模型在视觉语料库(即IIT CDIP数据集)上作为视觉语言模型进行训练。

下游任务

  • 文档分类:RVL CDIP
  • 文档信息提取

    • CORD:综合收据数据集(CORD)是一个公开的基准数据集,由800个训练样本、100个验证样本和100个测试收据图像组成。收据上的文字是拉丁字母。唯一字段的数量为30个,包括菜单名称、数量、总价等等。信息中存在复杂的结构(即嵌套组和层次结构,如items>item>{name, count, price})。
    • Ticket:这是一个公开的基准数据集,由1500个训练样本和400个测试的中国火车票图像组成。我们将训练集的10%分割出来作为验证集。有8个字段,分别是车票号码、出发站、车次等等。信息结构简单,所有键都保证只出现一次,并且每个字段的位置是固定的。
    • Business Card (In-Service Data):该数据集由20000个训练样本、300个验证样本和300个测试的日本名片组成。字段数量为11个,包括姓名、公司、地址等等。信息结构与Ticket数据集类似。
    • Receipt(In-Service Data):该数据集由40000个训练样本、1000个验证样本和1000个测试的韩国收据图像组成。唯一字段数量为81个,包括商店信息、支付信息、价格信息等等。与上述数据集相比,每个样本都有更复杂的结构。
  • 文档视觉问答:DocVQA

Swin-B经过轻微修改后用作Donut的视觉编码器。层数和窗口大小分别设置为$\{2, 2, 14, 2\}$和10。进一步考虑速度与准确性的权衡,使用BART的前四层作为解码器。

论文

OCR-free Document Understanding Transformer 2111.15664

## 推荐阅读
1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
15 声望4 粉丝