This repository hosts the DSpark draft (speculative decoding) head for MiniCPM-OCR 1.0. It is a draft model, not a standalone OCR model β it must be paired with the matching main checkpoint.
DSpark speeds up decoding with a small draft model that proposes tokens the main model then verifies in one pass. With this head, MiniCPM-OCR 1.0 improves end-to-end processing efficiency by 55%; throughput reaches about 1.49Γ PaddleOCR-VL-1.6 and 3.62Γ MinerU2.5 Pro.
The output LM head and the Markov output rows are cropped to 114,688 tokens. The checkpoint keeps its d2t offset mapping and the full input vocabulary; local-to-target.json holds the corresponding absolute target token IDs.
Note on d2t: in this checkpoint the tensor is delta-encoded (target_id - draft_id). It must be converted to absolute IDs (d2t[i] + i) before use β the GGUF build already does this, and local-to-target.json is the ground truth to verify against.
MiniCPM-OCR 1.0 parses full documents as a two-stage pipeline orchestrated by the minicpm-ocr SDK. The two stages use separate models, run in separate environments, and may run on different machines:
Stage 1 β Layout detection (SDK environment). The PP-DocLayoutV3 layout model detects document regions β text, tables, formulas, charts, seals β and determines reading order; the SDK crops each region. It runs locally inside the SDK environment and requires PaddlePaddle / PaddleX.
Stage 2 β Region recognition (inference service). The SDK sends each cropped region over HTTP to a MiniCPM-OCR 1.0 inference service β served by vLLM, SGLang, llama.cpp, or Ollama β with a prompt matching the region type, then assembles the recognized content into the final Markdown / JSON in reading order.