MinerU2.5-Pro: Pushing the Limits of Data-Centric Document Parsing at Scale
81
5 commits
7 linked in READMEs
updated Jun 16, 2026
2026.05.21 🎉🎉 We are pleased to announce the release of MinerU2.5-Pro-2605, an updated version of our model.
Enhanced Layout Detection
To address the category misclassification issues observed in the 2604 version during layout detection, we conducted a comprehensive data cleaning process. This has substantially reduced category errors in layout detection. Notably, the missed detection rate for the image_block category has been significantly reduced.
Improved Image Analysis To overcome the limitations of the 2604 version in image analysis, we constructed a large-scale training dataset for this task. As a result, the 2605 version demonstrates markedly enhanced recognition capabilities across a wide range of charts, flowcharts, and even seals.
Comparable Performance on OmniDocBench The 2605 version primarily focuses on enhancing user experience, with performance metrics showing only marginal differences compared to the 2604 version. A detailed comparison of the metrics is presented below:
| Model Version | Overall↑ | TextEdit↓ | FormulaCDM↑ | TableTEDS↑ | TableTEDS-S↑ | Read OrderEdit↓ |
|---|---|---|---|---|---|---|
| MinerU2.5-Pro-2605 | 95.72 | 0.036 | 97.15 | 93.62 | 96.01 | 0.123 |
| MinerU2.5-Pro-2604 | 95.69 | 0.036 | 97.29 | 93.42 | 95.92 | 0.120 |
MinerU2.5-Pro is our latest document parsing model (PDF-to-Markdown) that establishes a new industry standard. By focusing entirely on data engineering without altering the original 1.2B-parameter architecture, it delivers exceptional results across the board:
1. Defeating Leading Models on OmniDocBench v1.6 On the newly proposed, highly rigorous OmniDocBench v1.6, MinerU2.5-Pro achieves the absolute SOTA overall score of 95.69. It comprehensively outperforms both top-tier specialized OCR models (GLM-OCR, PaddleOCR-VL-1.5) and massive frontier VLMs (Gemini 3 Pro, Qwen3-VL-235B).
2. Massive Leap from MinerU 2.5 via Data Engineering Compared to the previous MinerU 2.5 baseline, the overall score skyrocketed from 92.98 to 95.69. This breakthrough was achieved not by scaling model parameters, but through meticulous data engineering—drastically expanding data scale, enriching distribution and difficulty diversity, and systematically elevating annotation quality.
3. Exceptional Modality-Specific Breakthroughs
4. ✨ New Practical Capabilities Beyond metric improvements, MinerU2.5-Pro now natively supports: Image & Chart Parsing, Truncated Paragraph Merging, Cross-Page Table Merging and In-Table Image Recognition.
Current SOTA models (regardless of architecture) consistently fail on the same set of complex layouts. We realized the true bottleneck is training data deficiency and annotation noise. To fix this, we built a novel Data Engine:
Bottom Line: MinerU2.5-Pro proves that systematic data engineering is the ultimate lever for document parsing, providing the most accurate structural extraction available today for LLM data pipelines and advanced RAG systems.
For convenience, we provide mineru-vl-utils, a Python package that simplifies the process of sending requests and handling responses from MinerU2.5-Pro Vision-Language Model. Here we give some examples to use MinerU2.5-Pro. For more information and usages, please refer to mineru-vl-utils.
📌 We strongly recommend using vllm for inference, as the vllm-async-engine can achieve a concurrent inference speed of 2.12 fps on one A100.
# For `transformers` backend
pip install "mineru-vl-utils[transformers]"
# For `vllm-engine` and `vllm-async-engine` backend
pip install "mineru-vl-utils[vllm]"
transformers Examplefrom 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-2605-1.2B", dtype="auto", device_map="auto"
)
processor = AutoProcessor.from_pretrained(
"opendatalab/MinerU2.5-Pro-2605-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 Example (Recommended!)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-2605-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)
🚧 Cross-Page Table Merging: Currently under integration. Stay tuned!
We would like to thank Qwen Team, vLLM, OmniDocBench, PaddleOCR, UniMERNet, DocLayout-YOLO for providing valuable code and models. We also appreciate everyone's contribution to this open-source project!
If you find our work useful in your research, please consider giving a star ⭐ and citation 📝 :
@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},
}
MinerU2.5-Pro: Pushing the Limits of Data-Centric Document Parsing at Scale
81
5 commits
7 linked in READMEs
updated Jun 16, 2026
2026.05.21 🎉🎉 We are pleased to announce the release of MinerU2.5-Pro-2605, an updated version of our model.
Enhanced Layout Detection
To address the category misclassification issues observed in the 2604 version during layout detection, we conducted a comprehensive data cleaning process. This has substantially reduced category errors in layout detection. Notably, the missed detection rate for the image_block category has been significantly reduced.
Improved Image Analysis To overcome the limitations of the 2604 version in image analysis, we constructed a large-scale training dataset for this task. As a result, the 2605 version demonstrates markedly enhanced recognition capabilities across a wide range of charts, flowcharts, and even seals.
Comparable Performance on OmniDocBench The 2605 version primarily focuses on enhancing user experience, with performance metrics showing only marginal differences compared to the 2604 version. A detailed comparison of the metrics is presented below:
| Model Version | Overall↑ | TextEdit↓ | FormulaCDM↑ | TableTEDS↑ | TableTEDS-S↑ | Read OrderEdit↓ |
|---|---|---|---|---|---|---|
| MinerU2.5-Pro-2605 | 95.72 | 0.036 | 97.15 | 93.62 | 96.01 | 0.123 |
| MinerU2.5-Pro-2604 | 95.69 | 0.036 | 97.29 | 93.42 | 95.92 | 0.120 |
MinerU2.5-Pro is our latest document parsing model (PDF-to-Markdown) that establishes a new industry standard. By focusing entirely on data engineering without altering the original 1.2B-parameter architecture, it delivers exceptional results across the board:
1. Defeating Leading Models on OmniDocBench v1.6 On the newly proposed, highly rigorous OmniDocBench v1.6, MinerU2.5-Pro achieves the absolute SOTA overall score of 95.69. It comprehensively outperforms both top-tier specialized OCR models (GLM-OCR, PaddleOCR-VL-1.5) and massive frontier VLMs (Gemini 3 Pro, Qwen3-VL-235B).
2. Massive Leap from MinerU 2.5 via Data Engineering Compared to the previous MinerU 2.5 baseline, the overall score skyrocketed from 92.98 to 95.69. This breakthrough was achieved not by scaling model parameters, but through meticulous data engineering—drastically expanding data scale, enriching distribution and difficulty diversity, and systematically elevating annotation quality.
3. Exceptional Modality-Specific Breakthroughs
4. ✨ New Practical Capabilities Beyond metric improvements, MinerU2.5-Pro now natively supports: Image & Chart Parsing, Truncated Paragraph Merging, Cross-Page Table Merging and In-Table Image Recognition.
Current SOTA models (regardless of architecture) consistently fail on the same set of complex layouts. We realized the true bottleneck is training data deficiency and annotation noise. To fix this, we built a novel Data Engine:
Bottom Line: MinerU2.5-Pro proves that systematic data engineering is the ultimate lever for document parsing, providing the most accurate structural extraction available today for LLM data pipelines and advanced RAG systems.
For convenience, we provide mineru-vl-utils, a Python package that simplifies the process of sending requests and handling responses from MinerU2.5-Pro Vision-Language Model. Here we give some examples to use MinerU2.5-Pro. For more information and usages, please refer to mineru-vl-utils.
📌 We strongly recommend using vllm for inference, as the vllm-async-engine can achieve a concurrent inference speed of 2.12 fps on one A100.
# For `transformers` backend
pip install "mineru-vl-utils[transformers]"
# For `vllm-engine` and `vllm-async-engine` backend
pip install "mineru-vl-utils[vllm]"
transformers Examplefrom 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-2605-1.2B", dtype="auto", device_map="auto"
)
processor = AutoProcessor.from_pretrained(
"opendatalab/MinerU2.5-Pro-2605-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 Example (Recommended!)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-2605-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)
🚧 Cross-Page Table Merging: Currently under integration. Stay tuned!
We would like to thank Qwen Team, vLLM, OmniDocBench, PaddleOCR, UniMERNet, DocLayout-YOLO for providing valuable code and models. We also appreciate everyone's contribution to this open-source project!
If you find our work useful in your research, please consider giving a star ⭐ and citation 📝 :
@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},
}