Model reference · open weights
MiniCPM-OCR-1.0 is an open-weight language model from openbmb. MiniCPM-OCR-1.0-AWQ (AWQ) weighs 1.9 GB; the smallest configuration that runs it is RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the openbmb/MiniCPM-OCR-1.0-gguf model card, 2026-10-28. The estimate below is for another build of the family.
What it is
| Released by | openbmb |
|---|---|
| Released | 2026-10-21 |
| VRAM | 1.9 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB | 55 | 17 | all 256K | 11.6 GB |
| RTX 4060 Ti 16 GB | 82 | 26 | all 256K | 15.4 GB |
| RTX 3090 24 GB | 139 | 44 | all 256K | 23.4 GB |
| RTX 4090 24 GB | 139 | 44 | all 256K | 23.4 GB |
| RTX 5090 32 GB | 194 | 61 | all 256K | 31.0 GB |
| L40S 48 GB | 286 | 90 | all 256K | 44.0 GB |
| A100 80 GB | 531 | 168 | all 256K | 78.2 GB |
| H100 80 GB | 495 | 156 | all 256K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 607 | 192 | all 256K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 704 | 222 | all 256K | 107 GB |
| H200 141 GB | 923 | 292 | all 256K | 138 GB |
| B200 180 GB | 1000+ | 378 | all 256K | 176 GB |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 4.0 GB | 4.3 GB |
| 5 | 4.6 GB | 6.1 GB |
| 8 | 5.0 GB | 7.4 GB |
| 16 | 6.1 GB | 11.0 GB |
| 32 | 8.4 GB | 18.0 GB |
| 64 | 12.8 GB | 32.2 GB |
One card, with vLLM's small-card settings.
Builds
| Build | Params | Precision | Weights | Smallest setup |
|---|---|---|---|---|
| MiniCPM-OCR-1.0-gguf ↗ 11 builds: Q4_0 501 MB … F16 1.5 GB |
GGUF | 529 MB | RTX 3060 12 GB | |
| MiniCPM-OCR-1.0 ↗ | 1.3B | BF16 | 2.6 GB | RTX 3060 12 GB |
| MiniCPM-OCR-1.0-GPTQ ↗ | 1.3B | GPTQ | 1.9 GB | RTX 3060 12 GB |
| MiniCPM-OCR-1.0-AWQ (above) ↗ | 1.3B | AWQ | 1.9 GB | RTX 3060 12 GB |
From the model card
This repository hosts the GGUF build of MiniCPM-OCR 1.0 for llama.cpp. For the original weights, the full model card, and benchmarks, see the base repository.
MiniCPM-OCR 1.0 (1.3B) parses documents into text, tables, formulas, charts, and seals, and supports key information extraction, for Chinese and English documents and PDFs.
Every tier needs the vision projector as well — --model takes the LLM GGUF, --mmproj takes
the projector:
| File | Size | Notes |
|---|---|---|
mmproj-model-f16-4x.gguf | 0.901 GB | vision projector, 4× downsample — required |
MiniCPM-OCR-1_0-F16.gguf | 1.516 GB | reference, no quantization |
MiniCPM-OCR-1_0-Q8_0.gguf | 0.812 GB | near-lossless |
MiniCPM-OCR-1_0-Q6_K.gguf | 0.630 GB | good quality/size balance |
MiniCPM-OCR-1_0-Q5_K_M.gguf | 0.578 GB | smaller, still strong |
MiniCPM-OCR-1_0-Q5_K_S.gguf | 0.563 GB | |
MiniCPM-OCR-1_0-Q5_1.gguf | 0.595 GB | |
MiniCPM-OCR-1_0-Q5_0.gguf | 0.563 GB | |
MiniCPM-OCR-1_0-Q4_K_M.gguf | 0.529 GB | smallest recommended |
MiniCPM-OCR-1_0-Q4_K_S.gguf | 0.505 GB | |
MiniCPM-OCR-1_0-Q4_1.gguf | 0.532 GB | |
MiniCPM-OCR-1_0-Q4_0.gguf | 0.501 GB |
The projector is 4× only; there is no 16× variant for this model.
| Tier | Table / dense text / XML |
|---|---|
| F16 | baseline |
| Q8_0 | lossless / ≈lossless — recommended balance |
| Q4_K_M | lossless on tables, small degradation on dense text; closing-tag slashes may drop in code-heavy documents |
Prefer Q8_0 for code- or XML-heavy pages.
llama-server \
--model ./MiniCPM-OCR-1_0-Q8_0.gguf \
--mmproj ./mmproj-model-f16-4x.gguf \
--host 0.0.0.0 --port 18499 \
--ctx-size 40960 \
--n-gpu-layers 999
--n-gpu-layers 999 offloads everything to GPU; use 0 for CPU-only.
llama-mtmd-cli \
-m ./MiniCPM-OCR-1_0-Q8_0.gguf \
--mmproj ./mmproj-model-f16-4x.gguf \
--image page.png -p "Text Recognition:" \
--jinja -ngl 99 -c 8192 --temp 0
Thinking is already disabled inside the embedded chat template — no extra flag is needed, and
enable_thinking cannot turn it back on. (If you convert the weights yourself instead of using
these files, start the server with --chat-template-kwargs '{"enable_thinking": false}'.)
| Region | Prompt |
|---|---|
| Text block / paragraph / title / page | Text Recognition: |
| Table | Table Recognition: |
| Display formula | Formula Recognition: |
minicpmvocr parse --config sdk/minicpmvocr/configs/minicpmvocr.yaml \
--backend llamacpp --server-url http://127.0.0.1:18499 \
--model minicpm-ocr \
--set layout.device=cuda:0 \
--set pipeline.queue_mode=serial \
--set pipeline.max_workers=1 \
--input doc.pdf --output doc.md
llama-server handles one request at a time by default, so keep queue_mode=serial and
max_workers=1.
Single RTX 5090 (32 GB), F16 weights: model + projector load ≈2.3 s; one table crop
(1,312 prompt / 265 output tokens) ≈1.0 s; VRAM ≈26 GB at --ctx-size 40960.
CPU-only (48 threads): one table image end-to-end (layout + recognition + assembly) ≈21 s.
Build llama.cpp and further options: llama.cpp deployment guide.
| Format | Hugging Face | ModelScope |
|---|---|---|
| BF16 (original) | 🤗 | ModelScope |
| GGUF (llama.cpp) (this repo) | 🤗 | ModelScope |
| AWQ W4A16 | 🤗 | ModelScope |
| GPTQ W4A16 | 🤗 | ModelScope |
| DSpark draft (BF16) | 🤗 | ModelScope |
| DSpark draft (GGUF) | 🤗 | ModelScope |
Speculative decoding works in llama.cpp with the
DSpark draft GGUF via --spec-type draft-dspark.
Installation, model downloads, GPU memory, input formats, and unexpected outputs: FAQ.
Model weights, code, and documentation are released under the Apache License 2.0.
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
How it works