「文档处理终结者」字节跳动Dolphin开源:从合同到试卷全搞定,多语言OCR+智能排版还原,B端企业刚需

在当今数字化时代,文档处理是众多领域中不可或缺的一项任务。无论是学术研究、商业办公,还是教育、技术开发等场景,都需要高效、准确地从文档中提取和解析信息。然而,传统的文档解析方法往往面临着诸多挑战,例如复杂的文档布局、多样的元素类型(如文本、表格、公式等)以及对效率和准确性的高要求。近年来,随着人工智能技术的飞速发展,尤其是大模型技术的兴起,为文档解析带来了新的机遇。字节跳动开源的文档解析大模型Dolphin,正是在这样的背景下应运而生,它以其独特的技术架构和卓越的性能表现,为文档解析领域带来了新的突破。

一、项目概述

Dolphin 是字节跳动开源的一款轻量级、高效的文档解析大模型,基于先解析结构后解析内容的两阶段方法,能够高效地处理多种类型的文档图像,包括学术论文、商业报告、技术文档等。它在多种文档解析任务上表现出色,性能超越了 GPT-4.1Mistral-OCR 等模型。Dolphin 拥有 322M 参数,体积小、速度快,支持多种文档元素解析,包括文本、表格、公式等,并且能够将解析结果输出为 JSONMarkdownHTML 等多种格式,便于与不同系统集成。其开源的代码和预训练模型,为开发者提供了极大的便利,也为文档解析领域的发展注入了新的活力。

二、技术原理

(一)两阶段解析方法

Dolphin 采用了一种创新的两阶段解析方法,有效地解决了传统方法在效率和准确性方面的瓶颈问题。

1. 页面级布局分析:在第一阶段,Dolphin 使用 Swin Transformer 对输入的文档图像进行编码,提取视觉特征。基于解码器生成文档元素序列,每个元素包含其类别(如标题、表格、图表等)和坐标位置。这一阶段的目标是按照自然阅读顺序生成结构化的布局信息,为后续的元素级内容解析提供基础。

2. 元素级内容解析:在第二阶段,Dolphin 根据第一阶段生成的布局信息,从原始图像中裁剪出每个元素的局部视图。然后,利用特定的提示词(prompts),对每个元素进行并行内容解析。例如,表格用专门的提示词解析为 HTML 格式,公式和文本段落共享提示词解析为 LaTeX 格式。这种并行解析机制大大提高了处理效率,同时通过任务特定的提示词,能够更好地处理不同类型的文档元素。

(二)异构锚点提示

Dolphin 的另一个核心技术特点是异构锚点提示(Heterogeneous Anchor Prompting)。在第二阶段的元素级内容解析中,Dolphin 为不同类型的文档元素设计了专门的提示词。这些提示词不仅能够引导模型准确地识别和解析对应的元素内容,还能够帮助模型更好地理解元素之间的结构关系。例如,对于表格元素,使用专门的提示词可以使其生成结构化的 HTML 格式输出;而对于文本段落和公式,则通过共享提示词来解析为 LaTeX 格式。这种异构锚点提示机制,使得 Dolphin 在处理复杂的文档布局和多样化的元素类型时,能够更加灵活和高效

三、主要功能

(一)布局分析

Dolphin 能够识别文档中的各种元素,如标题、图表、表格、脚注等,并按照自然阅读顺序生成元素序列。这一功能对于理解文档的整体结构至关重要,尤其是在处理复杂的学术论文和技术文档时,能够帮助用户快速定位和提取关键信息。

(二)内容提取

Dolphin 可以将整个文档页面解析为结构化的 JSON 格式或 Markdown 格式,便于后续处理和展示。这种结构化的输出格式使得文档内容更加易于操作和集成,无论是用于数据存储、信息检索还是进一步的内容分析,都提供了极大的便利。

(三)文本段落解析

Dolphin 支持多语言(如中文和英文)的文本内容识别和提取,能够准确地识别文档中的文本内容,并保持其原有的格式和排版信息。这对于跨语言文档处理和多语言信息提取具有重要意义,大大提高了文档处理的通用性和灵活性。

(四)公式识别

Dolphin 支持复杂公式的识别,包括行内公式和块级公式,并以 LaTeX 格式输出。这一功能对于学术研究和技术文档处理尤为重要,因为公式往往是文档中最为关键和复杂的信息之一。通过准确识别和解析公式,Dolphin 能够帮助用户更好地理解和利用文档中的数学内容。

(五)表格解析

Dolphin 能够解析复杂的表格结构,提取单元格内容并生成 HTML 格式的表格。表格是文档中常见的数据呈现形式,Dolphin 的表格解析功能能够有效地提取表格中的数据,并将其转换为结构化的 HTML 格式,便于用户进行数据分析和进一步处理。

四、性能表现

(一)高效性

Dolphin 的轻量级架构和并行解析机制使其在运行效率方面表现出色。它拥有 322M 参数,体积小、速度快,能够在资源受限的环境中高效运行。在实际测试中,Dolphin 的运行速度远超其他同类模型,例如在处理复杂文档时,其速度比 Mathpix 快近 倍,这使得它在实际应用中能够快速响应用户需求,提高文档处理效率。

(二)准确性

Dolphin 在多种文档解析任务上都取得了卓越的性能表现。在页面级解析任务中,无论是纯文本文档还是包含复杂元素(如表格、公式、图表等)的文档,Dolphin 都能够准确地提取文档内容和结构信息,其编辑距离(edit distance)指标在多个基准测试中均优于现有的先进模型。在元素级解析任务中,Dolphin 对于文本段落、公式和表格的解析准确率也达到了行业领先水平,能够满足不同场景下的高精度文档解析需求。

