Introducing Fire-PDF:Firecrawl 全新的 PDF 解析引擎
基于 Rust 的全新解析引擎,把复杂 PDF 转成结构化 Markdown,速度提升 3.5–5.7 倍。
This article is currently available in Chinese.
什么是 Fire-PDF?
Fire-PDF 是我们基于 Rust 开发的全新 PDF 解析引擎。
它可以将任何 PDF 文件(无论是扫描版、纯文本版还是混合版)转换为结构化的 Markdown 文档。我们开源的 Rust 库 pdf-inspector 能在几毫秒内完成页面分类。纯文本版页面直接进行原生提取,完全跳过 GPU 处理。只有扫描版或图像密集型内容才会经过神经布局模型和 OCR 处理。
结果是生成了清晰的 Markdown 文件,阅读顺序正确,表格得以保留,LaTeX 公式得以保留,并且多列结构也正确。
Fire-PDF 如何将网页数据提取速度提升 5 倍
与我们之前的 PDF 解析器相比,Fire-PDF 的速度提高了 3.5-5.7 倍——平均每页不到 400 毫秒。
速度来源于两个方面:
首先,基于文本的页面永远不会经过 GPU——它们可以通过 pdf-inspector 在几毫秒内进行原生提取。
其次,GPU 集群使用基于通道的路由来按文档大小隔离请求,因此 200 页的报告永远不会影响单页发票的延迟。
更智能地处理 GPU 访问请求
大多数文档并未完全扫描。一份财务报告可能包含 150 页文本内容和 60 页扫描件。在我们之前的流程中,所有文件都会经过 OCR 识别。
使用 Fire-PDF,只有需要的页面才会执行 PDF 操作。
pdf-inspector 是我们开源的 Rust 库,它通过分析 PDF 内部结构(字体编码、文本运算符和图像覆盖率)在几毫秒内对每个页面进行分类,而无需渲染。
- 基于文本的页面可立即提取原生信息。
- 只有扫描页面或图像量大的页面才会经过 GPU 处理。
- 对于混合文档,这可以消除大部分页面的 GPU 处理,从而直接提高处理速度并降低成本。
复杂文档的布局感知精度
如果表格显示混乱或多列文本顺序错乱,仅仅速度快是不够的。Fire-PDF 使用神经文档布局模型,分别检测文本块、表格、公式、图像、页眉和页脚,然后正确处理每种区域类型。
- 表格享有更高的令牌限制,并且最多有 25 秒的时间来生成准确的 Markdown 表格输出。
- 公式会获得公式特定的提示,并在 LaTeX 中保留。
- 为了提高效率,文本区域的预算被严格限制在 12 秒以内,每个区域最多 256 个令牌。
- 阅读顺序由神经系统预测,对于多列布局,则采用 XY 切割投影作为备选方案。
每个区域都采用针对特定区域调整的参数,而不是采用一刀切的 OCR 算法。这种差异在以前识别为乱码的文档上体现得尤为明显。例如:财务报表、包含公式的学术论文、列密集的法律文件。
管道的工作原理
Fire-PDF 会对每个 PDF 文件进行五个阶段的处理:
- 分类 —— pdf-inspector 会在几毫秒内扫描 PDF 的内部结构,并将每一页分类为纯文本或需要 OCR 识别。
- 渲染 —— 需要进行 OCR 识别的页面将以 200 DPI 的分辨率渲染成图像。过大的页面将自动进行尺寸裁剪或截断。
- 布局检测 —— 渲染后的图像会经过 GPU 上的神经文档布局模型进行处理,返回边界框、元素类型和阅读顺序。
- 提取 —— 基于文本的页面使用原生提取方式(不使用 GPU)。扫描区域会根据任务类型和参数,发送到视觉语言模型(GLM-OCR)。
- 组装 —— 结果按阅读顺序排序并组装成 Markdown 格式。表格转换为 Markdown 表格。公式保留在 LaTeX 中。几何去重功能可移除重叠的检测结果。