PaddleOCR-VL ยท GGUF (llama.cpp)
GGUF quantizations of PaddlePaddle/PaddleOCR-VL for llama.cpp / Ollama / LM Studio. Produced by axteam.
Files
| File | Size | Notes |
|---|---|---|
PaddleOCR-VL-Q4_K_M.gguf |
0.3 GB | 4-bit k-quant (medium) โ smaller file; measured perplexity vs Q8_0 +14.1% (WikiText-2) / +11.9% (Korean), see Measured on GPU โ prefer Q8_0 if quality matters. |
PaddleOCR-VL-Q8_0.gguf |
0.5 GB | 8-bit โ closest to the original. |
Converted with llama.cpp
convert_hf_to_gguf.py(recognized aspaddleocr (ERNIE-4.5 text backbone)); the originalchat_templateis embedded. The vision encoder is not included in these GGUF files โ this is the text-backbone LLM only, so it runs only as a text model and cannot do the OCR/image pipeline; it is not a general chat model either (see the check under Requirements). For end-to-end OCR use the original model or the FP8 buildaxteam/PaddleOCR-VL-FP8-dynamicwith vLLM.
Quantization method
These GGUF files are post-training quantization (PTQ) made with llama.cpp (convert_hf_to_gguf.py โ llama-quantize): the BF16 weights are quantized block-wise (k-quants: per-block scales with mixed bit allocation), with no retraining. The original chat_template is embedded in each file.
Measured on GPU (llama.cpp)
llama.cpp b12005 (commit e0f142d, CUDA build) on an NVIDIA B200, 2026-11-02, all layers on the GPU: perplexity over 64 windows of 2,048 tokens from the WikiText-2 test set and from a Korean Wikipedia sample (lower is better). This repo has no BF16 file, so percentages are relative to Q8_0, the file closest to the original.
| File | WikiText-2 PPL | Korean wiki PPL | vs Q8_0 (EN / KO) |
|---|---|---|---|
PaddleOCR-VL-Q8_0.gguf |
73.24 | 23.64 | reference |
PaddleOCR-VL-Q4_K_M.gguf |
83.53 | 26.46 | +14.1% / +11.9% |
Re-measured with 64 windows on 2026-11-02 after the first 16-window run showed an implausible ordering between the files. This is an OCR model measured on plain text; the absolute values are not comparable with general language models โ use them only to compare the files with each other.
Requirements
| llama.cpp | build โฅ b8110 โ architecture paddleocr needs โฅ b8110, and the commands on this card use -fa on (โฅ b6325). Run here on 2026-11-02 with b12005 (commit e0f142d, CUDA build) on an NVIDIA B200: every file in this repo loaded with all layers on the GPU, its perplexity was measured (see Measured on GPU above) and two short chat questions (capital of France / of Korea, one-word answer requested) were asked with every file: neither file answered either question correctly (French: โThe capital of France is France.โ, โ็ญ๏ผๆณๅฝใโ; Korean: the replies repeat a phrase or echo the question); this is the text backbone of an OCR model, not a general chat model. |
| Memory | the chosen GGUF file (sizes in the table) plus KV cache for the context (-c); --cache-type-k/v q8_0 -fa on halves the KV cache. |
| Input | text only โ no mmproj in this repo, so llama.cpp cannot do OCR / image input with it. |
| Ollama / LM Studio | not tested here. |
Run with llama.cpp
# pull one quant straight from the Hub and serve an OpenAI-compatible API on :8080
llama-server -hf axteam/PaddleOCR-VL-GGUF:Q4_K_M -c 8192 --jinja
# or download a single file and run it in the terminal
hf download axteam/PaddleOCR-VL-GGUF PaddleOCR-VL-Q4_K_M.gguf --local-dir .
llama-cli -m PaddleOCR-VL-Q4_K_M.gguf -c 8192 --jinja
These GGUF files hold only the OCR model's text backbone, so they are not general chat models: in our check neither file answered either question correctly (see Requirements). The commands above and below only show how to load and call a file.
Query the server:
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"messages": [{"role": "user", "content": "๋ํ๋ฏผ๊ตญ์ ์๋๋ ์ด๋์ธ๊ฐ์?"}],
"max_tokens": 512
}'
Reduce KV-cache memory (optional, run-time)
KV-cache type is chosen at run time in llama.cpp (it is not baked into the file):
llama-server -hf axteam/PaddleOCR-VL-GGUF:Q4_K_M -c 8192 --jinja --cache-type-k q8_0 --cache-type-v q8_0 -fa on
Ollama
ollama run hf.co/axteam/PaddleOCR-VL-GGUF:Q4_K_M
LM Studio
Search for axteam/PaddleOCR-VL-GGUF in the model browser and pick a quant (e.g. Q4_K_M).
License
Quantized derivative of PaddlePaddle/PaddleOCR-VL (apache-2.0). Original weights & tokenizer belong to PaddlePaddle.
ํ๊ตญ์ด ์์ฝ
PaddlePaddle/PaddleOCR-VL์ GGUF ์์ํ ๋น๋ (llama.cppยทOllamaยทLM Studio์ฉ) ยท ์ ์ axteam
๊ฐ์
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ์๋ณธ ๋ชจ๋ธ | PaddlePaddle/PaddleOCR-VL |
| ํ์ | GGUF (llama.cpp) |
| ๋ณํ ๋๊ตฌ | llama.cpp convert_hf_to_gguf.py โ llama-quantize |
| ํฌํจ | ํ ์คํธ ๋ฐฑ๋ณธ(์ธ์ด ๋ชจ๋ธ)๋ง โ ๋น์ ์ธ์ฝ๋ ๋ฏธํฌํจ, ์ด GGUF๋ก๋ OCR ๋ถ๊ฐ |
| ํ์ผ ์ | 2๊ฐ |
์์ํ ์์ธ
- ์์ํ ์ ์ฐจ: PTQ(ํ์ต ํ ์์ํ, ์ฌํ์ต ์์), llama.cpp ๋ธ๋ก ๋จ์ ์์ํ(k-quant
Q*_K,Q8_0) - chat template: GGUF ํ์ผ์ ๋ด์ฅ
- ํ์ง(์ค์ธก, 2026-11-02): llama.cpp PPL(WikiText-2ยทํ๊ตญ์ด ์ํค ํ๋ณธ, 2,048ํ ํฐร64, B200 GPU, ๋ฎ์์๋ก ์ข์, ๋ฆฌํฌ์ BF16 ํ์ผ์ด ์์ด ์๋ณธ์ ๊ฐ์ฅ ๊ฐ๊น์ด Q8_0 ๊ธฐ์ค) โ
PaddleOCR-VL-Q8_0.gguf์์ด 73.24ยทํ๊ตญ์ด 23.64 ยทPaddleOCR-VL-Q4_K_M.gguf์์ด 83.53ยทํ๊ตญ์ด 26.46(Q8_0 ๋๋น +14.1%ยท+11.9%) โ OCR ๋ชจ๋ธ์ด๋ผ ์ ๋๊ฐ์ ์ผ๋ฐ LLM๊ณผ ๋น๊ตํ ์ ์๊ณ ํ์ผ๋ผ๋ฆฌ ๋น๊ต์ฉ โ ์ฒ์ 16์ฒญํฌ ๊ฒฐ๊ณผ์ ํ์ผ ์์๊ฐ ๋น์ ์์ด๋ผ 64์ฒญํฌ๋ก ๋ค์ ์ผ
์ ๊ณต ํ์ผ
| ํ์ผ | ํฌ๊ธฐ | ์ค๋ช |
|---|---|---|
PaddleOCR-VL-Q4_K_M.gguf |
0.3 GB | 4๋นํธ k-quant โ ์ฉ๋ ์์, ์ค์ธก PPL์ด Q8_0 ๋๋น ์์ด +14.1%ยทํ๊ตญ์ด +11.9%(์ ์ค์ธก ํ), ํ์ง์ด ์ค์ํ๋ฉด Q8_0 ๊ถ์ฅ |
PaddleOCR-VL-Q8_0.gguf |
0.5 GB | 8๋นํธ โ ์๋ณธ์ ๊ฐ์ฅ ๊ฐ๊น์ |
์๊ตฌ์ฌํญ
- llama.cpp: b8110 ์ด์ (
paddleocr๊ตฌ์กฐ ์ง์ b8110๋ถํฐ, ์์ ๋ช ๋ น์-fa on์ต์ b6325๋ถํฐ) - ์คํ ํ์ธ: 2026-11-02 b12005(์ปค๋ฐ e0f142d) CUDA ๋น๋๋ก NVIDIA B200์์ ์ด ๋ฆฌํฌ์ ๋ชจ๋ ํ์ผ์ ์ ์ธต GPU์ ์ฌ๋ ค ์คํ โ PPL ์ธก์ (์ ์์ด ๋ณธ๋ฌธ ํ), ๋ชจ๋ ํ์ผ์ ์งง์ ์ง๋ฌธ 2๊ฐ(ํ๋์คยท๋ํ๋ฏผ๊ตญ ์๋, ํ ๋จ์ด ๋ต ์์ฒญ)๋ฅผ ๋ฌผ์, ๋ ํ์ผ ๋ชจ๋ ๋ฐ๋ฅด๊ฒ ๋ตํ์ง ๋ชปํจ(ํ๋์ค ์ง๋ฌธ: โThe capital of France is France.โยทโ็ญ๏ผๆณๅฝใโ, ํ๊ตญ์ด ์ง๋ฌธ: ๊ฐ์ ๊ตฌ์ ์ ๋ฐ๋ณตํ๊ฑฐ๋ ์ง๋ฌธ์ ๋ํ์ดํจ), OCR ๋ชจ๋ธ์ ํ ์คํธ ๋ฐฑ๋ณธ์ด๋ผ ์ผ๋ฐ ๋ํ์ฉ ์๋
- ๋ฉ๋ชจ๋ฆฌ: ์ ํํ GGUF ํ์ผ ํฌ๊ธฐ + ์ปจํ
์คํธ(
-c)๋งํผ์ KV ์บ์ (KV ์บ์ ์ค์ด๋ ๋ฐฉ๋ฒ์ ์๋ ์ฌ์ฉ๋ฒ ์ฐธ๊ณ ) - ์
๋ ฅ: ํ
์คํธ ์ ์ฉ(
mmproj์์) โ OCR์ ์๋ณธ ๋ชจ๋ธ์ด๋ FP8 ๋น๋(axteam/PaddleOCR-VL-FP8-dynamic)๋ฅผ vLLM์ผ๋ก ์คํ - OllamaยทLM Studio: ์ ์ ์ธก์์ ์คํ ๋ฏธํ์ธ
์ฌ์ฉ๋ฒ
- ์ฃผ์: OCR ๋ชจ๋ธ์ ํ ์คํธ ๋ฐฑ๋ณธ๋ง ๋ค์ด ์์ด ์ผ๋ฐ ๋ํ์ฉ์ด ์๋(์ ๊ฒ์์ ๋ ์ง๋ฌธ ๋ชจ๋ ๋ฐ๋ฅด๊ฒ ๋ตํ์ง ๋ชปํจ, ์๊ตฌ์ฌํญ์ ์คํ ํ์ธ ์ฐธ๊ณ ) โ ์ด ์ ์ ๋ช ๋ น์ ํ์ผ์ ๋ถ๋ฌ ํธ์ถํ๋ ๋ฐฉ๋ฒ ์์
- ํ์ผ ๋ฐ๊ธฐ:
hf download axteam/PaddleOCR-VL-GGUF PaddleOCR-VL-Q4_K_M.gguf --local-dir .(์๋-m๋ช ๋ น์ ํ์, ๋ค๋ฅธ ์์ํ๋ ํ์ผ๋ช ์Q4_K_M๋ง ๋ณ๊ฒฝ) - ์๋ฒ ์คํ:
llama-server -hf axteam/PaddleOCR-VL-GGUF:Q4_K_M -c 8192 --jinjaโ OpenAI ํธํ API - ํฐ๋ฏธ๋ ์คํ:
llama-cli -m PaddleOCR-VL-Q4_K_M.gguf -c 8192 --jinja - Ollama:
ollama run hf.co/axteam/PaddleOCR-VL-GGUF:Q4_K_M - LM Studio: ๋ชจ๋ธ ๊ฒ์์์
axteam/PaddleOCR-VL-GGUF์ ๋ ฅ ํ ์์ํ ๋จ๊ณ ์ ํ - KV ์บ์ ์ ๊ฐ(์ ํ):
--cache-type-k q8_0 --cache-type-v q8_0 -fa onโ KV ์บ์ ์ฝ ์ ๋ฐ, GGUF ํ์ผ๊ณผ ์๊ด์์ด ์คํ ์ ์ง์
๋ผ์ด์ ์ค
- ๋ผ์ด์ ์ค: Apache-2.0 โ ์๋ณธ ๋ชจ๋ธ์ ๋ผ์ด์ ์ค๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ฆ
- ๊ถ๋ฆฌ: ์๋ณธ ๊ฐ์ค์นยทํ ํฌ๋์ด์ ๋ PaddlePaddle(Baidu) ์์ , ์ด ๋ฆฌํฌ๋ ์์ํ ํ์๋ฌผ