跳到主要内容

文档解析 / OCR

把 PDF、扫描件、DOCX 变成 LLM 读得懂的 Markdown——MinerU 从 4GB 显存起步

上海人工智能实验室 OpenDataLab 出品,GitHub 78k+ star。pipeline 后端 4GB 显存就能跑,hybrid-engine 8GB 起把 OmniDocBench v1.6 推到 95.39 分。在 NexGPU 上,最低 $0.188/卡·时 就能开一台。

MinerU 解决的是 RAG 流水线最脏的那一段:把版式复杂的 PDF、扫描件、DOCX / PPTX / XLSX 拆成有阅读顺序的 Markdown 和 JSON。它会主动剔掉页眉页脚、脚注和页码,把双栏、多栏排版按人眼的阅读顺序拼回去,公式转 LaTeX,表格转 HTML,图片连同题注一起抽出来。OCR 覆盖 109 种语言,扫描件和残缺 PDF 也能吃。

当前稳定线是 3.4.5。3.4 把 OCR 模型换成了 PP-OCRv6,OmniDocBench v1.6 上的 OCR 相关指标提升约 11%,OCR 环节速度大约翻倍;3.4.5 顺手修掉了「docx 表格里只要有非文本特殊字符就被静默丢弃」和 PDF 抽文本时代理对(surrogate pair)还原的两个老坑。3.3 引入的 hybrid-engine 现在是默认后端,带 --effort medium / high 两档。4.0.0a6 已经在 GitHub 上以 pre-release 形式滚动更新,doclib 还在重构,生产环境别碰。

MinerU 的甜点在于它便宜得不像个 SOTA。VLM 权重 MinerU2.5-Pro-2605-1.2B 只有 12 亿参数、Qwen2-VL 架构、bf16 存放,却在 OmniDocBench v1.6 上拿到 95.69 的总分,表格 TEDS 93.62、文本编辑距离 0.036,压过一票专用 OCR 模型和体量大得多的前沿 VLM。官方给的吞吐基线是 vllm-async-engine 在单张 A100 上 2.12 fps。换算下来,在 NexGPU 租一张 A100 PCIE 80GB 把 10 万页文档全跑一遍,账单大约 $11。

01 —

版本与后端:先搞清楚你要跑的是哪一套

MinerU 不是单一模型,而是「一个 CLI + 两条推理路线」,显存差一倍,分数差 9 分。

版本参数量显存上下文说明
MinerU 3.4.5(当前稳定版)默认后端 hybrid-enginepipeline 4GB / hybrid 与 vlm 8GB / http-client 2GBPDF、DOCX、PPTX、XLSX、图片OCR 升级到 PP-OCRv6,OmniDocBench v1.6 的 OCR 指标 +11%、速度约翻倍;修复 docx 表格含特殊字符被静默丢弃。绝大多数人应该装这个。
MinerU2.5-Pro-2605-1.2B(当前 VLM 权重)1.2B,Qwen2-VL 架构,bf16 safetensorsbf16 权重本体 8GB 可跑,vLLM 常驻建议 ≥16GB 留 KV cache两阶段:降采样图做全局版面分析 → 原生分辨率裁切做细粒度识别OmniDocBench v1.6 总分 95.69、表格 TEDS 93.62、文本编辑距离 0.036,Apache 2.0 协议。3.3 起随 hybrid / vlm 后端一起下发。
MinerU2.5-2509-1.2B(上一代 VLM 权重)1.2Bbf16 ~8GB同样是两阶段版面 → 裁切识别OmniDocBench 总分 85.61,官方那条「A100 单卡 vllm-async-engine 2.12 fps」的吞吐基线就出自这一代。注意协议是 AGPL-3.0,和 Pro 版的 Apache 2.0 不一样,商用前务必看清你拉的是哪份权重。
pipeline 后端(PP-DocLayoutV2 + MFD/MFR + PP-OCRv6 + TabCls/TabRec + OriCls + ReadingOrder)一组小模型串起来,不是单个大模型最低 4GB,纯 CPU 也能跑109 种语言 OCR,-l 参数只在这个后端生效OmniDocBench v1.6 得分 86.47。兼容性最好、显存最省,适合海量常规版式的批处理,也是唯一能输出 span.pdf 调试图的后端。
hybrid-engine,--effort medium / highpipeline 与 VLM 混合调度8GB 起medium 档不做图片内容分析medium 95.26、high 95.39,纯 vlm-engine 是 95.30。默认 medium 已经足够;需要图注、图表内容理解时再切 high。
MinerU 4.0.0a6(pre-release)doclib 架构重构中与 3.4 线一致仅 GitHub Releases 提供预发布分支,接口还在动(模型下载完成标记、doclib 视觉块 locator 暴露等)。想尝鲜可以单开一台按秒计费的机器试,别接生产流量。

