Wszystkie wpisy
Nowe wydanie10 min czytania

basal-1.5 — trzy modele, więcej możliwości

Dynamiczny klasyfikator definiowany w każdym zapytaniu, bez dodatkowego treningu. Trzy rozmiary, nowe schematy odpowiedzi, szybsze przetwarzanie wielu pytań i pełne wyniki benchmarku Werdykt — także po polsku.

Remigiusz Kinas · ai5

basal-1.5 to pierwsze publiczne wydanie od basal-1.0: trzy otwarte modele decyzyjne dla polskiego i angielskiego, szybszy silnik dla zapytań z wieloma pytaniami, nowe typy pytań, dowody w tekście i więcej sposobów uruchomienia — od GPU NVIDIA po Maca z Apple Silicon i Ollama.

Zasada działania się nie zmienia. Klasyfikator definiujesz dynamicznie, zależnie od potrzeb, bez dodatkowego trenowania. W każdym zapytaniu podajesz kontekst, pytanie i dozwolone odpowiedzi, a basal zwraca prawdopodobieństwo każdej z nich w jednym przebiegu modelu, bez generowania tekstu. Model możesz uruchomić lokalnie, bez powierzania danych innym podmiotom.

1.5B / 4.5B / 11Btrzy rozmiary modelu
PL + ENpolski i angielski
Apache 2.0otwarte wagi i silnik

Co nowego od basal-1.0

  • Lepsze tam, gdzie 1.0 było słabsze: długie, prawdziwe dokumenty, decyzje w systemach RAG, odpowiedzi „nie da się ustalić”, trudniejsze decyzje po angielsku (ocena odpowiedzi, kompromisy, pułapki, polityki, niejednoznaczne prośby), wybór następnego kroku agenta i oceny na skali. Wydanie obejmuje również etap uczenia ze wzmocnieniem (RL).
  • Wyniki: na zamkniętym teście 3 000 nowych polskich decyzji, utworzonych po zamrożeniu wag i ocenionych raz, basal-1.5 osiąga 93,1% wobec 87,4% dla basal-1.0 (+5,7 pkt, 95% przedział [+4,5; +6,8]); na teście decyzji z basal-1.0 — 92,3% wobec 88,6%. Na panelu 10 publicznych zadań angielskich basal-1.5 wyprzedza basal-1.0 (68,8% wobec 67,1%), a na publicznym angielskim benchmarku decyzyjnym osiąga 76,2% (basal-1.0: 74,0%).
  • Wiele pytań, jeden przebieg dzięki SOAM. SOAM to state once, ask many — jeden kontekst, wiele pytań. Silnik przetwarza kontekst raz, a wszystkie pytania korzystają ze wspólnych obliczeń. Każde pytanie jest oceniane niezależnie od pozostałych. W porównaniu silników na H100 5 pytań zajmuje 37,8 ms zamiast 111,7 ms, czyli około 3 razy krócej. W fp32 odpowiedzi są takie same jak przy osobnych zapytaniach.
  • Nowe typy i funkcje — tylko basal. Rozszerzamy System-One o własne schematy i funkcje — nowe „programy” w mózgu naszego systemu: multi (które etykiety pasują), act (akcja o najniższym oczekiwanym koszcie według Twoich zasad albo przekazanie człowiekowi), "evidence": true (fragment tekstu, który wspiera odpowiedź) i "facts": "auto" (wyliczone daty i kwoty dla polskich dokumentów).
  • Nowe sposoby uruchomienia: SGLang i vLLM, Apple Silicon (MLX 8-bit i 4-bit) oraz Ollama i llama.cpp (GGUF).
  • Werdykt — nasz autorski, ukryty benchmark do testowania modeli decyzyjnych po polsku i po angielsku.

Trzy rozmiary, ten sam sposób użycia

basal-1.5 (4,5 mld parametrów) to model główny: najlepszy balans trafności i szybkości. basal-1.5-max (11 mld) to najtrafniejszy model rodziny: długie dokumenty, ocena odpowiedzi i trudne decyzje po angielsku. basal-1.5-mini (1,5 mld) jest destylowany z max i najszybszy — do dużych wolumenów, laptopów i małych GPU. Wszystkie trzy mają to samo API, ten sam format promptu i tę samą procedurę kalibracji.

Każdy model jest dostępny w BF16, jako MLX 8-bit / 4-bit i GGUF, a także w FP8 dla vLLM na GPU NVIDIA Hopper, Ada i Blackwell. Dla basal-1.5 (4.5B) oraz basal-1.5-max dostępne jest również FP4 w formacie NVFP4, przeznaczone na GPU Blackwell.

Wagi i silnik udostępniono na licencji Apache 2.0; pochodzenie modeli opisują LICENSE i NOTICE.

Werdykt: jeden test, jeden protokół

