
字节开源的多模态端到端文档解析模型-Dolphin 原创
下面来看一下字节最新开源的多模态文档解析方案,笔者实际测下来性能还有待提升(鉴于合成数据,泛化性还较差,存在幻觉),不过思路可以借鉴下,供参考。
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
本文转载自大模型自然语言处理 作者:余俊晖
