basal-pico 0.8B i silnik 2.3.2: mały model, konkretne decyzje
Nowe pico ma 0,8B parametrów i 65,98% w Werdykcie, najwyżej w naszym zestawieniu 26 małych modeli. Publikujemy porównania PL/EN, sześć testów publicznych, film oraz zmiany w silniku 2.3.2 i podziękowania dla kontrybutorów.

Mały model, konkretna praca. basal-2.0-pico ma 0,8 miliarda parametrów i wybiera odpowiedzi z opcji podanych przez aplikację. W naszym porównaniu 26 małych modeli decyzyjnych zajmuje pierwsze miejsce w Werdykcie: 65,98% trafności na 5 000 polskich i angielskich decyzji. Wraz z nim przedstawiamy silnik basal 2.3.2, który zapewnia poprawną obsługę jego nowej architektury, także w GGUF na CPU.
To finalne pico 0.8B oparte na Qwen3.5. Zastępuje wcześniejszy podgląd 0.6B. Liczby i film poniżej dotyczą nowej wersji; wielkość pliku GGUF nie oznacza całkowitego zapotrzebowania na RAM.
Pierwszy dzień pico w pracy
Pico chce szybko przejść do rzeczy, a basal-omni-ultra przypomina mu o trudniejszych zadaniach. W filmie pokazujemy pomysł na najmniejszego członka rodziny, wyniki porównań i nowości silnika. Polski lektor; napisy po polsku i angielsku.
Mały model, ten sam sposób użycia
Pico czyta tekst: wiadomość, dokument, fragment znaleziony w wyszukiwarce albo stan aplikacji. Otrzymuje pytanie i dozwolone odpowiedzi, a oddaje ich prawdopodobieństwa. Możesz zmieniać klasy w każdym zapytaniu, bez trenowania osobnego klasyfikatora dla każdej listy.
Bazą jest Qwen3.5-0.8B-Base. W treningu aktualizowaliśmy wszystkie wagi modelu i wykorzystaliśmy 1 428 543 wiersze treningowe, z basal-omni-1.0-ultra (31B) jako nauczycielem. Finalne wagi powstały przez uśrednienie dwóch końcowych checkpointów. Pico jest modelem tekstowym; multimodalne zadania pozostają domeną rodziny omni.
Zachowujemy API POST /v1/systemone oraz schematy choice, noul, score, multi, act i tool. Ta sama aplikacja może zacząć od pico, a trudniejsze sprawy kierować do większego modelu lub człowieka. Wagi i silnik mają licencję Apache-2.0; po pobraniu można pracować lokalnie.
Werdykt: porównanie 26 małych modeli
Werdykt to nasz zamknięty test 5 000 decyzji. Wynik jest średnią z 20 grup: 10 kategorii w języku polskim i angielskim. Pico uzyskuje 65,98%, a kolejny model, decider-2b, 58,66%. Różnica wynosi 7,32 punktu procentowego. Pico prowadzi w tej grupie także osobno po polsku i po angielsku.
| Model | Parametry | PL + EN ↑ | 95% przedział | Polski ↑ | Angielski ↑ |
|---|---|---|---|---|---|
| basal-2.0-pico | 0,8B | 65,98% | 64,84%–67,14% | 66,08% | 65,88% |
| decider-2b (Mapika) | 1,9B | 58,66% | 57,40%–59,94% | 58,04% | 59,28% |
| krino-2b | 2B | 56,62% | 55,34%–57,94% | 55,24% | 58,00% |
| decision-2b (flymy-ai) | 2B | 54,62% | 53,36%–55,78% | 49,24% | 60,00% |
| qev-0.8b | 0,8B | 54,40% | 53,02%–55,64% | 53,00% | 55,80% |
| jiwo-0.8b | 0,75B | 54,16% | 52,86%–55,40% | 51,60% | 56,72% |
Porównanie obejmuje pico i 25 alternatyw wybranych z zestawienia qev oraz otwartego rankingu Benchmark Heaven, z klasy do około 2B parametrów. To zestaw przetestowanych systemów, nie kompletny ranking wszystkich istniejących modeli. Jevos nie podaje dokładnej liczby parametrów.
Zobacz pełne zestawienie 26 modeli
| Model | Parametry | PL + EN ↑ | 95% przedział | Polski ↑ | Angielski ↑ |
|---|---|---|---|---|---|
| basal-2.0-pico | 0,8B | 65,98% | 64,84%–67,14% | 66,08% | 65,88% |
| decider-2b (Mapika) | 1,9B | 58,66% | 57,40%–59,94% | 58,04% | 59,28% |
| krino-2b | 2B | 56,62% | 55,34%–57,94% | 55,24% | 58,00% |
| decision-2b (flymy-ai) | 2B | 54,62% | 53,36%–55,78% | 49,24% | 60,00% |
| qev-0.8b | 0,8B | 54,40% | 53,02%–55,64% | 53,00% | 55,80% |
| jiwo-0.8b | 0,75B | 54,16% | 52,86%–55,40% | 51,60% | 56,72% |
| imajev-2b | 1,9B | 53,42% | 52,16%–54,58% | 52,60% | 54,24% |
| jul-2b | 2B | 50,86% | 49,46%–52,26% | 47,56% | 54,16% |
| malkuth-2b | 2B | 49,98% | 48,74%–51,26% | 48,16% | 51,80% |
| Open-Jev-2B | 1,9B | 47,10% | 45,84%–48,38% | 44,80% | 49,40% |
| EXAONE-4.0-1.2B-JEV | 1,2B | 45,88% | 44,62%–47,16% | 38,04% | 53,72% |
| Ghafiri Qwen3.5-0.8B | 0,8B | 44,28% | 42,88%–45,50% | 44,32% | 44,24% |
| jevos-v5 (CPU) | nie podano | 43,96% | 42,68%–45,26% | 39,80% | 48,12% |
| kev-0.6b | 0,6B | 37,52% | 36,18%–38,78% | 36,44% | 38,60% |
| vegaml-0.8b (Vega 0.8B) | 0,8B | 36,72% | 35,48%–38,12% | 35,72% | 37,72% |
| decision-fast (0.6B) | 0,6B | 35,46% | 34,10%–36,70% | 34,88% | 36,04% |
| Tacet Sonata | 144M | 35,00% | 33,64%–36,24% | 34,72% | 35,28% |
| watt-flash-0.1 | 140M | 34,76% | 33,50%–35,96% | 33,12% | 36,40% |
| Quyet-1.0-Small | 328M | 33,48% | 32,12%–34,66% | 30,60% | 36,36% |
| liquid-d1-omni-600m | 587M | 33,34% | 32,08%–34,60% | 30,44% | 36,24% |
| lev-350m | 361M | 33,16% | 31,78%–34,36% | 31,32% | 35,00% |
| phocinae-largha-150m-v1 | 144,3M | 32,26% | 30,98%–33,58% | 31,36% | 33,16% |
| WaterSheep | 0,15B | 31,72% | 30,48%–32,84% | 28,20% | 35,24% |
| openjev-verdict-1.4 | 151M | 30,60% | 29,22%–31,88% | 29,40% | 31,80% |
| verdict-small | 118M | 30,06% | 28,76%–31,34% | 30,40% | 29,72% |
| kev-0.5b | 0,5B | 30,02% | 28,68%–31,24% | 28,96% | 31,08% |
Jak porównujemy. Używamy tego samego klienta benchmarku, ale każdy model uruchamiamy w jego własnym środowisku. Ograniczenia kontekstu i nieudane wywołania liczą się jako błędne odpowiedzi. To porównanie działających systemów wraz z ich ograniczeniami, a nie samych wag w identycznym silniku. W JSON podajemy także liczbę nieudanych wywołań oraz rewizje modeli.
Jak wybraliśmy finalne pico. Znaliśmy wyniki Werdyktu obu końcowych kandydatów, zanim wybraliśmy wagi do wydania. Ich wyniki to 65,98% i 64,92%, a przedziały ufności się nakładają. Nie przedstawiamy więc Werdyktu jako nietkniętego testu, który nie uczestniczył w wyborze tego checkpointu.
Mocne strony pico w Werdykcie to routing (91,2%), wybór odpowiedniego fragmentu (88,6%) i rzeczywiste dokumenty (84,8%). Złożone reguły są wyraźnie trudniejsze: 31,6%. To dobra wskazówka, od jakich zastosowań zacząć i gdzie potrzebny będzie większy model.
Wyniki, rewizje i warunki pomiarów (JSON) ↓ · Więcej o Werdykcie →
Sześć testów publicznych: gdzie wygrywa kto inny
Jedna tabela nie wystarcza. Sprawdziliśmy także publiczne zestawy zadań; poniżej porównujemy pico z qev, krino i jiwo. Wszystkie wartości są na skali 0–100, więcej znaczy lepiej. Są to nasze lokalne przebiegi, a nie informacja o nowym miejscu w oficjalnym rankingu Benchmark Heaven.
| Test | pico 0.8B | qev-0.8b | krino-2b | jiwo-0.8b |
|---|---|---|---|---|
| Benchmark Heaven (public) | 75,3 | 77,9 | 69,7 | 74,0 |
| JevExtra | 68,4 | 71,8 | 64,7 | 66,4 |
| JevSpatial | 68,7 | 74,2 | 75,0 | 69,3 |
| Rules-7 | 68,6 | 63,8 | 62,2 | 57,8 |
| JevBench · accuracy | 83,9 | 85,1 | 84,3 | 85,5 |
| JevBench · coherence | 74,3 | 70,7 | 76,01 | 70,91 |
Pico prowadzi tutaj w Rules-7. Qev ma wyższy wynik w Benchmark Heaven i JevExtra, krino w JevSpatial i spójności JevBench, a jiwo w trafności JevBench. Wybór małego modelu warto oprzeć na charakterze własnych zadań, nie tylko na jednej średniej.
47 ms na H100. Także bez GPU
| Pomiar | Wynik | Warunki |
|---|---|---|
| Pojedyncza odpowiedź · p50 | 47 ms | H100 80 GB · BF16 · eager 2.3.1 · profil Werdyktu, 1 klient |
| Przepustowość | 32,4 decyzji/s | H100 80 GB · BF16 · eager 2.3.1 · 16 żądań równolegle |
| Dwa pytania o krótką wiadomość | 0,46–0,51 s | Xeon Platinum 8460Y+ · 16 wątków CPU · GGUF Q8_0 · silnik 2.3.2 · 232 tokeny |
| Plik modelu GGUF Q8_0 | 812 MB | Wielkość na dysku; do pracy potrzeba dodatkowej pamięci |
Mediana opóźnienia i przepustowość mierzą różne rzeczy. Wyniku krótkiej wiadomości na CPU nie należy porównywać wprost ze średnim obciążeniem benchmarku. Na 1 700 przykładach developerskich GGUF wybiera tę samą odpowiedź co BF16 w 99,29% przypadków na CPU i 99,24% na H100. To zgodność wersji, nie trafność względem etykiet.
Nowe pico 0.8B jest wolniejsze od wcześniejszego podglądu 0.6B w jego szybkim trybie. Zyskujemy jakość, ale nowa architektura wymaga jeszcze osobnej optymalizacji. Obsługa Gated DeltaNet w silniku CUDA graphs jest planowana na 2.4; nie jest częścią 2.3.2.
Co wnosi silnik basal 2.3.2
Qwen3.5 łączy mechanizm uwagi z warstwami Gated DeltaNet, które przechowują stan rekurencyjny. Dotychczasowe współdzielenie kontekstu jako kluczy i wartości uwagi nie zachowywało tego dodatkowego stanu. W 2.3.1 wymuszenie szybkiej ścieżki mogło więc zwrócić błędną odpowiedź bez komunikatu o problemie.
- Poprawny tryb domyślny. Pico uruchamia się w eager. Nieobsługiwane tryby, m.in. fast, fp8 i nvfp4, są odrzucane przed pobraniem lub załadowaniem wag, z wyjaśnieniem, czego użyć.
- GGUF na CPU i wiele pytań. Dla modeli hybrydowych silnik dekoduje prompty pojedynczo. Usuwa to problem nieprawidłowych prawdopodobieństw przy kilku pytaniach. Kosztem jest ponowne przeliczenie stanu dla kolejnych pytań i kolejności opcji.
- Czytelny komunikat dla FP8 na starszych GPU. RTX 3090 i A100 nie spełniają wymagań tej ścieżki FP8. Silnik zatrzymuje ją przed ładowaniem modelu; BF16 pozostaje dostępne w trybie odpowiednim dla danej architektury.
- Dwie poprawki facts. Kwota „10.000,00 zł” jest poprawnie odczytywana, a słowo „roku” po dacie nie jest traktowane jak okres jednego roku.
- Kontrola pozostałych modeli. Na 200 odłożonych decyzjach Qwen3 oraz basal-omni-1.0-mini zwróciły takie same prawdopodobieństwa jak w 2.3.1. Nowe wydanie silnika nie oznacza nowych wag omni.
Pełny opis zmian, walidację i znane ograniczenia publikujemy w wydaniu v2.3.2 na GitHubie.
Dziękujemy kontrybutorom
W tym wydaniu szczególne podziękowania należą się osobom, które przysłały poprawki i sprawdziły silnik na własnym sprzęcie:
- Grzegorz Brzezinka (@agentGreg): poprawne odczytywanie kwot z kropką jako separatorem tysięcy (PR #31) oraz poprawka interpretacji „roku” po dacie (PR #32).
- Krzysztof Kaminski (@krzysztofkaminski): pierwsze pomiary na RTX 3090 i zgłoszenie #33. Dzięki nim dodaliśmy wczesną kontrolę zgodności FP8 oraz uzupełniliśmy dokumentację sprzętu i serwowania.
Takie raporty pokazują, co dzieje się poza naszym środowiskiem testowym. Konkretne zapytanie, wersja modelu, konfiguracja sprzętu i log błędu potrafią szybko zamienić problem użytkownika w poprawkę dla całej społeczności.
Trafność i pewność to dwa różne pomiary
Wyższa trafność nie oznacza automatycznie lepszej kalibracji. W przebiegu Werdyktu, wykonanym przed finalnym plikiem kalibracji, pico ma ECE 0,143. Kilku konkurentów osiąga niższy błąd kalibracji. Nie przenosimy też progu „1% błędu” z jednego zbioru na dowolne dane firmy.
Finalną kalibrację sprawdziliśmy osobno na zamrożonym teście 8 560 decyzji. Przy celu 1% model przyjmuje automatycznie 35,0% przypadków, z błędem 0,93%; przy celu 5% przyjmuje 58,2%, z błędem 4,38%. To wyniki tego testu, nie Werdyktu i nie gwarancja dla nowej dziedziny. Do własnych danych służy basal-calibrate.
Jedna wiadomość, dwa pytania do API
Przykład z karty modelu: klient nie może zalogować się do bankowości elektronicznej. W jednym żądaniu wybieramy dział i pytamy, czy usługa jest niedostępna dla klienta. Poniżej pełne body z tekstem w polu state.
{
"state": "Klient: od wczoraj nie mogę zalogować się do bankowości internetowej, system pokazuje błąd hasła.",
"questions": {
"dept": {
"type": "choice",
"instructions": "Do którego działu skierować zgłoszenie?",
"criteria": {
"cards": "Reklamacje kart",
"online": "Wsparcie bankowości elektronicznej",
"loans": "Kredyty"
}
},
"urgent": {
"type": "noul",
"instructions": "Czy klient nie może korzystać z usługi?"
}
}
}W zapisanym pomiarze BF16 na H100 model wybrał online z prawdopodobieństwem 0,9983; odpowiedź „tak” na drugie pytanie miała prawdopodobieństwo 0,762. To wynik przykładu z karty modelu. Pokazane w filmie 90% jest osobną ilustracją. Reguły przekazania sprawy człowiekowi pozostają częścią aplikacji.
Jak zacząć
Silnik 2.3.2 jest już publiczny. Poniższe linki do wag aktywują się, gdy odpowiednie repozytorium będzie publicznie dostępne. Model możesz uruchomić po udostępnieniu i pobraniu wag.
- basal-2.0-pico · BF16 · publikacja wag w toku
- basal-2.0-pico · GGUF Q8_0 · publikacja wag w toku
W środowisku z PyTorch odpowiednim dla Twojego sprzętu zainstaluj wydanie 2.3.2. Po udostępnieniu wag uruchom serwer:
uv pip install "basal @ https://github.com/rkinas/basal/archive/refs/tags/v2.3.2.tar.gz"
basal-serve --model Remek/basal-2.0-pico --port 8000Nie dodawaj trybu fast dla pico: w 2.3.2 silnik sam wybierze eager. Dla GGUF użyj dodatku basal[gguf], trybu --mode gguf i pliku kalibracji dołączonego do tego wariantu. Zacznij od przykładów z własnego procesu i porównaj jakość, opóźnienie oraz udział spraw wymagających człowieka.
Wydanie silnika 2.3.2 → · REST, MCP i serwer inferencji → · Zobacz zastosowania w Basal Lab →