多模态 | 全面解读字节开源文档解析模型:Dolphin

向量数据库大模型机器学习
  1. 引言 =====

文档图像解析是从图像中提取文本、表格、图表等结构化信息的关键技术,为文档理解奠定基础。随着数字文档的爆发式增长,高效准确的解析方法愈发重要。

传统方法通过多组件协作实现解析,结构清晰但处理复杂布局时效率受限。视觉-语言模型虽然通过端到端训练显著提升了解析性能,但在长文档和复杂结构面前仍面临瓶颈。

本文介绍 Dolphin,一种采用"先分析、再解析"策略的多模态文档解析模型,有效融合了传统方法的结构化优势与视觉语言模型的表达能力,在准确性和鲁棒性上实现显著提升。

论文地址: https://arxiv.org/abs/2505.14059

GitHub地址: https://github.com/bytedance/Dolphin (上面有demo体验地址,感兴趣的小伙伴可以试玩下。支持上传PDF和图片。)

  1. 简介 =====

Dolphin(Document Image Parsing via Heterogeneous Anchor Prompting)是一个通过异构锚点提示进行文档图像解析的新型多模态模型。Dolphin 遵循“分析-然后-解析”的范式,首先生成阅读顺序的布局元素序列。这些异构元素作为锚点并与任务特定 prompt 结合,反馈给 Dolphin 以进行并行内容解析 。为了训练 Dolphin,官方构建了一个超 3000 万样本的大规模数据集 ,涵盖了多粒度解析任务。通过在主流基准和自建基准上的全面评估,Dolphin 在多样化的页面级和元素级 任务上均达到了最先进的性能 (state-of-the-art performance,SOTA),同时由于其轻量级的架构配置和并行解析机制确保了卓越的效率。

对于赶时间的小伙伴,可以通过以下问答方式简要了解Dolphin的重点:

Q1: 这篇文章想要解决什么问题?

A1: 这篇文章旨在解决文档图像解析领域面临的核心问题:

  • 复杂元素交织的结构化内容提取: 文档图像包含文本段落、图表、公式和表格等复杂交织的元素,从中准确提取结构化内容是核心挑战。
  • 现有方法的局限性:
  • 集成式专家模型的整合开销和协调问题: 现有方法通常组装专门的专家模型进行各项光学字符识别(OCR)任务(如布局检测、阅读顺序预测、文本/公式/表格识别),这导致集成开销大、效率瓶颈和组件间协调困难。
  • 自回归生成模型的效率瓶颈和布局结构退化: 直接自回归生成页面级内容的通用或专家 VLM 在处理长文档和复杂布局时,容易出现效率低下和布局结构退化的问题。
  • 数据收集的效率问题: 收集包含多样化元素的完整文档页面及其细致标注通常比收集孤立的元素图像更困难。

Q2: 这篇文章如何解决这些问题?

A2: 文章通过提出 Dolphin 模型来解决上述问题,其核心创新点在于**“分析-然后-解析”的两阶段范式和异构锚点提示机制** :

  • 两阶段解析范式: Dolphin 将文档解析分解为两个战略阶段,而非依赖于多个专家模型或纯粹的自回归生成。
  • 阶段一:页面级布局分析 (Page-level Layout Analysis): Dolphin 首先执行全面的页面级布局分析, 生成按自然阅读顺序排列的元素序列 。这个阶段不仅识别元素类型和边界框,还保留了丰富的结构关系,例如图文对、表格标题关联以及章节标题-段落层级关系。
  • 阶段二:元素级内容解析 (Element-level Content Parsing): 阶段一分析出的异构元素作为 “锚点” (anchors)。模型接着利用** 特定任务的prompt** 对每个元素进行 高效并行解析 。这种方式使得 VLM 能够专注于每个元素的上下文,从而有效地识别文档内容。
  • 统一的视觉-语言模型 (Unified Vision-Language Model): 两个阶段的核心是一个共享相同参数的统一 VLM,但在不同输入粒度和 prompt 策略下操作。
  • 大规模、多粒度数据集构建: 为了有效训练模型,Dolphin 构建了一个包含超过 3000 万样本的大规模数据集,涵盖了 页面级文档和元素级内容 。这种元素解耦的解析策略还带来了数据收集的独特优势,因为获取孤立的元素图像(如表格、公式)及其标注,这比收集包含多样化元素的完整文档页面更可行。
  • 并行解析机制和轻量级架构: 通过并行处理不同元素,Dolphin 大幅提升了运行效率,同时保持了轻量级的模型架构(322M 参数),相较于大型 VLM 更高效。

