Dolphin:基于异构锚点提示的文档图像解析开源项目(ByteDance/Dolphin)
Dolphin 是字节跳动开源的通用文档图像解析模型系列,论文被 ACL 2025 接收。最新 Dolphin-v2 采用文档类型感知的两阶段架构(类型分类+版面分析与阅读顺序预测 → 混合解析策略),可处理数字原生与拍照文档,支持页面级、元素级与版面解析,并支持 vLLM、TensorRT-LLM 加速推理以及 Hugging Face Transformers 集成。
社区作者 · zZz
它解决什么问题
项目概述
Dolphin(Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting)是字节跳动开源的文档图像解析项目,官方仓库为 bytedance/Dolphin,相关论文被 ACL 2025 接收(arXiv:2505.14059)。
Dolphin-v2 是在原版 Dolphin 基础上增强的通用文档解析模型,可通过“文档类型感知的两阶段架构 + 可扩展的锚点提示(scalable anchor prompting)”无缝处理任意类型文档,无论是数字原生文档还是拍摄(拍照)文档。
两阶段架构(配图 1、配图 3)
- 🔍 第一阶段:文档类型分类(数字原生 vs. 拍摄文档)+ 版面分析并预测阅读顺序。
- 🧩 第二阶段:混合解析策略——对拍摄文档做整体式(holistic)解析,对数字原生文档做并行的逐元素(element-wise)解析。
文档图像解析的难点在于文档类型多样,且文本段落、图、公式、表格和代码块等元素复杂交织。Dolphin 通过轻量架构与并行解析机制,在多种页面级和元素级解析任务上取得较好表现并保持较高效率。
更新日志
- 2025.12.12 发布 Dolphin-v2 模型:升级至 3B 参数,支持 21 类元素检测、属性字段抽取、专用公式/代码解析,以及更稳健的拍照文档解析。(Dolphin-1.5 已移至 v1.5 分支)
- 2025.10.16 发布 Dolphin-1.5 模型:保持 0.3B 轻量架构的同时显著提升解析效果。(Dolphin 1.0 已移至 v1.0 分支)
- 2025.07.10 发布 Fox-Page Benchmark,为原始 Fox 数据集的人工精修子集,可通过百度云 | Google Drive 下载。
- 2025.06.30 增加 TensorRT-LLM 加速推理支持。
- 2025.06.27 增加 vLLM 加速推理支持。
- 2025.06.13 增加多页 PDF 文档解析能力。
- 2025.05.21 发布在线 Demo。
- 2025.05.20 发布 Dolphin 预训练模型与推理代码。
- 2025.05.16 论文被 ACL 2025 接收,论文链接:arXiv。
性能(OmniDocBench v1.5 综合评测)
| 模型 | 规模 | Overall↑ | Text Edit↓ | Formula CDM↑ | Table TEDS↑ | Table TEDS-S↑ | Read Order Edit↓ | | --- | --- | --- | --- | --- | --- | --- | --- | | Dolphin | 0.3B | 74.67 | 0.125 | 67.85 | 68.70 | 77.77 | 0.124 | | Dolphin-1.5 | 0.3B | 85.06 | 0.085 | 79.
44 | 84.25 | 88.06 | 0.071 | | Dolphin-v2 | 3B | 89.78 | 0.054 | 87.63 | 87.02 | 90.48 | 0.054 |
关键特性
- 🔄 基于单一 VLM 的“先分析、后解析”两阶段方法
- 📊 在文档解析任务上表现良好
- 🔍 生成符合自然阅读顺序的元素序列
- 🧩 针对不同文档元素的异构锚点提示
- ⏱️ 高效的并行解析机制
- 🤗 支持 Hugging Face Transformers,便于集成
推理框架与解析粒度
提供两种推理框架,支持两种解析粒度:
另有版面解析(Layout Parsing)脚本 demo_layout.py,配图 2 为演示动图。
- 页面级解析(Page-level Parsing):将整个文档页面解析为结构化 JSON 与 Markdown。
- 元素级解析(Element-level Parsing):解析单个文档元素(文本、表格、公式)。
适用对象与许可
适用于文档解析、OCR、版面分析、表格/公式/代码抽取相关的研究与工程场景。许可证信息在来源页面未明确给出,需核验;模型权重与代码的商用与再分发条款请以仓库与 Hugging Face 模型卡为准。
致谢
项目致谢 OmniDocBench、Donut、Nougat、GOT、MinerU、Swin、Hugging Face Transformers 等开源项目。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
1. 准备环境
需安装 Git、Git LFS 与 Python/pip(来源未给出具体 Python 版本与 CUDA/显存要求,待核验)。
2. 克隆仓库
git clone https://github.com/ByteDance/Dolphin.git
cd Dolphin3. 安装依赖
pip install -r requirements.txt4. 下载 Dolphin-v2 预训练模型
可访问 Hugging Face 模型卡页面下载,或用以下任一方式:
方式一(git lfs):
# Download the model from Hugging Face Hub
git lfs install
git clone https://huggingface.co/ByteDance/Dolphin-v2 ./hf_model方式二(Hugging Face CLI):
# Or use the Hugging Face CLI
pip install huggingface_hub
huggingface-cli download ByteDance/Dolphin-v2 --local-dir ./hf_model5. 首次运行:页面级解析(Page-level Parsing)
将整个文档页面解析为结构化 JSON 和 Markdown。
# Process a single document image
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_1.png
# Process a single document pdf
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_6.pdf
# Process all documents in a directory
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs
# Process with custom batch size for parallel element decoding
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs \
--max_batch_size 86. 元素级解析(Element-level Parsing)
# Process element images (specify element_type: table, formula, text, or code)
python demo_element.py --model_path ./hf_model --save_dir ./results \
--input_path \
--element_type [table | formula | text | code]7. 版面解析(Layout Parsing)
# Process a single document image
python demo_layout.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_1.png \
# Process a single PDF document
python demo_layout.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_6.pdf \
# Process all documents in a directory
python demo_layout.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs8. 加速推理
页面注明已支持 vLLM(2025.06.27)与 TensorRT-LLM(2025.06.30)加速推理;具体调用参数与配置来源未给出,待核验。
9. 常见问题
- 若模型在某些样本上表现不佳,作者呼吁通过 issue 提交 Bad Cases 以便持续优化。
- 依赖冲突、Python/CUDA 版本、显存占用、下载失败等常见问题的处理方式在来源中未说明,待核验。
10. 首次运行注意
命令中的 --model_path 需指向第 4 步下载得到的 ./hf_model 目录;--save_dir 为结果输出目录,首次运行会自动创建(具体行为以仓库说明为准)。