02 —

MinerU 该租哪张卡

MinerU 官方要求 GPU 架构 Volta 及以后。显存不是瓶颈,吞吐才是——所以选卡的逻辑是「够用的显存 + 尽量便宜的算力密度」。

  • pipeline 后端批量把常规版式 PDF 转 Markdown(最省钱)

    RTX 3090 24GB$0.193/卡·时

    pipeline 只要 4GB 显存,3090 是全网价目表里最便宜的 Ampere 卡,剩下的 20GB 全部拿去堆并发和 batch,单页成本能压到极低。

  • hybrid-engine / vlm-engine 单卡在线服务,跑 MinerU2.5-Pro-2605-1.2B

    RTX 4090 24GB$0.540/卡·时

    8GB 是官方门槛,但 1.2B VLM 在 vLLM 连续批处理下真正吃的是带宽和 KV cache;4090 的 Ada 算力配 24GB 显存,是单卡在线解析服务的甜点位。

  • 对齐官方 2.12 fps 吞吐基线,跑大规模文档入库

    A100 PCIE 80GB$0.824/卡·时

    官方那条 vllm-async-engine 吞吐数字就是在单张 A100 上测的,照抄参数不用重新调优;80GB 显存可以把 gpu-memory-utilization 拉满、多路并发一起上。

  • 多卡集群跑 mineru-router,百万页级别文档流水线

    A100 SXM4 80GB$1.088/卡·时

    SXM4 的卡间互联更适合多实例常驻,单节点最多 14 张卡;配 mineru-router --local-gpus auto 自动分发任务,墙钟时间按卡数线性缩短。

03 —

在 NexGPU 上把 MinerU 跑起来

从开机到第一份 Markdown,正常十几分钟——大头是拉权重,不是装环境。

  1. 01

    开一台 GPU 实例并装 MinerU

    在 console.nexgpu.net 选 PyTorch 或 vLLM 预置镜像开机,2000+ 镜像里 CUDA 驱动和 CJK 字体都是配好的。Python 用 3.10–3.13(Windows 因为 Ray 依赖只能到 3.12)。mineru[all] 会把 pipeline 和 VLM 两条路线的依赖一次装齐;只用 pipeline 可以装 mineru[pipeline] 省磁盘。

    pip install --upgrade pip uv && uv pip install -U "mineru[all]"
  2. 02

    拉权重,跑通第一份 PDF

    国内节点把模型源切到 ModelScope,比 HuggingFace 稳得多;也可以设 local 用已经下好的目录,路径会自动写进用户目录下的 mineru.json。权重加上依赖预留 20GB SSD。跑完除了 .md,还会给 content_list.json、content_list_v2.json、middle.json、model.json 和 layout.pdf——排查阅读顺序错乱就看 layout.pdf,pipeline 后端还额外给 span.pdf。

    export MINERU_MODEL_SOURCE=modelscope && mineru-models-download && mineru -p paper.pdf -o ./out -b hybrid-engine --effort high
  3. 03

    起成服务:FastAPI、WebUI 或 OpenAI 兼容接口

    mineru-api 是 FastAPI 服务,--enable-vlm-preload true 会在启动时预热 VLM,避免第一个请求超时;想要个页面就用 mineru-gradio;要让别的 Agent 框架按 OpenAI 协议调用,起 mineru-openai-server,再让轻量客户端用 -b vlm-http-client 连过来——客户端侧只要 2GB 显存,连 torch 都不用装。

    mineru-api --host 0.0.0.0 --port 8000 --enable-vlm-preload true
  4. 04

    扩到多卡,把墙钟时间打下去

    NexGPU 单节点最多 14 张卡。mineru-router 用 --local-gpus auto 自动把本机所有 GPU 拉起来做实例分发,也能用 --upstream-url 把多台机器上的 mineru-api 聚合成一个入口。任务跑完停机,计算立刻停止计费;盘上的权重要么保留($0.414/GB·月)要么销毁,自己决定。

    mineru-router --host 0.0.0.0 --port 8002 --local-gpus auto

10 万页文档,到底要花多少钱

