字節開源的多模態端到端文檔解析模型-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??
本文轉載自??大模型自然語言處理?? 作者:余俊暉
