MinerU2.5
MinerU2.5: A Decoupled Vision-Language Model for Efficient High-Resolution Document Parsing
Authors: Junbo Niu, Zheng Liu, Zhuangcheng Gu, Bin Wang, et al. (Shanghai AI Laboratory, Peking University, Shanghai Jiao Tong University) — arXiv 2509.22186, 2025년 9월.
참고: 업로드된 PaddleOCR-VL(0.9B)은 이 MinerU2.5(1.2B)를 직접 겨냥한 후속작임. OmniDocBench v1.5 Overall에서 PaddleOCR-VL 92.56 > MinerU2.5 90.67로, MinerU2.5는 “이긴 대상”의 위치에 있음. 즉 이 글은 PaddleOCR-VL이 표준으로 삼은 설계의 원형을 보는 셈임.
1. 문제 정의
핵심 문제
고해상도·고밀도 문서를 정확하면서도 효율적으로 파싱하는 것이 핵심 문제임.
문서 이미지는 자연 이미지와 본질이 다름. 해상도가 높고, 텍스트가 빽빽하며, 레이아웃 구조가 복잡함. 여기서 세 가지 요구가 동시에 걸림.
| 요구 | 내용 |
|---|---|
| native resolution 처리 | 깨알 글자·미세 구조를 살리려면 리사이즈 없이 원해상도로 봐야 함 |
| 파라미터 효율·강건성 | 길고 빽빽한 문서를 감당할 가벼운 모델이어야 실배포 가능 |
| 레이아웃+추론 동시 신뢰 | 글자 인식만으론 부족. 레이아웃 분석과 읽기 순서까지 맞아야 함 |
이 결과물 품질이 RAG·LLM 사전학습 코퍼스 정제 전체를 좌우함. 파싱이 깨지면 그 노이즈가 다운스트림으로 전파되기 때문임.
기존 연구의 한계
문서 파싱은 두 갈래로 발전했고, 각각 약점이 분명함.
1) 파이프라인 방식 (Marker, MinerU 구버전 등)
레이아웃 검출 → 텍스트 인식 → 읽기 순서를 전문 모듈로 직렬 연결함. 장점은 모듈별 개별 최적화와 해석 가능성, 한계는 cascade error(앞 단계 오류 누적), 다단·교차 페이지에서의 취약함, 모듈 의존성이 많아 번거로운 유지보수임.
2) End-to-end VLM 방식 (GOT, dots.ocr, olmOCR, 범용 Gemini·Qwen2.5-VL 등)
페이지 전체를 한 모델에 통째로 넣음. 장점은 강한 의미 모델링과 단순한 워크플로, 한계는 long-document hallucination, 그리고 native-resolution 입력이 만드는 O(N²) 시각 토큰 폭증으로 인한 치명적인 latency·메모리 비용임.
저자들이 특히 못박는 병목은
token redundancy임. 문서 이미지의 상당 부분이 빈 공간·저정보 영역인데, end-to-end VLM은 이걸 다 토큰화하느라 자원을 낭비함. native-resolution일수록 빈 공간 토큰까지 O(N²)로 불어나므로, “어떻게 의미 없는 토큰을 안 만들 것인가”가 효율 설계의 출발점이 됨.
이 병목을 PaddleOCR-VL은 “레이아웃 분석 → 요소 잘라내기”로 푼다. 페이지를 통째로 VLM에 넣지 않고, PP-DocLayoutV2로 요소 위치를 먼저 잡아 조각으로 잘라낸 뒤 그 조각만 0.9B VLM에 입력함. 페이지의 빈 공간·여백은 애초에 VLM이 볼 일이 없으므로 token redundancy가 구조적으로 제거됨. 게다가 NaViT 동적 해상도가 작은 요소엔 적은 토큰, 큰 요소엔 많은 토큰을 할당하므로, 토큰 예산이 내용량에 비례하게 됨 → 빈 공간 낭비가 한 번 더 줄어듦. 결국 MinerU2.5의 “다운샘플 thumbnail + crop native”와 PaddleOCR-VL의 “detector crop + 요소 단위 인식”은 표현만 다를 뿐 token redundancy를 잡는 동일한 처방임. 단, 미묘한 차이가 있음: PaddleOCR-VL은 이걸 주로 “긴 시퀀스·hallucination·읽기순서 오류 회피”의 언어로 설명하고, MinerU2.5는 정면으로 “token redundancy / O(N²) 회피”라고 못박음. 같은 메커니즘을 다른 프레임으로 파는 셈임.
3) 미해결 trade-off
정확하려면 native resolution이 필요한데, native resolution은 O(N²)로 무거움. “정확도 ↔ 효율”을 깨는 게 핵심 과제임. (PaddleOCR-VL이 그대로 물려받는 문제 정의와 동일함.)
2. 제안 방법: MinerU2.5
논문은 이 trade-off를 decoupled 2단계 coarse-to-fine 전략으로 해소함. 단 1.2B 파라미터의 단일 VLM임.
전체 흐름:
1
2
3
문서 → [Stage I] 다운샘플(1036²)에서 전역 레이아웃 분석
→ 원해상도에서 요소 crop
→ [Stage II] crop 조각만 native resolution으로 인식 → Markdown/JSON
2.1 핵심 아이디어
전역 레이아웃은 작게 보고(thumbnail), 인식은 잘라낸 조각만 크게 봄(native).
페이지를 통째로 native resolution에 넣는 O(N²)를 회피하는 게 전부임. Stage I에서 1036×1036 축소판으로 구조만 빠르게 잡고, Stage II에서 그 좌표로 원본을 crop해 조각만 고해상도로 인식함. 빈 공간을 토큰화하지 않으니 연산이 한 자릿수(order of magnitude) 줄어듦.
PaddleOCR-VL과의 결정적 차이: PaddleOCR-VL은 레이아웃을 별도 전용 detector(PP-DocLayoutV2, RT-DETR+pointer network)가 잡음. MinerU2.5는 레이아웃 분석도 같은 단일 VLM이 함(프롬프트만 “Layout Detection:”으로 바꿈). 즉 MinerU2.5는 “하나의 모델, 두 번의 추론”이고, PaddleOCR-VL은 “detector + VLM 두 모델”임. 단일 모델이라 배포·유지보수가 단순하다는 게 MinerU2.5의 셀링 포인트임.
2.2 아키텍처
Qwen2-VL 골격에서 출발한 LLaVA류 구조임. 비전 인코더는 675M NaViT를 Qwen2-VL에서 초기화한 것으로 동적 해상도 + 2D-RoPE를 쓰며, Qwen2.5-VL의 window attention은 문서에서 성능이 떨어져 일부러 안 씀. 패치 머저는 인접 2×2 토큰을 pixel-unshuffle로 압축해 LLM 입력 토큰 수를 줄임. 언어모델은 0.5B Qwen2-Instruct로, 1D-RoPE를 M-RoPE로 교체해 다양한 crop 해상도·종횡비에 일반화함.
설계 철학은 PaddleOCR-VL과 동일한 “vision-heavy / language-light”임. 인식 task는 LM 의존도가 낮으니 디코더를 0.5B로 가볍게 가져가 latency를 확보함.
2.3 핵심 기술 ① 2단계 coarse-to-fine
Stage I — Layout Analysis
입력을 고정 1036×1036 thumbnail로 리사이즈함. native 종횡비 thumbnail보다 고정 크기가 bbox 위치가 더 안정적이고 학습 효율도 좋다는 게 실험적 선택임. 너무 작으면 디테일 손실, 너무 크면 NaViT의 O(N²)가 터지므로 그 사이의 균형점임.
여기서 핵심 설계는 레이아웃을 단순 object detection이 아니라 멀티태스크로 재정의한 것임. 요소 하나당 Position·Class·Rotation Angle·Reading Order를 단일 추론에서 동시 예측함. 회전 요소 파싱과 읽기 순서를 한 번에 해결해 시스템 결합도를 낮춤.
읽기 순서 처리 비교: PaddleOCR-VL은 pointer network의 pairwise 분류로 순서를 복원함. MinerU2.5는 VLM이 레이아웃 출력의 일부로 순서를 직접 예측함. 전자가 더 구조적(autoregressive 회피)이라면, 후자는 더 통합적임.
Stage II — Content Recognition
Stage I 좌표로 원본을 crop해 native resolution으로 인식함. crop 상한은 2048×28×28 픽셀로 묶음(너무 작으면 디테일 손실, 너무 크면 중복 연산). task는 Text / Formula / Table Recognition 세 종으로 프롬프트 분기함.
2.4 핵심 기술 ② 데이터 엔진 (closed-loop)
PaddleOCR-VL과 마찬가지로 데이터 구축이 실제 무기임. 3단계 폐루프임.
| 단계 | 내용 |
|---|---|
| ① Data Curation | 대규모 raw 풀에서 long-tail 완화. layout/문서유형/요소/언어(중·영) 균형을 맞춰 stratified sampling |
| ② Pre-training 준비 | MinerU2 파이프라인으로 pseudo-label → 전문 모델로 정제(텍스트=Qwen2.5-VL-72B, 수식=자체 UniMERNet 재학습, 표=자체 고성능 모델) |
| ③ Fine-tuning 구축 | IMIC(Iterative Mining via Inference Consistency)로 hard case 자동 발굴 → Gemini-2.5-Pro 사전주석 + 사람 전문가 검수(오픈소스 QA 툴 Dingo 사용) |
곁들여 두 가지 기여를 표준화함.
- 통합 태깅 체계: header/footer/page_number 같은 비본문 요소까지 포함(RAG에 중요), figure를 image/chart/chemical_structure로 세분, code·algorithm·reference·list를 별도 클래스로 분리. PaddleOCR보다 커버리지·세분도가 넓다고 주장함.
- PageIoU: 기존 mAP/IoU가 문서의 모호한 텍스트 경계에서 시각적 직관과 어긋나는 문제를 지적하고, 페이지 단위 coverage 지표를 새로 제안함.
2.5 학습 레시피
3-stage임.
| 스테이지 | 내용 | 샘플 |
|---|---|---|
| Stage 0 | 모달 정렬(VQA). MLP 정렬 → 전체 unfreeze instruction tuning | 558K + 665K |
| Stage 1 | 문서 파싱 사전학습(레이아웃+인식), 2 epoch | 6.9M/epoch |
| Stage 2 | hard case 중심 fine-tuning, 3 epoch | 630K/epoch |
공간/배경/색/열화(blur·erosion 등) 다양한 augmentation으로 open-world 강건성을 확보함(단, 공간 변형은 레이아웃 샘플엔 미적용).
3. 실험 결과
3.1 정확도 (OmniDocBench)
1.2B로 범용 거대 모델(GPT-4o, Gemini-2.5 Pro, Qwen2.5-VL-72B)과 도메인 특화 모델(MonkeyOCR, dots.ocr, PP-StructureV3)을 텍스트·수식·표·읽기순서 전반에서 앞섰다고 보고함. SOTA 주장의 핵심 무대임.
OmniDocBench v1.5 Overall 기준(업로드 문서의 비교표 재인용):
| 모델 | 파라미터 | Overall |
|---|---|---|
| PaddleOCR-VL | 0.9B | 92.56 |
| MinerU2.5 | 1.2B | 90.67 |
| MonkeyOCR-pro-3B | 3.7B | 88.85 |
| Gemini-2.5 Pro | - | 88.03 |
| Qwen2.5-VL-72B | 72B | 87.02 |
발표 시점(2025.9)엔 MinerU2.5가 SOTA였으나, 두 달 뒤 PaddleOCR-VL이 더 작은 0.9B로 추월함. “작은 모델로 거대 모델 이기기” 레이스의 한 정점으로 읽으면 됨.
3.2 효율 (추론 성능)
여기가 MinerU2.5의 진짜 강점임. vLLM 기반 + 2단계 비동기 디커플 추론으로 throughput을 끌어올림.
| 모델 | 파라미터 | Pages/sec (A100) |
|---|---|---|
| MinerU2.5 | 1.2B | 2.12 |
| MonkeyOCR-pro-3B | 3.7B | 0.47 |
| dots.ocr | 3.0B | 0.28 |
| Nanonets-OCR-s | 3.7B | 0.55 |
MonkeyOCR-Pro-3B 대비 약 4배, dots.ocr 대비 약 7배 page throughput임. H200에선 4.47 pages/s까지 감. 디커플 설계가 정확도뿐 아니라 속도에서 실질 우위를 만든다는 게 핵심 증거임.
배포 디테일도 실용적임. Stage I에서 잡은 레이아웃 타입에 따라 Stage II의 frequency/presence penalty를 동적 조절해, 표·수식의 정당한 반복 구조는 살리면서 degenerate 반복은 억제함.
4. 한계 및 비판
1) cascade 위험 잔존 2단계 구조의 숙명임. Stage I 레이아웃이 틀리면 그 crop의 Stage II 인식이 통째로 망가짐. “파이프라인의 누적오류”를 비판하며 출발했지만 절반은 상속함(PaddleOCR-VL도 동일하게 상속). 다만 단일 모델·단일 학습으로 두 단계를 함께 최적화할 수 있다는 점은 순수 파이프라인보다 완화 여지가 있음.
2) 자기 생태계 라벨링의 순환 위험 pseudo-label을 자사 MinerU2 파이프라인·자체 UniMERNet·자체 표 모델로 생성함. 평가셋과 분포가 겹치면 점수가 부풀 수 있음. PaddleOCR-VL 리뷰에서 지적한 “순환 데이터” 우려가 여기에도 그대로 적용됨.
3) in-house 데이터 비중과 채점 투명성 대규모 내부 문서 풀(상업 구매 포함)과 자체 정제 파이프라인에 크게 의존함. OmniDocBench는 제3자 벤치라 page-level 결과는 비교적 신뢰 가능하나, 데이터 분포 유리함은 항상 할인해서 볼 것.
4) 평가 비교 조건 “공식 추론 스크립트로 동일 프로토콜 측정”이라고 명시한 점은 PaddleOCR-VL의 일부 자기측정 구간보다 투명함. 다만 throughput은 하드웨어·vLLM 튜닝에 민감하므로, 자사 모델에 최적화된 배포 파이프라인이 비교를 유리하게 만들 여지가 있음.
5) ablation은 있으나 제한적 thumbnail 크기·고정 vs native 종횡비·Stage 0 유무 정도의 근거는 제시함(특히 Stage 0 생략 시 성능 하락 명시). 그러나 NaViT vs 고정해상도, 0.5B LM 선택, IMIC의 단계별 기여 같은 핵심 분해 실험은 얇음. 학술 논문보다 technical report로 읽는 게 맞음(PaddleOCR-VL과 동일한 성격).
6) 언어 커버리지 중·영 균형에 집중함. PaddleOCR-VL이 109개 언어·비라틴 문자 강점을 전면에 내세운 것과 대비됨. 다국어가 목표라면 MinerU2.5는 상대적으로 좁음.
5. 결론
1) 핵심 기여는 “decoupled 2단계로 효율과 정확도를 동시에” 1.2B 단일 VLM이 coarse-to-fine 분리로 O(N²)를 회피해, 72B 범용 모델을 정확도에서 이기면서 throughput은 동급 도메인 모델의 4~7배를 냄. trade-off를 깬 설득력 있는 사례임.
2) 설계 핵심은 역할 분리 + 단일 모델 레이아웃(축소판)과 인식(crop native)을 분리하되 하나의 모델이 둘 다 함. PaddleOCR-VL이 detector를 외부로 분리한 것과 달리, MinerU2.5는 통합성·배포 단순성을 택함. 같은 철학의 두 구현체로 읽으면 비교가 선명함.
3) 데이터 엔진과 PageIoU가 숨은 기여 모델 못지않게 closed-loop 데이터 엔진(IMIC)과 새 레이아웃 지표(PageIoU)가 실질 무기임. 다만 자체 생태계 라벨링의 순환 위험은 점수 해석 시 감안할 것.
4) 위치 정리 2025년 9월 시점 SOTA였고, 효율에서는 여전히 강력함. 정확도 헤드라인만 보면 직후 PaddleOCR-VL(0.9B, 92.56)에 추월당했지만, “단일 통합 모델 + 압도적 throughput”이라는 축에서는 MinerU2.5가 여전히 매력적인 선택지임. 두 논문을 같이 읽으면 “역할 분리 + 요소 단위 native 인식”이 2025년 경량 문서 파서의 수렴된 정답 형태라는 게 분명히 드러남.
배경 개념 정리
Window attention (Qwen2.5-VL이 도입, MinerU2.5는 회피) 비전 인코더의 self-attention을 페이지 전체가 아니라 일부 layer에서 국소 윈도(예: 일정 크기 영역 단위) 안으로만 제한하는 기법임. 고해상도 이미지의 시각 토큰이 많을 때 full attention의 O(N²) 비용을 줄이려는 목적임. 자연 이미지에선 효과적이지만 문서에선 불리함: 표 구조·읽기 순서·다단 본문처럼 멀리 떨어진 요소 간 장거리 의존이 중요한데, 윈도 경계에서 attention이 끊겨 dense text·구조 인식이 깨지기 때문임. 그래서 MinerU2.5는 일부러 full attention을 유지함.
패치 머저 (patch merger / pixel-unshuffle) 비전 인코더가 뱉은 패치 토큰을, LLM에 넣기 전에 인접 2×2 토큰을 하나로 합쳐 개수를 1/4로 줄이는 모듈임. pixel-unshuffle(= space-to-depth)은 2×2 공간 블록을 채널 방향으로 접어 넣는 연산으로, 공간 정보를 버리지 않고 토큰 수만 압축함. 이웃 패치는 정보가 크게 겹치므로 손실은 작고, LLM이 처리할 시퀀스 길이가 줄어 latency·메모리가 내려감.
M-RoPE (Multimodal Rotary Position Embedding, Qwen2-VL이 도입) 위치 정보를 회전 변환으로 주입하는 RoPE의 멀티모달 확장임. 기존 1D-RoPE는 토큰을 단일 시퀀스 인덱스 하나로만 표현해 텍스트엔 맞지만, 2D 구조를 가진 이미지엔 부적합함. M-RoPE는 위치를 시간·높이·너비 같은 여러 축으로 분해해, 한 토큰의 2차원(영상이면 3차원) 좌표를 그대로 인코딩함. 텍스트 토큰은 세 축에 같은 값을 줘 사실상 1D로 환원됨. 덕분에 crop마다 해상도·종횡비가 제각각인 입력에서도 공간 위치 일반화가 잘 됨.