拿官方公开的吞吐基线算一笔实账。MinerU2.5 在单张 A100 上用 vllm-async-engine 跑出 2.12 fps,也就是 2.12 × 3600 ≈ 7,632 页/小时。10 万页 ÷ 7,632 ≈ 13.1 小时。NexGPU 的 A100 PCIE 80GB 是 $0.824/卡·时,13.1 × 0.824 ≈ $10.8。存储按权重 20GB 加输出 20GB 共 40GB 算,$0.414/GB·月 折到 13.1 小时约 $0.30;把 20GB 结果拉回本地,出网 20 × $0.0081 ≈ $0.16。合计约 $11.3,折合每页 0.0001 美元出头。嫌 13 小时太久就横向扩:4 张 A100 SXM4 80GB 把墙钟压到约 3.3 小时,4 × $1.088 × 3.3 ≈ $14.4——多花 3 美元买回 10 小时。如果文档版式规整、只需要 pipeline 后端,换成 RTX 3090 24GB($0.193/卡·时)单页成本还能再降一个台阶。计费按秒计量、按小时定价,没有起租时长、没有开通费、不用申请配额,实例一停计算费就停。

04 —

常见问题

MinerU 本地部署到底需要多大显存?

官方给的门槛很明确:pipeline 后端最低 4GB,hybrid-engine 和 vlm-engine 最低 8GB,只做 http-client 的轻量客户端 2GB。另外内存至少 16GB(建议 32GB+),磁盘 20GB 起且建议 SSD,GPU 架构要 Volta 及以后。也就是说一张 RTX 3090 24GB 就足够把最重的 hybrid-engine 喂饱——在 NexGPU 上 $0.193/卡·时,比很多人本地那张卡的电费还便宜。

MinerU 能不能纯 CPU 跑?为什么还要租 GPU?

能,pipeline 后端明确支持纯 CPU,hybrid-engine 和 vlm-engine 则必须有 GPU。但 CPU 跑复杂版式和扫描件时慢得让人怀疑人生,而且拿不到 95 分档的解析质量。算笔账:一张 Tesla T4 16GB 是 $0.298/卡·时,RTX 3090 24GB 只要 $0.193/卡·时,按秒计费跑完就停——为了省这点钱让 CPU 磨一整夜,不划算。NexGPU 上开机就能跑,2000+ 预置镜像连 CUDA 都不用你配。

pipeline 后端和 MinerU2.5 的 VLM 后端,我该选哪个?

看你的文档有多难。OmniDocBench v1.6 上 pipeline 是 86.47 分,hybrid-engine medium 档 95.26、high 档 95.39,纯 vlm-engine 95.30——差着近 9 分,主要差在复杂表格、长公式、无框线表格和旋转表格。规整的电子版报表、合同用 pipeline 又快又省;论文、财报、扫描年鉴这类硬骨头上 hybrid。真不确定就两个都试:在 NexGPU 同时开一台 3090 和一台 4090,跑同一批样本对比,两小时的测试成本不到 $1.5。

RTX 5090 这类 Blackwell 卡上 MinerU 装不起来怎么办?

这是已知坑。Volta / Turing / Ampere / Ada(V100、20/30/40 系、T4)按官网指引装对应 CUDA 版本的 PyTorch 就行;RTX 50 系属于 Blackwell,官方 FAQ 要求装 lmdeploy 0.11.1 + cu128 的对应 Python 版本 wheel,否则会退化成 CPU 推理、慢得离谱。NexGPU 有 RTX 5090 32GB($0.723/卡·时),也有一整排 Ampere / Ada 卡;如果你不想跟 Blackwell 的轮子较劲,直接开 RTX 4090 24GB($0.540/卡·时)用预置的 PyTorch 镜像,省下的时间够跑好几万页。

解析出来的中文是空白、乱码,或者一启动就报 libGL.so.1 找不到?

两个经典环境问题,官方 FAQ 都有答案。Linux 上文字消失通常是缺 CJK 字体,装 fonts-noto-core 和 fonts-noto-cjk 再 fc-cache -fv 即可;WSL2 / Ubuntu 22.04 报 ImportError: libGL.so.1 就 apt-get install libgl1-mesa-glx。这也正是我们建议直接用 NexGPU 预置镜像的原因——字体、CUDA、驱动都在镜像里配好了,你开机就是干活,不是修环境。

MinerU 的开源协议能商用吗?

项目本体用的是「MinerU 开源许可证」,基于 Apache 2.0 加附加条件(早期版本曾是 AGPLv3,已经改了)。权重要分开看:MinerU2.5-Pro-2605-1.2B 是 Apache 2.0,而上一代 MinerU2.5-2509-1.2B 的模型卡挂的是 AGPL-3.0——商用前一定确认你实际加载的是哪份权重。合规判断请你自己做,我们只负责让算力那一头没有障碍:NexGPU 覆盖 51 个国家和地区、1,175 个已验证可租节点,你可以把实例开在符合你数据合规要求的地区。

开始使用 NexGPU

无论你是企业研发团队还是独立开发者,都可以在几分钟内跑起第一个任务。

注册即可浏览全网实时价格,无需绑定支付方式。