Proces ekstrakcji danych z polskich dokumentów

FineReader + LLM vs modele VL

Proces ekstrakcji danych
z polskich dokumentów
FineReader + LLM vs modele VL

@walenciukC

Speaker
Dlaczego robię tę prezentację?
screenshot
screenshot
screenshot
screenshot
Co jest lepsze?
Co jest szybsze?
Co wymaga najmniejszej ilości VRAM?
Która ścieżka jest lepsza i kiedy?
screenshot
screenshot
Przed dyskusją zapoznaj się z jakością skanów
Czy to jest ten moment dla modeli OCR/VL?
Pora wskoczyć w ten świat modeli OCR/VL

Przy okazji chciałem przyjrzeć się także innym modelom, które łączą OCR i VL w procesie ekstrakcji tekstu.

Również tym, które zwracają mapę dokumentu lub ramki ograniczające w formacie XML.


Być może istnieją modele, które lepiej rozpoznają tekst niż ABBYY FineReader.

Jaka jest różnica między
OCR a VL?
  1. OCR
  1. VL/VLM to Vision-Language Model, czyli model łączący obraz i język.
Większość modeli jest hybrydą OCR i VL
Jakie mamy kryteria wyboru modeli do ekstrakcji danych z dokumentów?
  1. Kryteria
Jakie modele bierzemy pod uwagę w 2026 roku?

Model Qwen3.6:35B-A3B

Zapewne wygrywajacy, ale wymaga dużo VRAM

screenshot
Wyniki HunyuanOCR
musiały zostać usunięte z prezentacji
GutenOCR-3B: dobre wyniki,
ale brak możliwości użycia komercyjnego
Model Min. / zalecana VRAM Co potrafi Licencja W rankingach
Qwen3-VL-8B-Instruct 8 GB / 16 GB OCR, decyzje wizualne, typ dokumentu, pieczątki, JSON/Markdown promptowo Apache-2.0 ParseBench: mean 46.8, text 89.5
Gemma 4 12B 8 GB Q4_K_M / 24 GB+ bardzo mocny OCR, tabele, dokument type, pieczątki, mapy syntetyczne, Markdown Apache-2.0 Tak, wyniki na karcie google/gemma-4-12B
GLM-OCR 0.9B 6 GB / 8 GB OCR, pismo odręczne, Markdown i JSON jako punkt odniesienia MIT Tak, OCR/document benchmarks
LLaVA-PLLuM 8 GB Q4_K_M / 16 GB+ polski VLM, test dokumentów, pytania po polsku model card Brak szerokich publicznych rankingów OCR
Model Min. / zalecana VRAM Co potrafi Licencja W rankingach
Qwen3-VL-8B-Thinking 48 GB+ / 80 GB, RunPod OCR/VLM z trybem thinking; dokumenty, decyzje wizualne, JSON/Markdown promptowo Apache-2.0 Tak, benchmarki Qwen3-VL/VLM
Qwen3.6:35B-A3B 40 GB Q6_K / 80 GB większy model VLM/LLM do testów nie-lokalnych; uruchamiany na RunPod w trybie Q6_K zależna od dystrybucji Brak jasnych publicznych rankingów OCR
Qianfan-OCR 12 GB / 16 GB OCR, bbox/layout, JSON/HTML, KIE, Markdown, pytania po polsku Apache-2.0 Tak, OCR/document benchmarks
DeepSeek-OCR 2 12 GB / 16 GB OCR, konwersja dokumentu do Markdown, tryby OCR sterowane poleceniami Apache-2.0 Tak, często jako punkt odniesienia
Model Min. / zalecana VRAM Co potrafi Licencja W rankingach
GutenOCR-3B 12 GB / 16 GB OCR, bbox, lokalne czytanie regionów, JSON, Markdown; bardzo dobre OCR/degraded OCR CC-BY-NC-4.0 Tak, publiczne porównania niekomercyjne
NuMarkdown-8B-Thinking 16 GB / 24 GB OCR, analiza układu, tabele, czysty Markdown; JSON/XML raczej promptowo MIT Tak, porównawczo dla Markdown/document parsing
PaddleOCR-VL-1.6 8 GB / 12 GB OCR, układ strony, tabele, formuły, wykresy, JSON, Markdown Apache-2.0 Tak, benchmarki parsowania dokumentów
FireRed-OCR 12 GB / 16 GB OCR, spatial grounding, region recognition, layout-to-Markdown, prompt Apache-2.0 Tak, OmniDocBench / FireRedBench
Model Min. / zalecana VRAM Co potrafi Licencja W rankingach
dots.ocr 12 GB / 16 GB OCR, bbox, layout JSON, tabele HTML, formuły LaTeX, Markdown MIT Tak, OmniDocBench
dots.mocr 16 GB / 24 GB OCR, bbox, layout JSON, Markdown, wizualizacja layoutu MIT Tak, olmOCR / OmniDocBench
Qwen3-VL-30B-A3B 48 GB / 80 GB, RunPod OCR, grounding 2D, długie dokumenty, Markdown/JSON/XML promptowo Apache-2.0 Tak, benchmarki VLM/OCR
model wykluczony publicznie nie pokazujemy Nie pokazujemy nazwy ani wyników, gdy licencja albo warunki użycia tego zabraniają. ograniczenia Poza publiczną prezentacją
Qwen3-VL-8B-Instruct działa na 8 GB VRAM
Qwen3-VL-8B-Thinking nie działa na 8 GB VRAM
Gemma 4 działa lokalnie dzięki Q4_K_M
DeepSeek-OCR 2 jest trudny w konfiguracji
screenshot
screenshot
Jakie scenariusze chcemy przetestować?

