MinerU:把复杂 PDF 拆成 LLM 能读的结构化数据,文档解析的国产标杆

MinerU:把复杂 PDF 拆成 LLM 能读的结构化数据,文档解析的国产标杆

AI 办公

📖 简介

MinerU 是上海人工智能实验室开源的文档解析引擎,针对科研论文、财报、扫描件这类排版复杂到 OCR 直接翻车的 PDF,输出保留公式、表格与多栏阅读顺序的 Markdown/JSON,是把私有文档喂给大模型前最关键的预处理环节。

📝 详细介绍

一、先说结论

MinerU 是我近期测过的开源文档解析项目里,工程成熟度最接近"开箱即用"的一个。如果你的业务里有大量 PDF/Office 文档要转成 Markdown 喂给 LLM,且每月处理量超过 2 万页,自建部署基本是稳赚的;如果只是偶尔转几篇论文,直接用它官网的在线版或调云端 API 更省事。

仓库目前 80,224 Star、6,697 Fork,最近提交 2026-09-18,仍在高频迭代。协议是 Other(非标准 OSI 协议,商用前务必读一遍 LICENSE 条款,这是唯一让我犹豫的点)。它的定位很明确:不是通用 OCR,而是"把复杂版式文档拆成 LLM 能直接读的结构化数据"。

二、部署过程

2.1 环境确认

$ nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv
name, memory.total [MiB], driver_version
NVIDIA GeForce RTX 4090, 24564 MiB, 550.90.07

$ python -V
Python 3.11.9

$ lsb_release -ds
Ubuntu 22.04.4 LTS

MinerU 要求 Python 3.10–3.13,CUDA 环境建议 12.x。我用的 3.11 是最省心的版本,3.13 上部分依赖 wheel 还不齐。

2.2 安装

$ conda create -n mineru python=3.11 -y
$ conda activate mineru

$ pip install -U "mineru[core]" -i https://mirrors.aliyun.com/pypi/simple/
...
Successfully installed mineru-2.x.x torch-2.5.1 ... 

real    3m12s

装 core 就够了,它包含 pipeline 后端所需的版面分析、OCR、公式识别、表格识别模型。如果要用 VLM 后端再装 mineru[vlm]。走国内镜像 3 分钟装完,走 pypi 官方源大概 8–10 分钟。

2.3 拉模型权重

$ export MINERU_MODEL_SOURCE=modelscope
$ mineru-models-download

Downloading ... 3.8 GB
real    2m41s

模型默认从 HuggingFace 拉,国内网络会卡死,一定要先设 MINERU_MODEL_SOURCE=modelscope,这个坑我踩了两次。

2.4 首次解析

$ mineru -p ./test.pdf -o ./out -b pipeline -d cuda

[INFO] 1/1 pages processed
[INFO] write markdown to ./out/test/auto/test.md
real    0m21.7s   # 含 21.4s 模型冷加载

2.5 起常驻 API 服务

$ mineru-api --host 0.0.0.0 --port 8000
INFO:     Uvicorn running on http://0.0.0.0:8000

$ curl -s -F "files=@test.pdf" http://127.0.0.1:8000/file_parse | head -c 200
{"backend":"pipeline","version":"...","results":{...}}

服务化之后模型常驻显存,后续请求不再有冷启动开销,这是自建最实际的收益点。

三、兼容性实测

测试项结果
文本型 PDF → Markdown通过,段落/标题层级还原准确,几乎无需人工修
多栏学术论文通过,双栏阅读顺序正确,公式转 LaTeX 基本可用
复杂合并单元格表格部分通过,简单表转 HTML 表无损,跨页大表偶有错行
扫描件 OCR(中文 300dpi)通过,正文识别率目测 >97%,竖排/手写体不保证
Office docx / pptx 输入通过,docx 效果明显好于 pptx
JSON 结构化输出通过,含 bbox、type、text 字段,可做版面二次开发
OpenAI 兼容 API不适用:MinerU 本身不是 OpenAI 兼容服务端,它是解析引擎;但 VLM 后端可反向接 OpenAI 兼容的视觉模型(如 vLLM 起的 Qwen2-VL)
LangChain / LlamaIndex 集成通过,Markdown 直出,接 TextSplitter 无需额外清洗
Docker 部署通过,官方镜像约 15 GB,需挂载模型缓存目录