五、应用场景

(一)学术研究

在学术研究领域,Dolphin 能够帮助研究人员快速解析论文中的文本、公式和图表等内容,从而更高效地进行文献整理和数据分析。通过将论文内容转换为结构化的格式,研究人员可以更方便地提取关键信息,加速研究进程,提高研究效率。

(二)商业办公

在商业办公场景中,Dolphin 可以用于提取商业文档的关键信息,如合同审查、报告生成等。它能够快速准确地识别文档中的文本内容和结构,帮助用户快速定位和提取重要信息,从而提高工作效率,降低人工处理成本。

(三)教育领域

在教育领域,Dolphin 可以将教材和试卷数字化,支持在线学习和多语言教学。通过将纸质教材和试卷转换为电子格式,学生和教师可以更方便地进行学习和教学活动,同时也有助于教育资源的共享和传播。

(四)技术开发

在技术开发领域,Dolphin 能够解析技术文档,方便代码管理和技术交流。它可以帮助开发者快速提取技术文档中的关键信息,如代码片段、技术参数等,从而更好地理解和应用相关技术,提高开发效率。

(五)日常应用

在日常办公中,Dolphin 可以快速处理各种类型的文档,如会议记录、报告等,帮助用户提高办公效率,节省时间和精力。

六、在线体验

为了方便用户更好地了解和体验Dolphin 的强大功能,字节跳动提供了一个在线体验 Demo,用户可以通过访问 [Demo-Dolphin](http://115.190.42.15:8888/dolphin/进行实际操作。

在这个在线平台上,用户可以上传自己的文档图像,实时查看Dolphin 的解析结果,感受其高效、准确的文档解析能力。通过在线体验,用户可以更直观地了解 Dolphin 的性能表现和应用场景,为后续的实际应用提供参考。

七、部署使用

(一)环境准备

1. 克隆仓库:首先需要从 GitHub 上克隆 Dolphin 的官方仓库,可以通过以下命令完成:

git clone https://github.com/ByteDance/Dolphin.gitcd Dolphin

2. 安装依赖:安装项目所需的依赖库,运行以下命令:

pip install -r requirements.txt

(二)下载预训练模型

用户可以选择以下两种方式之一来下载预训练模型:

1. 原始模型格式(基于配置文件):从 Baidu Yun(关注发送“Dolphin”获取链接)下载预训练模型文件,并将其放置在 `./checkpoints` 文件夹中。

2. Hugging Face 模型格式:访问 Hugging Face 模型卡页面,或者通过以下命令从 Hugging Face Hub 下载模型:

git lfs installgit clone https://huggingface.co/ByteDance/Dolphin ./hf_model

或者使用Hugging Face CLI 工具:

huggingface-cli download ByteDance/Dolphin --local-dir ./hf_model

(三)推理使用

Dolphin 提供了两种推理框架,支持页面级和元素级的文档解析。

1. 页面级解析

使用原始框架(基于配置文件):

# 处理单个文档图像python demo_page.py --config ./config/Dolphin.yaml --input_path ./demo/page_imgs/page_1.jpeg --save_dir ./results
# 处理目录中的所有文档图像python demo_page.py --config ./config/Dolphin.yaml --input_path ./demo/page_imgs --save_dir ./results

使用 Hugging Face 框架:

# 处理单个文档图像python demo_page_hf.py --model_path ./hf_model --input_path ./demo/page_imgs/page_1.jpeg --save_dir ./results
# 处理目录中的所有文档图像python demo_page_hf.py --model_path ./hf_model --input_path ./demo/page_imgs --save_dir ./results

2. 元素级解析

使用原始框架(基于配置文件):

# 处理单个表格图像python demo_element.py --config ./config/Dolphin.yaml --input_path ./demo/element_imgs/table_1.jpeg --element_type table# 处理单个公式图像python demo_element.py --config ./config/Dolphin.yaml --input_path ./demo/element_imgs/line_formula.jpeg --element_type formula# 处理单个文本段落图像python demo_element.py --config ./config/Dolphin.yaml --input_path ./demo/element_imgs/para_1.jpg --element_type text

使用 Hugging Face 框架:

# 处理单个表格图像python demo_element_hf.py --model_path ./hf_model --input_path ./demo/element_imgs/table_1.jpeg --element_type table# 处理单个公式图像python demo_element_hf.py --model_path ./hf_model --input_path ./demo/element_imgs/line_formula.jpeg --element_type formula# 处理单个文本段落图像python demo_element_hf.py --model_path ./hf_model --input_path ./demo/element_imgs/para_1.jpg --element_type text

八、结语

Dolphin 作为字节跳动开源的文档解析大模型,凭借其创新的两阶段解析方法、异构锚点提示技术以及轻量级架构,为文档解析领域带来了新的突破。它不仅在性能上表现出色,能够高效、准确地处理多种类型的文档图像,还在多个实际应用场景中展现了强大的实用价值。未来,Dolphin 有望在更多领域发挥重要作用,为文档智能化处理带来更多的可能性。

九、项目地址

技术论文:https://arxiv.org/html/2505.14059v1

GitHub 仓库:https://github.com/bytedance/Dolphin

在线体验:Demohttp://115.190.42.15:8888/dolphin/

(文:小兵的AI视界)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往