Q3: 文章所提出方法的效果如何?

A3: Dolphin 在多项基准测试中展现了卓越的性能和效率:

  • 页面级解析: 在 Fox-Page(纯文本文档)和 Dolphin-Page(复杂混合元素文档)基准测试中,Dolphin 达到了最先进的性能。
  • 在 Fox-Page 英文和中文纯文本测试集上,Dolphin 的编辑距离(ED)分别为 0.0114 和 0.0131 ,优于专门的 VLM 如 GOT (ED 0.035 和 0.038) 和通用 VLM 如 GPT-4.1 (ED 0.0489 和 0.2549)。
  • 在 Dolphin-Page 复杂文档集上,Dolphin 的 ED 为 0.1283 ,超越了所有基线模型。
  • 运行效率: Dolphin 展现出显著的效率优势,达到 0.1729 FPS ,几乎比最有效率的基线模型 Mathpix (0.0944 FPS) 快 2 倍。消融实验表明,并行解码策略带来了 1.8 倍的加速 (0.1729 vs. 0.0971 FPS),同时保持了相同的解析精度。
  • 元素级解析: 在文本段落、公式和表格的细粒度解析任务上,Dolphin 表现出极强的竞争力。
  • 文本段落:在 Fox-Block 和 Dolphin-Block 测试集上取得了具有竞争力的结果。
  • 公式识别:在 SPE、SCE 和 CPE 等不同复杂度的公式识别任务中,Dolphin 取得了与专业公式识别方法相当的字符差异度量(CDM)分数。
  • 表格解析:在 PubTabNet 和 PubTab1M 基准测试中,Dolphin 在捕捉表格结构关系和识别单元格内容方面表现出良好效果。
  • 鲁棒性和附加能力: Dolphin 能够稳健处理复杂布局、双语文本和复杂格式表格。它还支持文本 spotting(检测和解析文本行)和从指定 bounding box 中提取文本内容。
  • 特定类型 prompt 的有效性: 消融实验证明,特定类型(Type-specific,是指在提示中知名诸如tabel还是什么类型的元素) prompt 显著优于通用 prompt (ED 0.1283 vs. 0.1613),能够有效指导模型处理不同文档元素,避免误分类。
  • 元素裁剪的有效性: 元素裁剪策略优于 box query 方法,因为它为模型提供了对每个元素的聚焦视图,遵循“所见即所得”原则,避免了同时处理位置理解和内容识别的复杂性。如果对细节感兴趣可以前往后文对应章节查看。

Q4: 文章所提方法还有哪些不足?

A4: 尽管 Dolphin 性能优异,但仍存在以下局限性和未来改进方向:

  • 水平文本布局的局限性: Dolphin 主要支持标准的水平文本布局文档,在解析如古代手稿等垂直文本方面的能力有限。
  • 多语言能力扩展: 尽管 Dolphin 能有效处理中文和英文文档,但其多语言能力仍有待扩展以支持更多语言。
  • 并行处理的进一步优化: 尽管已通过并行元素解析实现效率提升,但在文本行和表格单元格的并行处理方面仍有进一步优化的潜力。
  • 手写识别能力: 手写识别能力需要进一步增强。
  • 复杂图表和图像内容的深入理解: 尽管能够识别图表作为元素,但对于图表中复杂数据可视化内容或图像本身的语义理解,可能仍有提升空间。Dolphin 主要聚焦于文本、表格和公式的结构化内容提取,对图片中的非文本内容进行更深层次的分析和理解尚不明确。
  1. 方法 =====

Dolphin 模型遵循**“分析-然后-解析”** 的两阶段范式,并基于编码器-解码器 Transformer 架构 构建。