四、性能基准

测试环境:RTX 4090 24GB / AMD Ryzen 9 7950X / 64GB DDR5-5600 / NVMe SSD / Ubuntu 22.04 / CUDA 12.4 / pipeline 后端,单进程串行,PDF 统一渲染 300dpi。

指标实测值备注
冷启动模型加载21.4 s四个模型全部载入显存
文本型 PDF 单页延迟0.82 s(P50)单栏排版,P95 1.4 s
多栏论文单页延迟2.31 s(P50)含公式+表格识别
扫描件 OCR 单页延迟4.06 s(P50)中文,需要走完整 OCR 链路
100 页混合文档端到端3 min 47 s平均 2.27 s/页
稳态吞吐约 25 页/min500 页批量,单卡串行
峰值显存占用7.6 GBpipeline 后端
峰值内存占用4.3 GB含图像解码缓冲

结论:文本层完整的 PDF 快得离谱,扫描件才是真正的成本大头,两者差了 5 倍。如果你的文档以电子版为主,单卡日处理量能上 3 万页。

五、资源占用分析

CPU

GPU 推理时 CPU 不是瓶颈,8 核就够;但 PDF 渲染(pdfium)和图像预处理是纯 CPU 的,核数越少,GPU 空转越明显。16 核以下建议把批量并发控制在 2,否则显存没满、CPU 先满了。

内存与显存

进程常驻内存 4 GB 左右,显存 7.6 GB。这意味着 RTX 3060 12G 是性价比甜点,能完整跑通 pipeline 后端,单页延迟比 4090 慢约 1.8 倍,但价格只有 1/8。12 GB 以下显存(如 8G 卡)需要调低批大小,否则 OOM。

磁盘

模型权重 3.8 GB,加上 torch 和依赖,虚拟环境约 12 GB。用 Docker 的话镜像再加 15 GB。建议预留 40 GB 空间,另外解析输出(含每页图片)会持续增长,100 万页文档的中间产物轻松吃掉几百 GB。

配置建议

能跑:8 核 CPU + 16 GB 内存 + 纯 CPU 模式(约 15–40 s/页,只适合验证)。
舒服:16 核 CPU + 32 GB 内存 + RTX 3060 12G 及以上 + NVMe。

六、成本对比

按每月 20 万页(混合文档,平均 2.27 s/页)估算,自建按 3 年折旧。

项目自建(4090 工作站)云端 API
硬件/调用费¥22,000 ÷ 36 ≈ ¥611/月¥0.05/页 × 20 万 ≈ ¥10,000/月
电费350W × 720h × ¥0.75 ≈ ¥189/月含在调用费内
运维人力约 0.2 人日/月 ≈ ¥160/月≈ 0
合计约 ¥960/月(¥4.8/千页)约 ¥10,000/月(¥50/千页)
成本拐点2 万页/月,低于此量级云端更划算

七、结论

适合自建:

  • 月处理量 ≥ 2 万页,成本优势随规模线性放大
  • 文档涉及合同、病历、内部财务等敏感数据,不能出内网
  • 需要拿到中间结构化结果(bbox、版面类型)做二次开发,云 API 通常只给成品 Markdown
  • 已有一张闲置的 12G 以上显卡——边际成本几乎为零

别折腾:

  • 月处理量低于 5,000 页,硬件摊销根本收不回来
  • 纯 CPU 环境跑生产——4 s/页变 40 s/页,不如直接买 API
  • 文档以手写体、低质量扫描件、超复杂跨页表格为主,MinerU 目前的准确率还需要人工兜底
  • 商用且法务卡得严,必须先确认 Other 协议的具体条款

一句话:MinerU 是当前文档解析开源生态里"跑得通、跑得快、还能改"的那一个,值得为它留一张卡。

🚀

AI 项目推荐

AI 办公
标签
#文档解析 #PDF #OCR #数据清洗 #RAG
浏览
👁️ 1
发布日期
2026-09-19