Dla każdego z tych scenariuszy mam oddzielny test z odpowiednim zestawem dokumentów.

Próbki powinny mieć zróżnicowany poziom trudności.


Dokumenty zawierają dane testowe, z wyjątkiem dokumentów z pieczątkami.

Jakie dokumenty będziemy testować?
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
screenshot
Jakie są wyniki tych testów?
Z uwzględnieniem zużycia VRAM

Testy uruchamiałem na 8 GB VRAM


Wyniki były na tyle decydujące, że nie uruchamiałem testów na większej ilości VRAM na komputerze gdzieś w chmurze

Model może dobrze czytać tekst, ale źle rozumieć dokument.

Albo dobrze widzieć checkboxy, ale źle trzymać format odpowiedzi.

Dlatego benchmark musi mierzyć kilka różnych kompetencji, nie tylko jeden wynik OCR.

  1. Najlepszy model ogólnie po aktualizacji wyników
Najlepszy stosunek skuteczności do VRAM
Model Typowe VRAM w porównywalnych testach Ocena efektywności
Gemma 4 12B 8 GB Q4_K_M Najlepszy lokalny kompromis po nowych testach: mocny OCR, tabele, Markdown, pieczątki i mapy syntetyczne
GLM-OCR ok. 5,7 GB Dobry stosunek jakości do zużycia VRAM, szczególnie w przypadku pisma odręcznego; wyniki są jednak mniej kompletne
Qwen3-VL-8B-Instruct ok. 6,5–7,6 GB Lekki VLM działający lokalnie nawet przy 8 GB VRAM; dobry do decyzji wizualnych i klasyfikacji
Qianfan-OCR ok. 7,4–10,3 GB Mocny wariant semantyczny, testowany lokalnie; mniej oszczędny i często przenosi część obliczeń na CPU
PaddleOCR-VL ok. 2,2 GB Najmniejsze zużycie VRAM, lecz słabe wyniki i wolne wnioskowanie
FireRed-OCR ok. 4,7–5,7 GB Niskie zużycie, ale jakość nie uzasadnia wyboru

Gemma 4 12B w Q4_K_M jest po aktualnych testach najlepszym lokalnym kompromisem jakości i wymagań sprzętowych.

Qwen3-VL-8B-Instruct zostaje najlepszym lekkim VLM na 8 GB VRAM, a Qianfan-OCR : mocny wybór do pytań semantycznych po polsku, również uruchamiany lokalnie.