Figure 2:Dolphin 的两阶段文档图像解析范式概览。左图:整体流程包括两个阶段,第一阶段是页面级布局分析,用于按阅读顺序生成结构化的布局序列;第二阶段是元素级内容解析。右图:输入输出示例,涵盖页面级布局分析,以及针对文本段落、表格和公式的元素级内容解析。其中 “P∗” 表示不同的提示词。

2.1 阶段一:页面级布局分析

该阶段旨在识别文档图像中的布局元素并确定其阅读顺序。

  • 页面图像编码 (Page Image Encoding):
  • 输入页面图像 I 经过编码器后,输出一系列视觉 embedding z
  • Swin Transformer 的分层设计使其能够捕获全局布局模式和局部文本细节。
  • 输入图像会先调整大小并填充到固定尺寸 896 × 896 像素,同时保持其纵横比以避免文本失真。
  • Dolphin 采用 Swin Transformer 作为视觉编码器。
  • 布局序列生成 (Layout Sequence Generation):
  
{  
    "[0.18, 0.09, 0.48, 0.18]": "Figure",  
    "[0.18, 0.19, 0.48, 0.31]": "Caption"  
}  

  • 此阶段不仅识别元素类型(如 figure, caption, table, paragraph)和 bounding box,还保留了结构关系,例如图表-标题对、表格-标题关联以及章节标题-段落层级关系。
  • 输出是一个结构化的布局元素序列 L = {l1, l2, ..., ln} ,其中每个元素 li 指定其类型和边界框 bounding box。输出格式示例是带有边界框 bounding box 和元素类型的 JSON 格式。示例如下:
  • 使用 mBart 作为解码器。
  • 解码器通过 交叉注意力机制 (cross-attention mechanism) 注意编码后的视觉特征。
  • 通过特定的布局分析 prompt,例如 “Parse the reading order of this document.” ,模型能够识别并按顺序排列文档元素。

2.2 阶段二:元素级内容解析

该阶段利用阶段一分析得到的布局元素作为锚点,进行并行元素解析

Figure 4:Dolphin在多种场景下进行元素级解析的演示。输入图像显示在顶部,对应的识别结果显示在底部。左图:复杂布局中的文本段落解析;中图:双语文本段落识别;右图:复杂表格解析(显示渲染后的结果)。

  • 元素图像编码 (Element Image Encoding):
  • 这些局部视图使用与阶段一相同的 Swin Transformer 进行 并行编码 ,生成元素特定的视觉特征。
  • 对于阶段一识别出的每个布局元素

,模型会从原始图像中裁剪出对应的区域,生成一个局部视图

  • 并行内容解析 (Parallel Content Parsing):
  • 这种并行处理策略与元素特定 prompt 相结合,确保了计算效率同时保持了准确的内容识别。
  • 这种二分设计区分了结构化 HTML 内容和纯文本,同时提供了对潜在元素误分类的鲁棒性,因为无论元素类型分类错误与否,解析精度都能保持较高水平。
  • Dolphin 使用 类型指定的 prompt (type-specific prompts) 来指导不同元素的解析。
  • 例如,表格使用专用的 prompt “Parse the table in the image.” 来解析其 HTML 格式。
  • 公式(LaTeX 格式)和文本段落共享同一个 prompt “Read text in the image.” ,即可都是使用

这个提示词。这是因为它们经常在段落上下文中以内联或显示出现。

  • 给定局部视图

的视觉特征及其对应的 prompt

,解码器 并行生成解析后的内容