Werdykt to 10 kategorii decyzji po polsku i po angielsku: reguły i terminy, prawdziwe dokumenty, długie dokumenty (także z wstrzykniętymi poleceniami), RAG, umowy, routing, oceny na skali, ocena odpowiedzi, następny krok agenta i „nie da się ustalić”. Każdy model dostaje ten sam prompt i jedno wywołanie na pytanie; nieodczytana odpowiedź liczy się jako błąd. Otwarte modele uruchamiamy na jednym H100, modele API przez OpenRouter.

Zbiór jest zamknięty: publikujemy protokół, wyniki i kilka przykładów na kategorię, ale nie same pytania — żeby nie trafiły do danych treningowych żadnego modelu, także naszego. Żadne pytanie, dokument ani fragment Werdyktu nie występuje w danych treningowych basal.

Werdykt v1 · trafność (średnia z 20 komórek), czas i koszt
ModelPL + ENCzas na decyzjęKoszt / 1000 decyzji
basal-1.5 · 4.5B0,72133,8 ms (SGLang; 31,2 ms w trybie fast)0,048 $
basal-1.5-max · 11B0,77367,1 ms (SGLang; 44,7 ms w trybie fast)0,108 $
basal-1.5-mini · 1.5B0,60714,2 ms (tryb fast)0,054 $
basal-1.0 · 4.5B0,66026,5 ms0,135 $
Jev 1.13.0 · API0,816286 ms0,071 $
Cygnet · 12B¹0,78539,6 ms0,052 $
Winnow-12B Q8 · 12B¹0,785126 ms0,260 $

Wybrane wiersze; wyżej w pełnej tabeli są też czołowe modele API (0,983–0,996). Koszt modeli otwartych to czas jednego H100 po 3,95 $ za godzinę przy pełnym obciążeniu, modeli API — cena dostawcy. ¹ Odstępstwo od protokołu (opis w pełnej tabeli). Pełna tabela, wyniki per kategoria i przykłady pytań: Werdykt. Modele lub rodziny modeli biorące udział w budowie albo sprawdzaniu pytań oznaczamy †; ich wynik nie jest niezależny.

Czołowe niezależne modele API osiągają od 98,3% do 99,6%. Wśród systemów decyzyjnych wyżej niż basal są Jev, Cygnet i Winnow. Werdykt pokazuje więc kompromis: basal może działać lokalnie, szybko wybierając z podanych opcji, przy niższej trafności niż największe modele.

Względem basal-1.0 4.5B nowy model główny poprawia wynik o 6,1 punktu procentowego, a max o 11,2. Mini zyskuje 8,4 punktu względem poprzednika 1.5B, zachowując zbliżony czas decyzji. Najszybszy model nie musi być najtańszy: w tym teście 4.5B na SGLang miał niższy koszt na 1 000 decyzji niż mini, dzięki przepustowości przy pełnym obciążeniu.

Polski, kategoria po kategorii

W raporcie „basal-1.5 in Polish” model główny uzyskuje 72,4%, max 77,7%, a mini 61,9% na polskiej części Werdyktu. Pełny ranking i rozbicie na 10 kategorii pozwalają sprawdzić konkretny rodzaj zadania. Przy około 250 pytaniach na kategorię niewielkich różnic nie warto traktować jak rozstrzygającej przewagi.

Polish items only → · Polish, category by category →

Milisekundy, także przy wielu pytaniach

W teście obciążeniowym przez HTTP na jednym H100 (tryb fast, bf16) jedno pytanie do basal-1.5 zajmuje 13,7 ms (mediana; p95 23,8 ms), a serwer obsługuje 64,4 decyzji na sekundę przy 32 równoczesnych klientach. Nowy silnik przyspiesza zapytania z wieloma pytaniami o ten sam stan; pojedynczemu pytaniu SOAM nic nie daje.

Mediana czasu jednego zapytania · 4.5B · H100 · porównanie silników na tym samym serwerze
Pytania w zapytaniusilnik basal-1.0silnik basal-1.5
5111,7 ms37,8 ms
12222,0 ms80,3 ms

Te same zapytania i ten sam serwer, pomiar bez HTTP (nieporównywalny z testem HTTP powyżej); stany polskich decyzji o medianie 336 tokenów. W fp32 odpowiedzi są identyczne jak przy osobnych zapytaniach. Jak to działa.

Nowe funkcje Tylko basal

Autorskie rozszerzenie Systemu-One. Do podstawowych typów choice, noul i score w basal-1.5 dodajemy schematy multi i act oraz opcje evidence i facts. Pozwalają zdefiniować w zapytaniu więcej sposobów podejmowania decyzji i sprawdzania ich podstaw.

multi
Wiele etykiet. Które kategorie dotyczą zgłoszenia? Niezależne prawdopodobieństwo dla każdej etykiety i wybrany zestaw.
act
Decyzja z kosztami (eksperymentalne). Podajesz koszt błędnej akcji i koszt konsultanta; silnik wybiera najtańszą akcję albo przekazuje sprawę człowiekowi.
evidence
Dowód w tekście (eksperymentalne). Fragment stanu, który wspiera odpowiedź, z dokładnymi pozycjami znaków — do podświetlenia w interfejsie i zapisu w audycie.
facts
Fakty wyliczone. Dni tygodnia i dni wolne, odstępy między datami, netto/brutto i sumy dopisane do polskiego stanu: model czyta rachunki zamiast je liczyć.
JSON · JEDEN STAN, KILKA PYTAŃ
{
  "state": "Przesyłka dotarła z pękniętym ekranem. Proszę o zwrot pieniędzy.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Który zespół powinien przejąć sprawę?",
      "criteria": {"support": "Pomoc techniczna", "returns": "Zwroty i reklamacje"}
    },
    "tags": {
      "type": "multi",
      "instructions": "Jakie tematy dotyczą zgłoszenia?",
      "criteria": {"damage": "Uszkodzenie produktu", "refund": "Zwrot pieniędzy", "invoice": "Faktura"}
    },
    "evidence": {
      "type": "noul",
      "instructions": "Czy klient opisuje uszkodzenie produktu?",
      "evidence": true
    }
  }
}

Wyślij jako POST do /v1/systemone. To przykład definicji zapytania. multi zwraca niezależne prawdopodobieństwa etykiet, które nie muszą sumować się do 1. Dowody w tekście wymagają silnika PyTorch; są funkcją eksperymentalną.

Pięć przykładowych procesów PL-Workflows (reklamacje, faktury, kadry, przetargi, alerty SOC) pokazuje podział pracy: basal decyduje, kod liczy daty i kwoty, a niska pewność kieruje sprawę do człowieka. Status i opis funkcji: dokumentacja funkcji.

Jak uruchomić

TERMINAL · NVIDIA GPU
uv venv --python 3.12 ~/basal-env && source ~/basal-env/bin/activate
uv pip install torch==2.11.0 --index-url https://download.pytorch.org/whl/cu128
uv pip install "basal[fp8] @ https://github.com/rkinas/basal/archive/refs/tags/v1.5.0.tar.gz"
basal-serve --model Remek/basal-1.5-4.5B --mode fast --port 8000
TERMINAL · APPLE SILICON (MLX)
uv pip install "basal[mlx] @ https://github.com/rkinas/basal/archive/refs/tags/v1.5.0.tar.gz"
basal-serve --model Remek/basal-1.5-4.5B-MLX-8bit --mode mlx --port 8000

Na Macu z M4 Pro model 4.5B w MLX uzyskał medianę 587 ms w 8 bitach i 581 ms w 4 bitach. To pomiary lokalnego sprzętu i innego zestawu prób niż Werdykt na H100. Zgodność wyborów z wersją bazową wyniosła odpowiednio 99,2% i 97,0% — kwantyzację trzeba oceniać także pod kątem jakości.

Ollama (0.12.11 lub nowsza): pobierz repozytorium -GGUF, zarejestruj model z dołączonego Modelfile i uruchom basal-serve --mode ollama. Serwer basal działa przed Ollama i zachowuje obie kolejności opcji, kalibrację oraz typy multi i act. Szczegóły i pozostałe silniki: od pomysłu do pierwszej decyzji.

O czym pamiętać

  • Obliczenia zostaw kodowi. Dokładne progi i rachunki są słabym punktem decyzji w jednym przebiegu; użyj kodu albo "facts": "auto".
  • Dostarczaj fakty i aktualne zasady. Wiedza małego modelu jest ograniczona, a przepisy się zmieniają.
  • Funkcje eksperymentalne z człowiekiem w pętli. Dowody w tekście i decyzje z kosztami mogą się zmienić w kolejnej wersji, a ich jakość sprawdź na własnych danych.
  • Progi pewności dobieraj na swoich danych — zwłaszcza dla portów MLX i GGUF, które dziedziczą kalibrację modelu bf16.
  • Mini nie spełnił celu 5% błędu. Na odłożonym teście obserwowany błąd wyniósł 5,3%. Dla tego modelu używaj progu 1%, jeśli potrzebujesz zweryfikowanego poziomu ryzyka, i sprawdź go na własnych danych.
  • Dowód w tekście wymaga sprawdzenia. Zwrócony fragment jest dosłownym cytatem, ale nie stanowi gwarancji trafnego uzasadnienia. Dla 4.5B token-F1 względem wzorcowego cytatu wyniósł 0,53 na 200 dokumentach; mediana czasu wzrosła z 40 do 85 ms.
  • Zachowaj nadzór nad istotnymi decyzjami. Decyzje o poważnych skutkach dla ludzi wymagają kontroli człowieka.

Pełna lista ograniczeń: README.

Materiały

Więcej informacji znajdziesz w dokumentacji projektowej. Cztery nagrania zastosowań — wyszukiwanie, kontrolę RAG, skrzynkę i Tabu — opisujemy w Basal Lab. Tamte pomiary dotyczą basal-1.0; wyniki nowego wydania są na osobnej stronie benchmarków.