Wyniki testów dla poszczególnych scenariuszy
Obszar Lider
Klasyczny OCR Gemma 4 Q4_K_M
OCR uszkodzonych skanów, pełny run GutenOCR-3B*, potem Qianfan-OCR
OCR pisma odręcznego GLM-OCR
Rozumienie pytań po polsku Qianfan-OCR, potem Gemma 4 i LLaVA-PLLuM
Typ dokumentu Gemma 4 / Qwen3-VL-8B
Pieczątki Gemma 4 / Qwen3-VL-8B
Checkboxy syntetyczne Gemma 4
Checkboxy realne Gemma 4, ale wynik nadal słaby
Obszar Lider
Tabele syntetyczne Gemma 4
Tabele fakturowe Gemma 4
Mapy syntetyczne Gemma 4
Mapy realne Qianfan-OCR / Gemma 4 / Qwen3-VL-8B, nadal słabo
Rotacja Gemma 4
Markdown conversion Gemma 4 dla tekstu i struktury
JSON / key-value Qwen3-VL-8B minimalnie wyższa trafność pól; Gemma 4 i Qianfan stabilniejszy JSON
A dokładniej
Obszar 1. miejsce 2. miejsce 3. miejsce Ważne zastrzeżenie
Klasyczny OCR Gemma 4 GutenOCR-3B* Qianfan-OCR
OCR uszkodzonych skanów GutenOCR-3B* Qianfan-OCR Qwen3-VL-8B * GutenOCR tylko niekomercyjnie.
OCR pisma odręcznego GLM-OCR GutenOCR-3B* Qianfan-OCR
Rozumienie pytań po polsku Qianfan-OCR Gemma 4 LLaVA-PLLuM Ranking według poprawnych odpowiedzi i poprawnego JSON.
Typ dokumentu Gemma 4 Qwen3-VL-8B Qianfan-OCR Gemma 4 i Qwen3-VL-8B osiągnęły komplet 100% poprawności.
Pieczątki Gemma 4 Qwen3-VL-8B Qianfan-OCR Gemma 4 i Qwen3-VL-8B uzyskały 88% poprawności
Checkboxy syntetyczne Gemma 4 Qianfan-OCR Qwen3-VL-8B Gemma 4 osiągnęła wynik 100% na syntetycznych checkboxach.
Checkboxy realne Gemma 4 Qianfan-OCR brak rozstrzygnięcia Gemma daje najlepszy sygnał, ale poziom około 24%–25% nadal nie jest produkcyjny.
Obszar 1. miejsce 2. miejsce 3. miejsce Ważne zastrzeżenie
Tabele syntetyczne Gemma 4 Qianfan-OCR Qwen3-VL-8B Gemma 4 osiągnęła 100% poprawności.
Tabele fakturowe Gemma 4 Qianfan-OCR NuMarkdown-8B
Mapy syntetyczne Gemma 4 Qianfan-OCR Qwen3-VL-8B
Mapy realne Qianfan-OCR Gemma 4 Qwen3-VL-8B Realne mapy nadal są trudne; wynik syntetyczny nie przenosi się automatycznie.
Rotacja Gemma 4 dots.mocr GLM-OCR / Qwen3-VL-8B
Markdown: zgodność tekstu Gemma 4 GutenOCR-3B* GLM-OCR * GutenOCR tylko niekomercyjnie.
Markdown: zachowanie struktury Gemma 4 Qwen3-VL-8B dots.mocr
JSON / key-value Qwen3-VL-8B Gemma 4 Qianfan-OCR Qwen minimalnie wygrywa trafnością pól, a Gemma 4 i Qianfan są stabilniejsze formatowo.
  1. Dobór praktyczny

Żaden z testowanych modeli nie osiągnął obecnie jakości produkcyjnej na rzeczywistych checkboxach ani mapach.

  1. Z czym modele sobie nie radzą
Czy to nadaje się na produkcję?
Przypadek Czy produkcyjnie? Najlepszy wybór Warunek
Czyste dokumenty drukowane / OCR Tak, pilotażowo Gemma 4 Q4_K_M limit długości, retry, kontrola halucynacji
Klasyfikacja typu dokumentu Tak Gemma 4 / Qwen3-VL-8B prosty JSON + walidacja
Pieczątki / stemple Tak, jako wspomaganie Gemma 4 / Qwen3-VL-8B człowiek/fallback przy niepewności
Polskie pytania semantyczne Tak Qianfan-OCR najlepiej po dobrym OCR albo z walidacją odpowiedzi
JSON / key-value Tak, ale nie na ślepo Qwen3-VL / Gemma / Qianfan JSON Schema + retry + confidence
Tabele syntetyczne Tak Gemma 4 przy podobnych szablonach
Przypadek Czy produkcyjnie? Najlepszy wybór Warunek
Tabele fakturowe Ostrożnie Gemma 4 raczej jako draft, nie final accounting
Checkboxy rzeczywiste Nie jako samodzielny VLM osobny detector + OCR etykiet VLM tylko jako pomoc
Mapy rzeczywiste / bounding box Nie osobny detector/layout model VLM za słaby i niestabilny
Pismo odręczne Ostrożnie / osobno GLM-OCR tylko jeśli akceptujesz błędy
Uszkodzone skany Nie bez preprocessingu preprocessing + OCR VLM nie naprawi skanu sam
  1. Reguły wdrożenia: najpierw prosty pipeline
  1. Reguły wdrożenia: gdzie uważać
