MinerU2.5-Pro是我们最新的文档解析模型(PDF转Markdown),树立了新的行业标准。该模型完全专注于数据工程,未改变原始的12亿参数架构,却在各方面均取得了卓越成果:
1. 在OmniDocBench v1.6上超越主流模型 在新提出的、严格度极高的OmniDocBench v1.6基准测试中,MinerU2.5-Pro取得了95.69的绝对SOTA综合得分。它全面超越了顶级专业OCR模型(GLM-OCR、PaddleOCR-VL-1.5)和大型前沿视觉语言模型(Gemini 3 Pro、Qwen3-VL-235B)。
2. 通过数据工程实现MinerU 2.5的大幅跃升 与上一代MinerU 2.5基准模型相比,综合得分从92.98飙升至95.69。这一突破并非通过扩大模型参数规模实现,而是依靠精心的数据工程——大幅扩展数据规模、丰富数据分布与难度多样性,并系统性提升标注质量。
3. 各模态的显著突破
4. ✨ 新增实用功能 除指标提升外,MinerU2.5-Pro现在原生支持:图像与图表解析、截断段落合并、跨页表格合并以及表格内图像识别。
当前的SOTA模型(无论采用何种架构)在同一批复杂布局上均表现不佳。我们意识到,真正的瓶颈在于训练数据不足和标注噪声。为解决这一问题,我们构建了全新的数据引擎:
核心结论:MinerU2.5-Pro证明,系统化的数据工程是文档解析的终极杠杆,为LLM数据管道和高级RAG系统提供了当今最准确的结构化提取能力。
为方便使用,我们提供了 mineru-vl-utils 这一 Python 包,用于简化向 MinerU2.5-Pro 视觉语言模型发送请求和处理响应的流程。以下是使用 MinerU2.5-Pro 的一些示例。更多信息和用法,请参考 mineru-vl-utils。
📌 我们强烈建议使用 vllm 进行推理,因为 vllm-async-engine 在单张 A100 上可实现 2.12 fps 的并发推理速度。
# For `transformers` backend
pip install "mineru-vl-utils[transformers]"
# For `vllm-engine` and `vllm-async-engine` backend
pip install "mineru-vl-utils[vllm]"transformers 示例from transformers import AutoProcessor, Qwen2VLForConditionalGeneration
from PIL import Image
from mineru_vl_utils import MinerUClient
# for transformers>=4.56.0
model = Qwen2VLForConditionalGeneration.from_pretrained(
"opendatalab/MinerU2.5-Pro-2604-1.2B", dtype="auto", device_map="auto"
)
processor = AutoProcessor.from_pretrained(
"opendatalab/MinerU2.5-Pro-2604-1.2B", use_fast=True
)
client = MinerUClient(
backend="transformers", model=model, processor=processor,
image_analysis=False # default False, set True to enable image/chart analysis
)
print(client.two_step_extract(Image.open("/path/to/page.png")))vllm-engine 示例(推荐!)from vllm import LLM
from PIL import Image
from mineru_vl_utils import MinerUClient
from mineru_vl_utils import MinerULogitsProcessor # if vllm>=0.10.1
llm = LLM(
model="opendatalab/MinerU2.5-Pro-2604-1.2B",
logits_processors=[MinerULogitsProcessor] # if vllm>=0.10.1
)
client = MinerUClient(
backend="vllm-engine", vllm_llm=llm,
image_analysis=False # default False, set True to enable image/chart analysis
)
print(client.two_step_extract(Image.open("/path/to/page.png")))from mineru_vl_utils.post_process import json2md
# ... omit client initialize
content_list = client.two_step_extract(Image.open("path/to/page.png"))
md_res = json2md(content_list)🚧 跨页表格合并:目前正在集成中,敬请期待!
感谢 Qwen Team、vLLM、OmniDocBench、PaddleOCR、UniMERNet、DocLayout-YOLO 提供的宝贵代码和模型。同时也感谢所有为这个开源项目做出贡献的人!
如果您觉得我们的工作对您的研究有所帮助,欢迎点亮 star ⭐ 并引用 📝:
@misc{wang2026mineru25propushinglimitsdatacentric,
title={MinerU2.5-Pro: Pushing the Limits of Data-Centric Document Parsing at Scale},
author={Bin, Wang and Tianyao, He and Linke, Ouyang and Fan, Wu and Zhiyuan, Zhao and Tao, Chu and Yuan, Qu and Zhenjiang, Jin and Weijun, Zeng and Ziyang, Miao and Bangrui, Xu and Junbo, Niu and others},
year={2026},
eprint={2604.04771},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2604.04771},
}