Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

131 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MinerU-ROCm

Evaluation-backed AMD ROCm port of MinerU — runs the MinerU 3.4 pipeline and the MinerU2.5-Pro VLM on AMD gfx1100 (RDNA3) and reports OmniDocBench v1.6 results across multiple inference backends. Not a precision-aligned port: no same-page-set CUDA control exists, and the upstream headline may use a different engine. See Benchmark methodology.

OmniDocBench v1.6 VLM full pipeline full status: evaluation-backed license: Apache-2.0

At a glance

  • What it is. Tooling to run opendatalab MinerU (3.4 pipeline + 2.5-Pro VLM) on AMD ROCm and score it on OmniDocBench v1.6.
  • Where verified. AMD gfx1100 (RDNA3), Radeon PRO W7900 (48 GB), ROCm 7.2, bf16. Host has 4x W7900; each benchmark used 1 GPU (no tensor parallel).
  • Most reliable results. MinerU2.5-Pro VLM (vLLM-on-ROCm) full 1651 = 95.56 Overall (platform CDM-scored; prior standalone score 95.46 from the same prediction set — Δ +0.10 pp, entirely the Formula-CDM submetric 96.46→96.73); MinerU 3.4 pipeline full 1651 = 86.48 Overall.
  • Most important limitation. Not precision-aligned. No same-engine CUDA control exists; the upstream headline may be measured with a different engine. The official anchor (vlm-engine 95.30) is aligned to the upstream README "Local Deployment" table and is community-verified, not official support.
  • Upstream. This is a port OF opendatalab/MinerU; the omnidocbench-rocm engine is one optional consumer (install the [platform] extra), not the definition of this repo.

Install

The core package is GPU-free and has no platform dependency.

pip install -e ".[dev]"          # core + dev/CI tooling (pytest, ruff, reuse)
# optional: omnidocbench-rocm engine integration (the adapter/run_adapter.py path)
pip install -e ".[platform]"

For platform provisioning (weights, ROCm runtime), run make setup-linux (or make setup-windows). GPU backends additionally need a ROCm torch + (VLM) vLLM-on-ROCm, installed separately from a verified ROCm wheel source — see docs/reproducibility.md.

Note: provisioning scripts (adapter/setup/) are stubs — they document the manual steps required; they do not automate the full environment setup. See adapter/setup/00-install-deps.sh for the Linux recipe.

Demo

The smoke backend needs no GPU — it writes a placeholder .md per image so you can verify the contract end-to-end:

bash examples/run_demo.sh        # Linux/macOS
# .\examples\run_demo.ps1        # Windows

Or directly:

python adapter/run_adapter.py --img-dir examples --out-dir /tmp/out --platform linux-rocm --backend smoke

Evaluation

The canonical OmniDocBench-ROCm platform evaluation uses omnidocbench-rocm:

MinerU2.5-Pro VLM (primary model card, mineru2.5)

omnidocbench-rocm run \
  --stage all \
  --platform linux-rocm \
  --version v16 \
  --revision 2b161d0 \
  --adapter adapter/run_adapter.py \
  --model-id mineru2.5 \
  --backend vlm-vllm \
  --server-url http://127.0.0.1:8265/v1 \
  --api-model-name mineru-pro \
  --git-commit "$(git rev-parse HEAD)" \
  --results-dir results/omnidocbench/v16/linux-rocm \
  --cdm
# Add --skip-existing only to resume an interrupted run (make eval-mineru2.5-linux RESUME=1).

MinerU 3.4 Pipeline (supplementary, mineru-pipeline)

omnidocbench-rocm run \
  --stage all \
  --platform linux-rocm \
  --version v16 \
  --revision 2b161d0 \
  --adapter adapter/run_adapter.py \
  --model-id mineru-pipeline \
  --backend pipeline \
  --git-commit "$(git rev-parse HEAD)" \
  --results-dir results/omnidocbench/v16/linux-rocm \
  --cdm

Split-stage execution (for long VLM runs)

omnidocbench-rocm infer --backend vlm-vllm ...
omnidocbench-rocm score ...
omnidocbench-rocm publish --predictions-dir <real-prediction-dir> ...

The standalone mineru-rocm CLI (predict / score) remains available for developer debugging — see docs/reproducibility.md for the full recipe.

Results — MinerU2.5-Pro VLM (primary model card, mineru2.5)

Model / Backend Overall Text Edit Formula CDM Table TEDS
official MinerU2.5-Pro (upstream README vlm-engine row; community-verified, not official support) 95.30
ours MinerU2.5-Pro (vlm-llamacpp, Windows-HIP) 95.46 0.0373 97.01 93.11
ours MinerU2.5-Pro (vlm-vllm, ROCm) 95.56 0.0359 96.73 93.54
ours MinerU2.5-Pro (vlm-transformers, ROCm) sample-only