Drzewo decyzyjne

Krok 1: Czy PDF ma warstwę tekstową?


Jeżeli tak, wyciągnij tekst bezpośrednio z PDF i przekaż go do zwykłego LLM.

OCR lub VLM nie jest wtedy potrzebny na początku procesu.

Krok 2: Czy potrzebujemy tylko wiernie przepisać tekst?

Użyj klasycznego OCR albo lekkiego OCR-VLM.

Lokalnie najlepszy sygnał ogólny daje Gemma 4 12B w Q4_K_M, a Qianfan-OCR pozostaje mocnym lokalnie testowanym wyborem do semantyki po polsku.

GutenOCR może służyć jedynie do testów niekomercyjnych, a GLM-OCR zostaje lekkim baseline i modelem do pisma odręcznego.

Krok 3: Czy trzeba odtworzyć strukturę dokumentu w Markdown?


Gemma 4 jest obecnie najlepszym lokalnym wyborem dla tekstu i struktury Markdown.

Qwen3-VL-8B-Instruct zostaje dobrym modelem wizualnym, a GutenOCR i GLM-OCR są punktami odniesienia.

Krok 4: Czy decyzja zależy od elementów wizualnych?


Dla typu dokumentu i pieczątek wybierz Gemma 4 albo Qwen3-VL-8B-Instruct.

Dla polskich pytań semantycznych mocnym wyborem zostaje Qianfan-OCR, a lokalnie bardzo dobry sygnał daje Gemma 4.

Dla tabel syntetycznych i fakturowych obecnie najlepszy wynik ma Gemma 4.

Żaden z testowanych modeli nie osiągnął jakości produkcyjnej na rzeczywistych checkboxach.

Krok 5: Czy potrzebujemy lokalizacji elementu na stronie?

Potrzebny jest model zwracający położenie elementów lub ramki ograniczające albo osobny detektor.

Gemma 4 najlepiej radzi sobie na mapach syntetycznych, a Qianfan-OCR i Qwen3-VL nadal są mocnymi punktami odniesienia.

Na mapach rzeczywistych nadal warto rozdzielić pipeline: detektor, OCR i LLM do interpretacji.

Krok 6: Czy dokument jest słabej jakości?


Najpierw zastosuj wstępne przetwarzanie obrazu: korektę orientacji i przekrzywienia, poprawę kontrastu oraz odszumianie.

Dopiero potem uruchom OCR lub VLM dobrany do właściwego zadania.

Nie należy zakładać, że duży model sam naprawi rozmyty, przekrzywiony lub zabrudzony skan.

Krok 7: Czy potrzebujemy interpretacji biznesowej po polsku?


Jeżeli tekst został poprawnie wyciągnięty, wystarczy zwykły LLM.

Jeżeli odpowiedź zależy od obrazu, użyj Qianfan-OCR do pytań semantycznych, Gemma 4 jako mocny wariant lokalny albo Qwen3-VL do decyzji czysto wizualnych.

Krok 8: Czy system potrzebuje gotowego JSON lub key-value?


Qwen3-VL osiąga nieco wyższą trafność pól, lecz wymaga kontroli formatu i ponawiania prób.

Gemma 4 i Qianfan-OCR są stabilniejszymi wyborami, gdy liczy się poprawność JSON.

Najbezpieczniejszy pipeline to OCR, następnie LLM, walidacja JSON Schema i ponowienie odpowiedzi w przypadku błędu.

Główna zasada


Wybieramy najprostszy potok przetwarzania, który poprawnie rozwiązuje konkretne zadanie.

OCR służy przede wszystkim do odczytu tekstu. VLM jest potrzebny wtedy, gdy znaczenie zależy również od układu strony, obrazu albo położenia elementów.

Wnioski
screenshot
  1. Link do prezentacji