Marker:35K+ Star 的文档转换利器

Datalab 开源的 Marker 斩获了 35,713 个 Star:

正文顶部截图

README区域截图

Marker 是一款基于深度学习的文档转换工具。它可以将 PDF、图片、PPTX、DOCX、XLSX、HTML、EPUB 等格式的文件快速转换为 Markdown、JSON、Chunks 或 HTML。

Marker 支持多种语言的文档处理。它能够识别表格、公式、内联数学表达式、链接、引用和代码块。转换过程中会自动提取图片,并去除页眉、页脚等干扰元素。

Marker 提供了结构化提取能力。给定 JSON Schema,它可以从文档中按字段提取内容。配合 LLM 使用时,还能实现跨页表格合并、表单值提取等高精度操作。

性能表现

Marker 在基准测试中表现优于 Llamaparse、Mathpix 等云服务。单页 PDF 串行处理耗时约 2.8 秒,H100 上批量模式吞吐量可达 25 页/秒。

按文档类型细分,Marker 在科学论文、书籍页面、财务报表、法律文件等场景下均保持较高得分。

表格提取方面,Marker 在 FinTabNet 测试集上的平均得分为 0.816,启用 LLM 后提升至 0.907。

正文顶部截图

混合模式

通过 use_llm 选项,Marker 可以调用 Gemini、Ollama、Claude、OpenAI 或 Azure OpenAI 等模型来优化输出。该模式在表格格式化、内联数学处理和表单提取等场景下效果显著。benchmark 数据显示,混合模式的表格识别准确率高于单独使用 Marker 或 Gemini。

安装与使用

Marker 需要 Python 3.10 及以上版本,并依赖 PyTorch。安装命令如下:

pip install marker-pdf

如需处理 PDF 以外的格式,安装完整依赖:

pip install marker-pdf[full]

转换单个文件:

marker_single /path/to/file.pdf

批量转换文件夹内的所有文件:

marker /path/to/input/folder

支持指定页码范围、输出格式、OCR 强制识别等参数。

Python API

Marker 也可以通过 Python 代码调用:

from marker.converters.pdf import PdfConverter
from marker.models import create_model_dict
from marker.output import text_from_rendered

converter = PdfConverter(artifact_dict=create_model_dict())
rendered = converter("FILEPATH")
text, _, images = text_from_rendered(rendered)

除了 PdfConverter,Marker 还提供了 TableConverter(仅提取表格)、OCRConverter(仅 OCR)和 ExtractionConverter(结构化提取,beta)等专用转换器。

输出格式

Marker 支持四种输出格式。

Markdown 输出包含图片链接、格式化表格、LaTeX 公式和代码块。HTML 输出结构与 Markdown 类似,公式使用 math 标签包裹。JSON 输出采用树形结构,每个页面作为根节点,包含 id、block_type、html、polygon 和 children 等字段。Chunks 格式将内容扁平化为单一层级列表,适合 RAG 场景。

其他特性

Marker 内置了 Streamlit 交互界面,运行 marker_gui 即可在浏览器中操作。同时也提供了一个轻量级的 FastAPI 服务,通过 marker_server 启动,适合小规模本地调用。

对于高并发场景,Marker 支持多 GPU 并行。通过 NUM_DEVICES 和 NUM_WORKERS 环境变量配置,可以实现多卡多进程加速。

本地调用。

对于高并发场景,Marker 支持多 GPU 并行。通过 NUM_DEVICES 和 NUM_WORKERS 环境变量配置,可以实现多卡多进程加速。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