2.3 训练方法

  • 大规模数据集: Dolphin 训练使用了超 3000 万样本 的大规模数据集,涵盖页面级文档和元素级组件。这包括:
  • 混合文档 (Mixed Documents): 0.12M 份文档,包含教育材料、出版物和商业文档,带有元素级边界和阅读顺序标注。
  • HTML: 4.37M 页面级样本,通过网络渲染生成合成数据,包含字符级 bounding box 标注。
  • LaTeX: 0.5M 份文档,来自 arXiv,通过 LaTeX Rainbow 处理,保留层级结构并提取元素类型、关系和位置。
  • Markdown: 0.71M 份文档,来自 GitHub,通过 Pandoc 渲染为 PDF,获得层级文本标注和表格等元素类型。
  • 表格: 1.57M 样本,来自 PubTabNet 和 PubTab1M。
  • 公式: 23M LaTeX 表达式,来自 arXiv,渲染为图像,使用 XeTeX 工具,并包含多样化的背景和字体。
  • 模型初始化: Dolphin 使用 Donut的预训练权重 进行初始化。Donut 本身缺乏指令遵循能力,通过后续的指令微调 (instruction tuning) 扩展了 Dolphin 理解和执行各种 prompt 的能力。
  • 指令微调策略 (Instruction Tuning): 训练阶段采用动态任务选择策略 。对于每个训练样本,根据其可用标注随机选择一个适用的任务来构建问答对。例如,仅有段落级 bounding box 和内容标注的页面图像可用于元素级文本段落解析和页面级 box query 解析。
  • 损失函数: Dolphin 使用交叉熵损失 (cross-entropy loss) 来优化模型,这是自回归语言模型的标准实践。
  • 实现细节:
  • 编码器:Swin Transformer,窗口大小 7,层结构,注意力头。
  • 解码器:10 层 Transformer,隐藏维度 1024。
  • 优化器:AdamW,学习率 5e-5,余弦衰减调度。
  • 训练:在 40 块 A100 GPU 上训练 2 个 epoch,每个设备 batch size 为 16,通过梯度累积实现。
  • Bounding box 坐标:使用归一化坐标,输入图像长边缩放至 896 像素,然后填充为 896 × 896 像素的方形图像。
  1. 实验结果 =======

Dolphin 进行了全面的评估,包括页面级文档解析(纯文本和复杂文档)和单个元素识别任务(文本段落、表格和公式)。

3.1 页面级解析性能

Dolphin 在 Fox-Page(英文和中文)和 Dolphin-Page 基准测试上进行了评估。

  • 整体优势: 尽管 Dolphin 架构轻量(322M 参数),但其性能优于传统的集成式方法和更大的 VLM。
  • 纯文本文档 (Fox-Page):
  • Dolphin 在英文测试集上的编辑距离(ED)为 0.0114 ,在中文测试集上为 0.0131
  • 这显著优于专门的 VLM,如 GOT (英文 ED 0.035, 中文 ED 0.038)。
  • 也优于通用 VLM,如 GPT-4.1 (英文 ED 0.0489, 中文 ED 0.2549)。
  • 复杂文档 (Dolphin-Page):
  • 在处理包含混合元素(如表格和公式)的复杂文档时,Dolphin 的优势更为明显,编辑距离为 0.1283
  • 这超越了所有基线模型在复杂文档处理上的表现。
  • 运行效率 (FPS):
  • Dolphin 凭借其并行解析设计,展现出显著的效率提升,达到 0.1729 FPS
  • 这比最有效率的基线模型 Mathpix (0.0944 FPS) 快了近 2 倍。
  • 在 Figure 1 中,Dolphin 在大多数评估中表现出最佳性能,特别是在 FPS 方面遥遥领先。

Figure 1: Dolphin 与先进的多模态视觉语言模型(VLMs)在各项基准测试中的对比:包括页面级解析(普通文档与复杂文档)、元素级解析(文本段落、表格和公式),以及运行效率(帧率 FPS)。图中外侧区域代表更好的性能。Dolphin 在大多数评估中表现出最佳性能。

3.2 元素级解析性能

除了页面级解析,Dolphin 还对单个元素的识别能力进行了广泛实验。

  • 文本段落解析: Dolphin 在 Fox-Block 和 Dolphin-Block 测试集上取得了具有竞争力的结果。
  • 公式识别: Dolphin 在不同复杂度(SPE、SCE 和 CPE)的公式识别任务中表现出强大的能力,实现了与专业公式识别方法相当的字符差异度量(CDM)分数。具体数据在 Table 3 中有展示(感兴趣的小伙伴自己看原文,小编懒得贴了),Dolphin 在 SPE、SCE、CPE 上分别获得 0.9850、0.9685、0.8739 的 CDM 分数,表现突出。
  • 表格解析: Dolphin 在 PubTabNet 和 PubTab1M 基准测试上显示出良好结果,能够有效捕获表格结构关系和识别单元格内容。Dolphin 在 PubTabNet 和 PubTab1M 上分别获得 0.9515 和 0.9625 的 TEDS 分数。
  • 综合能力: 这些在文本段落、公式和表格上的持续强劲表现,证明了 Dolphin 在基本识别任务中的竞争力。

3.3 消融实验

论文还通过消融实验验证了 Dolphin 核心组件的有效性。

  • 并行解码 (Parallel Decoding):
  • 与顺序自回归解码基线相比,并行解码实现了 1.8 倍的加速 (0.1729 vs. 0.0971 FPS),同时保持了相同的解析精度。
  • 尽管如此,加速受限于每个元素在网络推理前的预处理开销,以及 GPU 内存限制导致的 batch size 约束(每个 batch 最多 16 个元素)。
  • 类型特定 prompt (Type-specific Prompts) vs. 通用 prompt (Generic Prompts):
  • 在第二阶段,类型特定 prompt 策略显著优于使用通用 prompt (例如“Read text in the image.”) 的基线模型 (ED 0.1283 vs. 0.1613)。
  • 一个案例研究显示,通用 prompt 会将表格错误识别为 LaTeX 公式,而类型特定 prompt 则能正确解析并渲染为 HTML 表格, Figure 6。这表明通过类型特定 prompt 引入先验知识能有效提高模型处理不同文档元素的能力。
  • 元素裁剪 (Element Cropping) vs. Box Query:
  • 元素裁剪策略比直接提示模型识别特定 bounding box 内元素的 box query 方法表现更好。
  • 这可能是因为裁剪为模型提供了每个元素的聚焦视图,遵循“所见即所得”的原则,而 box query 方法则增加了任务复杂性,要求模型同时处理位置理解和内容识别。

Figure 6:展示一个示例,说明指定类型提示词的有效性。通用提示词将表格误识别为公式,而我们的方法则能正确地解析并以 HTML 格式呈现该表格。

  1. 总结 =====

Dolphin 是一种新颖的文档图像解析模型,它通过**“分析-然后-解析” (analyze-then-parse) 的范式** 有效地解决了文档解析中的复杂挑战。模型首先进行页面级布局分析以生成结构化的阅读顺序元素,然后通过异构锚点提示 (heterogeneous anchor prompting) 实现并行元素解析 。这种两阶段设计在效率和准确性之间取得了有效平衡,同时保持了轻量级架构。广泛的实验证明,Dolphin 在页面级和元素级解析任务中均表现出强大性能,尤其擅长处理包含交错表格、公式和复杂格式的中英文文档。

尽管 Dolphin 取得了显著成就,但仍有以下几个未来可改进的方向或要点:

  • 增强对非标准布局的支持: 当前模型主要支持标准水平文本布局,未来应扩展其能力以处理垂直文本,如古籍手稿等。这可能需要更灵活的布局分析模块和对不同书写方向的适应性。
  • 扩展多语言覆盖范围: 尽管已有效处理中英文文档,但为了实现更广泛的应用,Dolphin 的多语言能力需要进一步扩展,支持更多世界语言。这可能涉及更多多语言数据集的构建和针对特定语言特征的微调。
  • 深化并行处理粒度: 尽管已通过并行元素解析提高了效率,但未来可进一步优化,实现文本行和表格单元格等更细粒度的并行处理,以实现更高的计算效率。
  • 提升手写识别能力: 当前模型对手写内容的识别能力有待提升。未来的工作可以探索集成专门的手写识别模块或利用更强大的视觉骨干网络来改善这一能力。
  • 复杂图表语义理解: 虽然能识别图表元素,但对图表中复杂数据可视化(如趋势、关系)的深层语义理解尚有空间。未来可探索结合图神经网络或更复杂的 VLM 技术,实现对非文本视觉元素的更高级理解。
  • 泛化到更多文档类型: 针对合同、发票、医疗报告等特定领域文档,可能需要领域特定的知识增强和微调,以实现更高精度的结构化信息提取,超越通用文档解析的范畴。
0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论