Bielik Custom OCR Vision — local Polish text recognition
A custom merged model: the vision layers were borrowed from Mistral-3 and joined with
Bielik-7B (SpeakLeash). The result is a compact multimodal model that reads text from images
— printed pages, scans and documents — with excellent handling of Polish and its diacritics
(ą, ć, ę, ł, ń, ó, ś, ź, ż). On request it will also translate the recognized text into foreign
languages, always answering in flawless language.
The model is honest about what it is. It is built for text recognition (OCR), and it is
very good at it. It is not a general image-understanding model: it was not fine-tuned for
scene/object recognition, because that requires a real training lab, not a hobby homelab — we
don't have the setup to train models at that scale, so we didn't pretend to. What it does, it does
well; what it wasn't trained for, it doesn't claim.
What it's for
- OCR / text transcription from images — faithful, character-for-character, layout preserved
(line breaks, paragraphs, indentation; tables as plain aligned text, no markdown).
- Strong Polish — correct diacritics, punctuation, casing, numbers, dates and amounts.
- On-request translation of the recognized text into foreign languages, in flawless target
language.
- Fully local & private — documents never leave your machine.
Measured behavior
- Faithful transcription by default — transcribes what is on the image, preserves the layout,
marks unreadable fragments as
[nieczytelne], and returns an empty answer when there is no text
— no hallucinated content. (For Polish text see the note below.)
- Two clean modes — plain OCR by default; correct-Polish answers and translation only when the
user explicitly asks. The faithful transcription is never altered by the language polish.
- Excellent on real text — clean recognition of Polish documents in day-to-day use through
AnythingLLM and OpenWebUI.
Built-in Polish proofreading (a feature, not a bug)
The language half of this model is Bielik-7B — a model trained natively on Polish. Because of
that, it doesn't just copy Polish text, it understands it: on Polish input it will
automatically correct spelling and restore missing diacritics — e.g. it turns Rafal into
Rafał, zl into zł, and quietly fixes typos it recognises. This is simply what a native Polish
model does; the Polish language knowledge is baked into the weights.
Treat it as a bonus: the OCR output comes out as clean, correct Polish rather than a raw,
diacritic-stripped scan. In testing, English and Russian scans were transcribed exactly, 1:1
(no such "correction" there), while Polish scans came back polished — proper ogonki and
orthography. If you ever need a strictly literal transcription that preserves original Polish
misspellings, this is the one thing to keep in mind — but for reading and reusing documents, having
the text auto-normalised to correct Polish is a genuine plus.
Not designed for
- General image recognition (objects, scenes, charts, diagrams) — out of scope. The vision
path was merged in, not fine-tuned on broad visual data, so treat this strictly as a text
reader. Proper visual grounding would need a full training lab; this is a focused OCR tool, by
design.
Context
- 8K tokens configured (
num_ctx 8192) — comfortable for single pages and typical documents.
- Underlying architecture natively supports a much larger window; for very dense multi-page scans,
raise
num_ctx if your hardware has the headroom.
Test hardware
The model was built and tested on:
- Mac Mini M4, 24 GB RAM, macOS — Ollama, GPU (Metal) inference, loads 100% on GPU.
- Orchestration: AnythingLLM and OpenWebUI — both drove the model for real OCR workloads.
- Quantization: Q4_K_M GGUF (~6 GB).
How it was made
The two models were merged using Claude Code together with Fable 5, and the model was tuned
with Claude Opus 4.8 — the best models in the world. The merge, the system prompt, the parameter
choices and the two-mode (OCR / translation) design draw directly on that work: top-tier models
preparing a small, private text reader that runs right on your desk.
Available files
| File | Quant | Size | Notes |
|---|
bielik-custom-ocr-vision-Q4_K_M.gguf | Q4_K_M | ~6 GB | OCR-tuned build; runs fully on GPU on 24 GB-class Apple Silicon. |
Ships with the OCR system prompt and parameters (see Modelfile): faithful transcription by
default, correct Polish and on-request translation, temperature 0.
License
Apache 2.0 (inherited from the Mistral-3 and Bielik-7B bases).