Model reference · open weights

MiniCPM-OCR-1.0

LLMs openbmb Vision + text 4 builds Open weights 461 dl/mo

MiniCPM-OCR-1.0 is an open-weight language model from openbmb. MiniCPM-OCR-1.0-gguf (GGUF) weighs 529 MB; 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.

  • MiniCPM-OCR-1.0 is a 1.3B parameter image-text-to-text model developed by openbmb for parsing documents into text, tables, formulas, charts, and seals.
  • It supports key information extraction for English and Chinese documents and PDFs.
  • The model is released under the Apache 2.0 license and is available in GGUF format for llama.cpp with a context size of 40960.

Summary of the openbmb/MiniCPM-OCR-1.0-gguf model card, 2026-10-28

What it is

Released byopenbmb
Released2026-10-21
VRAM529 MB for the weights

What it runs on

Memory and cards for MiniCPM-OCR-1.0-gguf (GGUF)

529 MBweights, file size
651 MBruntime overhead, at least

How much memory each request adds isn't estimated yet for this architecture. The weights need at least the cards below, plus room for the context.

CardWeights alone
RTX 3060 12 GBfits
RTX 4060 Ti 16 GBfits
RTX 3090 24 GBfits
RTX 4090 24 GBfits
RTX 5090 32 GBfits
L40S 48 GBfits
A100 80 GBfits
H100 80 GBfits
RTX PRO 6000 Blackwell 96 GBfits
DGX Spark (GB10) 128 GB unifiedfits
H200 141 GBfits
B200 180 GBfits

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
MiniCPM-OCR-1.0-gguf (above) ↗
11 builds: Q4_0 501 MB … F16 1.5 GB
GGUF 529 MBRTX 3060 12 GB
MiniCPM-OCR-1.0 ↗ 1.3BBF16 2.6 GBRTX 3060 12 GB
MiniCPM-OCR-1.0-GPTQ ↗ 1.3BGPTQ 1.9 GBRTX 3060 12 GB
MiniCPM-OCR-1.0-AWQ ↗ 1.3BAWQ 1.9 GBRTX 3060 12 GB

From the model card

What openbmb says about MiniCPM-OCR-1.0

Read the model card

GitHub · API · Demo · DSpark

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.

Files

Every tier needs the vision projector as well — --model takes the LLM GGUF, --mmproj takes the projector:

FileSizeNotes
mmproj-model-f16-4x.gguf0.901 GBvision projector, 4× downsample — required
MiniCPM-OCR-1_0-F16.gguf1.516 GBreference, no quantization
MiniCPM-OCR-1_0-Q8_0.gguf0.812 GBnear-lossless
MiniCPM-OCR-1_0-Q6_K.gguf0.630 GBgood quality/size balance
MiniCPM-OCR-1_0-Q5_K_M.gguf0.578 GBsmaller, still strong
MiniCPM-OCR-1_0-Q5_K_S.gguf0.563 GB
MiniCPM-OCR-1_0-Q5_1.gguf0.595 GB
MiniCPM-OCR-1_0-Q5_0.gguf0.563 GB
MiniCPM-OCR-1_0-Q4_K_M.gguf0.529 GBsmallest recommended
MiniCPM-OCR-1_0-Q4_K_S.gguf0.505 GB
MiniCPM-OCR-1_0-Q4_1.gguf0.532 GB
MiniCPM-OCR-1_0-Q4_0.gguf0.501 GB

The projector is 4× only; there is no 16× variant for this model.

Which tier

TierTable / dense text / XML
F16baseline
Q8_0lossless / ≈lossless — recommended balance
Q4_K_Mlossless 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.

Usage

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}'.)

Prompts

RegionPrompt
Text block / paragraph / title / pageText Recognition:
TableTable Recognition:
Display formulaFormula Recognition:

SDK with a llama.cpp backend

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.

Performance

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.

Related checkpoints

FormatHugging FaceModelScope
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.

FAQ

Installation, model downloads, GPU memory, input formats, and unexpected outputs: FAQ.

License

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

How language models work

Your prompttext / messagesTransformerattention over tokensNext-token loopgenerate + streamResponsetext · tool callsA language model reads your tokens and predicts the next one, again and again, streaming the reply back.
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms