basal lokalnie: Ollama, llama.cpp i Mac. Uruchomiłem polski model decyzyjny na RTX 4090
Krok po kroku: basal-omni-1.0-mini w GGUF przez Ollamę na Windowsie, warianty dla llama.cpp i Maca. Mój test na 50 polskich zgłoszeniach obok Jeva i innych modeli decyzyjnych.

👁 124 przeczytań
- Lokalnie na RTX 4090 basal-omni-1.0-mini Q8_0 poprawnie sklasyfikował 42 z 47 polskich zgłoszeń działowych, 47 z 50 pod względem pilności i wszystkie 10 decyzji o narzędziach.
- Plik GGUF Q8_0 ma 7,9 GB i zajął 5,1 GB pamięci karty, a mediana czasu jednej decyzji wyniosła 137 ms przy 20 sekundach łącznego czasu testu 60 zapytań.
- Sama Ollama nie wystarczy do uzyskania odpowiedzi z prawdopodobieństwami - potrzebny jest silnik basal-serve, a tryb Ollama obsługuje najwyżej 20 opcji w pytaniu i 4096 tokenów na zapytanie.
basal-omni to polski model decyzyjny Remka Kinasa: nie pisze tekstu, tylko wybiera odpowiedź z listy i podaje, na ile jest pewny. Od 19 października mniejsze wersje da się uruchomić bez serwerowej karty, przez Ollamę, llama.cpp albo na Macu. Zrobiłem to na swoim RTX 4090 z wersją mini w pliku GGUF i puściłem przez nią ten sam zestaw polskich zgłoszeń, na którym wcześniej sprawdzałem Jeva i inne modele decyzyjne. Poniżej instrukcja, która u mnie zadziałała, wymagania sprzętowe i wyniki.
W skrócie (test 19.10.2026)
- basal-omni-1.0-mini Q8_0: plik 7,9 GB, w Ollamie zajął 5,1 GB pamięci karty.
- Dział: 42 z 47 polskich zgłoszeń, pilność: 47 z 50, wybór narzędzia: 10 z 10.
- Mediana 137 ms na decyzję, cały test (60 zapytań) w 20 sekund.
- Sama Ollama nie wystarczy: odpowiedzi z prawdopodobieństwami daje dopiero silnik basal-serve.
- Na Macu: wersja MLX mini (8,6 GB) albo GGUF Q8_0 na Macu z 16 GB pamięci.
Która wersja na jaki sprzęt
Wszystkie pliki leżą na koncie Remek na Hugging Face, licencja Apache-2.0. Wersje GGUF i MLX obsługują tylko tekst, bez obrazów i dźwięku.
| Wariant | Plik | Rozmiar | Gdzie |
|---|---|---|---|
| mini GGUF Q8_0 | basal-omni-1.0-mini-GGUF | 7,9 GB | Ollama, llama.cpp, karta NVIDIA, Mac, CPU |
| mini GGUF Q6_K | basal-omni-1.0-mini-GGUF | 6,2 GB | jw., trochę mniej zgodny z oryginałem |
| max GGUF Q8_0 / Q6_K | basal-omni-1.0-max-GGUF | 12,7 / 9,8 GB | Ollama, llama.cpp |
| mini / max MLX 8-bit | -MLX | 8,6 / 13,6 GB | Mac z Apple Silicon |
| 1.1-max MLX 8-bit | basal-omni-1.1-max-MLX | 13,6 GB | Mac z Apple Silicon |
| mini / max FP8 | -FP8 | 12 / 14 GB | vLLM na serwerze NVIDIA |
| mini / max / ultra bf16 | oryginalne wagi | ok. 16 / 24 / 62 GB pamięci karty | PyTorch, pełna wersja z obrazem i dźwiękiem |
Autor wypuścił tylko kwantyzacje Q8_0 i Q6_K, bo tylko one przeszły jego bramkę zgodności z oryginałem. Na 10 606 decyzjach z 2-10 opcjami Q8_0 wybiera to samo co wersja bf16 w 98,7% przypadków, Q6_K w 97,1%. Q5_K_M i Q4_K_M odpadły. Największa wersja ultra (31 mld parametrów) nie ma pliku GGUF od autora.
Krok po kroku: Windows, karta NVIDIA, Ollama
Tak to zrobiłem 19 października na Windows 11 z Ollamą 0.40.5 (potrzebna co najmniej 0.35) i Pythonem 3.12 przez uv.
- Środowisko i silnik basal 2.2. W trybie Ollama model liczy Ollama na karcie, więc wystarczyła mi wersja PyTorch na procesor:
uv venv --python 3.12 env uv pip install --python env/Scripts/python.exe torch --index-url https://download.pytorch.org/whl/cpu uv pip install --python env/Scripts/python.exe "basal @ https://github.com/rkinas/basal/archive/refs/tags/v2.2.0.tar.gz" - Pobranie modelu (ok. 8 GB). Wystarczy plik Q8_0 i małe pliki obok: Modelfile, tokenizer, kalibracja, basal.json. Ja ściągnąłem je pojedynczo, prościej zrobić to narzędziem hf, które instaluje się razem z silnikiem:
hf download Remek/basal-omni-1.0-mini-GGUF --local-dir basal-omni-1.0-mini-GGUF --exclude "*Q6_K*" - Rejestracja w Ollamie gotowym plikiem Modelfile z repozytorium:
cd basal-omni-1.0-mini-GGUF ollama create basal-omni-1.0-mini:q8_0 -f Modelfile.Q8_0 cd .. - Serwer basal przed Ollamą:
basal-serve --model ./basal-omni-1.0-mini-GGUF --mode ollama --ollama-model basal-omni-1.0-mini:q8_0 --port 8000 - Pierwsze pytanie (Python, sama biblioteka standardowa). Format jest ten sam co w API Jeva, endpoint
/v1/systemone:import json, urllib.request body = {"state": "Od 9:00 panel nie działa, błąd 500, cały zespół sprzedaży stoi.", "questions": { "dzial": {"type": "choice", "instructions": "Do którego działu trafia zgłoszenie?", "criteria": {"platnosci": "płatności i faktury", "awaria": "coś nie działa technicznie", "sprzedaz": "pytania przed zakupem"}}, "pilne": {"type": "noul", "instructions": "Czy trzeba zareagować jeszcze dziś?", "criteria": {"true": "tak", "false": "nie"}}}} req = urllib.request.Request("http://127.0.0.1:8000/v1/systemone", json.dumps(body, ensure_ascii=False).encode("utf-8"), {"Content-Type": "application/json; charset=utf-8"}) print(json.load(urllib.request.urlopen(req))["answers"])
Dostajesz wybraną opcję, prawdopodobieństwo każdej opcji i pewność (confidence), a przy pytaniu tak/nie prawdopodobieństwo odpowiedzi „tak”. Dwie pułapki, na które trafiłem albo które opisuje autor:
- Polskie znaki z konsoli Windows. Zapytanie wysłane curlem z Git Basha skończyło się błędem dekodowania UTF-8. Z Pythona, z jawnym kodowaniem, działa bez problemu.
- Zwykłe
ollama runnic nie da. Model zwróci wtedy tylko swobodny tekst. Typowane odpowiedzi z prawdopodobieństwami liczy basal-serve, który czyta prawdopodobieństwa kodów opcji z jednego tokenu. - Limity trybu Ollama: najwyżej 20 opcji w pytaniu i 4096 tokenów na zapytanie. Przy dłuższych dokumentach i do 255 opcji autor zaleca tryb llama.cpp.
Wariant llama.cpp i Mac
- llama.cpp w procesie: instalacja z dodatkiem
basal[gguf](llama-cpp-python 0.3.36 lub nowszy), potembasal-serve --model ./basal-omni-1.0-mini-GGUF --mode gguf --gguf basal-omni-1.0-mini-GGUF/basal-omni-1.0-mini-Q8_0.gguf --port 8000. Na karcie NVIDIA llama-cpp-python trzeba zbudować z obsługą CUDA. Tego wariantu nie testowałem. - Mac z Apple Silicon: tryb
--mode mlxz dodatkiembasal[mlx]i repozytorium -MLX albo GGUF przez Metal. Według autora mini Q8_0 działa na Macu z 16 GB pamięci, a na M4 Pro wersja MLX mini daje 0,73 decyzji na sekundę przy 8 równoległych zapytaniach i 173 ms na pojedyncze pytanie. Tego też nie sprawdzałem, nie mam Maca.
Mój test: 50 polskich zgłoszeń i 10 decyzji o narzędziach
Nie przepłacaj za te subskrypcje
Prowadzę sklep z rocznymi dostępami do narzędzi AI - te same konta, o których piszę wyżej, tylko taniej niż w cenniku producenta.
Użyłem zestawu z 13 października, na którym sprawdzałem modele z rankingu Artificial Analysis: 50 zgłoszeń do sklepu internetowego (7 działów i pilność) oraz 10 rozmów, w których asystent ma zdecydować, czy odpowiedzieć sam, wywołać narzędzie, dopytać, czy odmówić. Pytania i klucz odpowiedzi są te same, nic nie zmieniałem pod basala. Tak jak wtedy, dział liczę z 47 zgłoszeń, bo trzy pozycje klucza okazały się dyskusyjne (więcej w przewodniku Modele decyzyjne AI). basal też je „przegrał”, tak jak wszystkie 11 modeli 13.10.
| Model | Dział (z 47) | Pilność (z 50) | Narzędzia (z 10) |
|---|---|---|---|
| basal-omni-1.0-mini Q8_0 (lokalnie, 19.10) | 42 | 47 | 10 |
| Jev 1.13 (API, 13.10) | 41 | 46 | 10 |
| Microsoft-Decision-1 (API, 13.10) | 44 | 42 | 10 |
| Decider v1.1 27B (API, 13.10) | 44 | 48 | 10 |
| d1 od Liquid AI (API, 13.10) | 42 | 43 | 10 |
| Claude Haiku 5.5, zwykły LLM (API, 13.10) | 45 | 46 | 10 |
- Najmniejszy basal jest w środku stawki dużych modeli decyzyjnych z API. O jedno zgłoszenie lepiej od Jeva 1.13, o dwa gorzej od Microsoft-Decision-1 i Decidera. Przy tym ma 4 mld parametrów i działa na domowej karcie.
- Pilność bardzo dobrze: 47 z 50, wyżej był tylko Decider i GPT-6 Luna Decisions (po 48). basal nie uznał za pilne potrójnego obciążenia karty (prawdopodobieństwo 0,05) ani iskrzącego ekspresu (0,34), a niepotrzebnie oznaczył spam o kryptowalutach.
- Pomyłki działu: tort na wesele ze statusem „w przygotowaniu” (sprzedaż zamiast dostawy), iskrzący ekspres (awaria zamiast reklamacji), oferta baz mailingowych (sprzedaż zamiast spamu), zwrot pieniędzy za odwołane zamówienie i niedziałający kod rabatowy.
- Pewność trzeba sprawdzić na swoich danych. Przy pewności co najmniej 0,9 basal miał rację w 35 z 40 zgłoszeń, Jev w 37 z 39. Wśród pewnych pomyłek są oferta baz mailingowych (0,95) i niedziałający kod rabatowy (0,97). Dlatego ważne jest nowe narzędzie basal-calibrate, które dopasowuje progi do Twoich przykładów.
- Szybkość: mediana 137 ms na decyzję, pierwsze zapytanie 12 s (ładowanie modelu do karty). Modele z API mierzyłem 13.10 z Polski, razem z siecią (Jev 361 ms), więc to nie jest porównanie jeden do jednego, ale lokalnie nie płacisz za tokeny i dane nie wychodzą z komputera.
Test zajął 20 sekund pracy karty. Zrobiłem jedną serię, jedną kolejność opcji, z kalibracją dołączoną do pliku GGUF. Po teście zwolniłem model z pamięci.
Kiedy lokalny basal ma sens
- Dane nie mogą wyjść z firmy - zgłoszenia klientów, dokumenty, poczta.
- Decyzji jest dużo, a każda to wybór z listy: dział, pilność, temat, czy przepuścić tekst, które narzędzie wywołać.
- Masz kilkaset oznaczonych przykładów, żeby skalibrować progi i automatycznie przepuszczać tylko pewne decyzje.
Skąd ten model i jak wypadł w rankingu, opisałem w tekście basal-omni na 1. miejscu otwartych modeli w JevBench. Inne modele, które da się uruchomić u siebie, zebrałem w hubie Lokalne AI.
Źródła
- Hugging Face: basal-omni-1.0-mini-GGUF, instrukcja i pomiary zgodności
- Hugging Face: basal-omni-1.0-max-GGUF
- Hugging Face: karta basal-omni-1.0-mini
- GitHub: basal 2.2, notatka wydania (19.10.2026)
- GitHub: rkinas/basal, instalacja i tryby pracy
- Mój test: 50 zgłoszeń i 10 decyzji o narzędziach, RTX 4090, Ollama 0.40.5, 19.10.2026
Cały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →Najczęstsze pytania
Jaką wersję Ollamy trzeba mieć, żeby uruchomić basal-omni lokalnie?
Potrzebna jest co najmniej wersja 0.40.5, którą autor testował 19 października 2026 na Windows 11. Starsza wersja niż 0.35 nie wystarczy.
Czy basal-omni mini GGUF działa na Macu z 16 GB pamięci?
Tak, według autora mini Q8_0 działa na Macu z 16 GB pamięci. Na M4 Pro wersja MLX mini osiąga 0,73 decyzji na sekundę przy 8 równoległych zapytaniach i 173 ms na pojedyncze pytanie.
Dlaczego autor nie udostępnił kwantyzacji Q4_K_M ani Q5_K_M?
Obie wersje nie przeszły bramki zgodności z oryginałem. Na 10 606 decyzjach Q8_0 zgadza się z bf16 w 98,7% przypadków, a Q6_K w 97,1%, natomiast Q5_K_M i Q4_K_M odpadły poniżej progu.
Jak basal-omni-1.0-mini wypada w porównaniu z innymi modelami decyzyjnymi z API?
W teście z 19 października 2026 mini uzyskał wynik działu 42 z 47, czyli o jedno zgłoszenie lepiej niż Jev 1.13 i o dwa gorzej niż Microsoft-Decision-1 oraz Decider v1.1 27B. Przy tym działa na domowej karcie i ma 4 mld parametrów.
