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) 소유, 이 리포는 양자화 파생물