文章目录
- Marker:35K+ Star 的文档转换利器
Marker:35K+ Star 的文档转换利器
Datalab 开源的 Marker 斩获了 35,713 个 Star:
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。安装命令如下:
pipinstallmarker-pdf如需处理 PDF 以外的格式,安装完整依赖:
pipinstallmarker-pdf[full]转换单个文件:
marker_single /path/to/file.pdf批量转换文件夹内的所有文件:
marker /path/to/input/folder支持指定页码范围、输出格式、OCR 强制识别等参数。
Python API
Marker 也可以通过 Python 代码调用:
frommarker.converters.pdfimportPdfConverterfrommarker.modelsimportcreate_model_dictfrommarker.outputimporttext_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 环境变量配置,可以实现多卡多进程加速。