The vlm-vllm row is reproduced on linux-rocm (self-attested, badge: community): 1651/1651 pages attempted, 1649 non-empty predictions (2 empty), no process crashes; ~7 h on a single GPU (gfx1100); read-order EditDist 0.1240. Overall 95.56 is consistent with the published upstream reference range 1651/1651 pages attempted, 1649 non-empty predictions (2 empty), no process crashes; ~7 h on a single GPU (gfx1100); read-order EditDist 0.1240. The �lm-llamacpp row is reproduced on windows-hip (Strix Halo): 1649/1651 ok, 2 empty (cover/decoration pages), Overall 95.46 identical to the Linux vLLM standalone score. See docs/windows-vlm-phase2.md. | ours MinerU 3.4 pipeline (ROCm gfx1100, linux-rocm) | 86.48 | 0.0566 | 83.07 | 82.04 | | ours MinerU 3.4 pipeline (Strix Halo, windows-hip) | 86.59 | 0.0565 | 83.39 | 82.04 |

Linux pipeline results are at results/omnidocbench/v1.6/pipeline/; the Windows-HIP Phase 1 bundle is at results/omnidocbench/v16/windows-hip/. The Windows run recovered the one header-only empty output and finished 1651/1651 pages. The primary registry card is mineru2.5 (VLM); pipeline is a supplementary card in the same repo — see model_card.pipeline.json and model_card.pipeline.windows-hip.json.

Reproducibility

reproducibility.lock.yaml is the single source of truth — pinned commits, byte-exact weight/GT SHA256 cross-checked against the upstream HF repos, environment versions, and the metric formula. Verified values were populated from the full 1651-page reruns completed on 2026-07-19.

Hardware: AMD gfx1100 (Radeon PRO W7900), 48 GB VRAM, ROCm 7.2, bf16. The official reference (pipeline 86.47, vlm-engine 95.30) is sourced from the upstream MinerU README "Local Deployment" table as a community-verified anchor, not official support. See docs/reproducibility.md for the full recipe.

Release consumers should also read docs/release-artifact.md, docs/hardware-matrix.md, and docs/architecture.md. The release checklist is maintained at docs/release-checklist.md.

License — read before downloading weights

This repo is Apache-2.0 (original packaging/tooling). The MinerU pipeline is under the MinerU Open Source License (Apache-2.0 + additional terms: commercial use above MAU 100M or USD 20M/mo revenue needs a separate license; online services must attribute MinerU). mineru-vl-utils and the MinerU2.5-Pro weights are Apache-2.0. The PDF-Extract-Kit-1.0 pipeline weights declare no license on their HF card — treat as license-ambiguous, do not redistribute. Full breakdown in NOTICE and LICENSES/. Not affiliated with the MinerU Team / OpenDataLab.

Issues filed

  • ROCm/AMDMIGraphX#5078 — Loop-subgraph parser bug affecting ONNX table recognition on ROCm.
  • Upstream opendatalab/MinerU AMD.md contribution + PDF-Extract-Kit-1.0 license clarification are planned (P4).

Known Gaps

  • The smoke backend emits placeholder text, not real OCR. CI/conformance can force smoke via --backend smoke to validate the adapter contract without a GPU.
  • Windows-HIP pipeline Phase 1 is verified with a conformant 1651-page CDM bundle; Phase 2 VLM (llama.cpp HIP) is verified with Overall 95.46, identical to the Linux vLLM baseline (independently reproduced).
  • Provisioning scripts (adapter/setup/) are stubs that document the steps; they do not automate full environment setup.
  • Platform-standard artifacts for results/omnidocbench/v16/linux-rocm/ were generated on 2026-07-21 (self-contained CDM bundles for mineru2.5 and mineru-pipeline: run_summary + provenance + metric_result + run_stats + a SHA256 prediction_manifest + dataset_identity). The legacy results under results/omnidocbench/v1.6/ are retained for historical comparison and prediction-source provenance. Validate any bundle with omnidocbench-rocm validate-bundle results/omnidocbench/v16/linux-rocm.
  • VLM empty outputs: 2 of 1651 VLM pages produced empty predictions (recorded as failures + listed in the prediction manifest).
  • Pipeline empty outputs: the Linux reference has 1 empty prediction; the Windows-HIP run recovered the header-only page and finished 1651/1651.
  • Conformance passes all structural checks (omnidocbench-rocm conformance . → CONFORMANT); platform-standard artifacts are committed.
  • Full list: docs/known-gaps.md.

About

MinerU on AMD ROCm/Windows-HIP — evaluation-backed port. OmniDocBench v1.6: Linux W7900 pipeline 86.48 + VLM 95.56. Windows Strix Halo: pipeline 86.59 verified + VLM llama.cpp HIP 95.46 verified.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages