前期介绍了一些pipline的文档解析实现路线和端到端的多模态解析方案,整理在:《文档智能专栏》。
下面来看一下字节最新开源的多模态文档解析方案,笔者实际测下来性能还有待提升(鉴于合成数据,泛化性还较差,存在幻觉),不过思路可以借鉴下,供参考。
Dolphin性能
创新点
- 两阶段解析架构:Dolphin采用了分析-解析范式,首先进行页面级布局分析,生成结构化布局元素序列,然后在第二阶段通过异构锚点提示进行并行内容解析。
- 端到端的文档解析,模型参数量小(300M+),易于落地
- 提供了数据合成的思路,大规模数据增强模型的泛化能力
- 提供了位置坐标,通过并行解析的方式加快了解析速度
模型架构与方法
Dolphin 的两阶段文档图像解析范式概述
模型架构
类似donut,基于VisionEncoderDecoderModel架构,视觉编码器:donut-swin + 解码器:mbart,因此可以看出,模型侧并没有什么创新,创新点主要在于数据构建策略上。
方法
分两个阶段:
1.1 第一阶段:页面级布局分析
(1) 图像编码(Page Image Encoding)
- 使用 Swin Transformer 提取文档图像的视觉特征,输出形状为
,其中:
d
是嵌入维度N
是图像被分割的 patch 数量
- 输入图像会被
调整大小并填充
到固定尺寸(如
896×896
),以保持长宽比,避免文本变形。
(2) 布局序列生成(Layout Sequence Generation)
- 使用 mBart 解码器 ,在 布局分析提示(
Playout
) 的引导下,按阅读顺序生成文档元素的序列L = {l₁, l₂, ..., lₙ}
,其中每个元素lᵢ
包含:
- 类型 (如文本段落、表格、公式)
- 边界框(bounding box)
- 提示示例 :
Parse the reading order of this document.
1.2 第二阶段:元素级内容解析
(1) 元素图像编码(Element Image Encoding) :对第一阶段提取的每个元素 lᵢ
,从原图中裁剪出对应的区域 Iᵢ
,并用 Swin Transformer 编码,得到该元素的视觉特征。
(2) 并行内容解析(Parallel Content Parsing) :对每个裁剪后的元素图像 Iᵢ
,结合 特定类型的提示(pᵢ
) ,由解码器并行生成解析结果:
- 表格
→ 使用
P\_table
提示,解析为 HTML 格式 - 公式
→ 使用
P\_paragraph
提示(与文本段落相同),解析为 LaTeX 格式 - 文本段落
→ 使用
P\_paragraph
提示,解析为纯文本 - 提示示例 :
- 表格解析:
Parse the table in the image.
- 文本/公式解析:
Read text in the image.
小结:并行解码的优势 :并行处理多个元素,比串行解析更快(实验显示速度提升 ~2×)。每个元素的解析独立进行,减少长序列建模的误差累积。
1.3. 数据集构建
Dolphin 使用 3000万+ 样本 进行训练,涵盖多种文档类型和解析任务:
数据来源
- 混合文档 :教育材料(试卷、教材)、出版物(杂志、报纸)、商业文档(PPT、报告)。
- HTML :从维基百科渲染生成,增强视觉多样性。
- LaTeX :从 arXiv 论文提取,保留结构信息。
- Markdown :从 GitHub 渲染,支持表格和公式。
- 表格 & 公式 :PubTabNet、PubTab1M(表格)、arXiv 公式(LaTeX 渲染)。
实验性能
参考文献:Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting,https://arxiv.org/pdf/2505.14059
code:https://github.com/bytedance/Dolphin
关于我:余俊晖,主要研究方向为自然语言处理、大语言模型、文档智能。曾获CCF、Kaggle、ICPR、ICDAR、CCL、CAIL等国内外近二十项AI算法竞赛/评测冠亚季军。发表SCI、顶会等文章多篇,专利数项。