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 (BF16) weighs 2.6 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.

  • 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. The estimate below is for another build of the family.

What it is

Released byopenbmb
Released2026-10-21
VRAM2.6 GB for the weights

What it runs on

Memory and cards for MiniCPM-OCR-1.0 (BF16)

2.6 GBweights, file size
12 MBcache per 1K tokens
39 MBfixed state per request
2.0 GBruntime overhead, at least
262,144 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB5015all 256K11.6 GB
RTX 4060 Ti 16 GB7724all 256K15.4 GB
RTX 3090 24 GB13442all 256K23.4 GB
RTX 4090 24 GB13442all 256K23.4 GB
RTX 5090 32 GB18859all 256K31.0 GB
L40S 48 GB28189all 256K44.0 GB
A100 80 GB526166all 256K78.2 GB
H100 80 GB489154all 256K78.1 GB
RTX PRO 6000 Blackwell 96 GB602190all 256K93.8 GB
DGX Spark (GB10) 128 GB unified698221all 256K107 GB
H200 141 GB918290all 256K138 GB
B200 180 GB1000+376all 256K176 GB
Memory needed at each load
Requests at once8K tokens each32K tokens each
14.8 GB5.1 GB
55.3 GB6.8 GB
85.7 GB8.2 GB
166.9 GB11.7 GB
329.1 GB18.8 GB
6413.6 GB32.9 GB

One card, with vLLM's small-card settings.

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
MiniCPM-OCR-1.0-gguf ↗
11 builds: Q4_0 501 MB … F16 1.5 GB
GGUF 529 MBRTX 3060 12 GB
MiniCPM-OCR-1.0 (above) ↗ 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