Wszystkie wpisy
Nowe wydanie12 min czytania

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.

Remigiusz Kinas · ai5
basal-pico 0.8B: mały model decyzyjny i premiera silnika 2.3.2

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.

0,8Bparametrów · model tekstowy
65,98%Werdykt PL + EN · 1. w tym zestawieniu
812 MBplik GGUF Q8_0 · także 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.

basal-pico 0.8B + silnik 2.3.23:48 · 1080p
Rozmowa modeli jest inscenizacją. „90% pewności” w scenie bankowej to przykład edukacyjny; liczby na planszach benchmarków pochodzą z pomiarów. Pobierz film MP4 ↓

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.

Werdykt · czołowa szóstka · pomiary zebrane do 22.10.2026
Model Parametry PL + EN ↑ 95% przedział Polski ↑ Angielski ↑
basal-2.0-pico0,8B65,98%64,84%–67,14%66,08%65,88%
decider-2b (Mapika)1,9B58,66%57,40%–59,94%58,04%59,28%
krino-2b2B56,62%55,34%–57,94%55,24%58,00%
decision-2b (flymy-ai)2B54,62%53,36%–55,78%49,24%60,00%
qev-0.8b0,8B54,40%53,02%–55,64%53,00%55,80%
jiwo-0.8b0,75B54,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
Werdykt · wszystkie 26 modeli w porównaniu
Model Parametry PL + EN ↑ 95% przedział Polski ↑ Angielski ↑
basal-2.0-pico0,8B65,98%64,84%–67,14%66,08%65,88%
decider-2b (Mapika)1,9B58,66%57,40%–59,94%58,04%59,28%
krino-2b2B56,62%55,34%–57,94%55,24%58,00%
decision-2b (flymy-ai)2B54,62%53,36%–55,78%49,24%60,00%
qev-0.8b0,8B54,40%53,02%–55,64%53,00%55,80%
jiwo-0.8b0,75B54,16%52,86%–55,40%51,60%56,72%
imajev-2b1,9B53,42%52,16%–54,58%52,60%54,24%
jul-2b2B50,86%49,46%–52,26%47,56%54,16%
malkuth-2b2B49,98%48,74%–51,26%48,16%51,80%
Open-Jev-2B1,9B47,10%45,84%–48,38%44,80%49,40%
EXAONE-4.0-1.2B-JEV1,2B45,88%44,62%–47,16%38,04%53,72%
Ghafiri Qwen3.5-0.8B0,8B44,28%42,88%–45,50%44,32%44,24%
jevos-v5 (CPU)nie podano43,96%42,68%–45,26%39,80%48,12%
kev-0.6b0,6B37,52%36,18%–38,78%36,44%38,60%
vegaml-0.8b (Vega 0.8B)0,8B36,72%35,48%–38,12%35,72%37,72%
decision-fast (0.6B)0,6B35,46%34,10%–36,70%34,88%36,04%
Tacet Sonata144M35,00%33,64%–36,24%34,72%35,28%
watt-flash-0.1140M34,76%33,50%–35,96%33,12%36,40%
Quyet-1.0-Small328M33,48%32,12%–34,66%30,60%36,36%
liquid-d1-omni-600m587M33,34%32,08%–34,60%30,44%36,24%
lev-350m361M33,16%31,78%–34,36%31,32%35,00%
phocinae-largha-150m-v1144,3M32,26%30,98%–33,58%31,36%33,16%
WaterSheep0,15B31,72%30,48%–32,84%28,20%35,24%
openjev-verdict-1.4151M30,60%29,22%–31,88%29,40%31,80%
verdict-small118M30,06%28,76%–31,34%30,40%29,72%
kev-0.5b0,5B30,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.

Publiczne zestawy · wyniki lokalnych przebiegów
Test pico 0.8B qev-0.8b krino-2b jiwo-0.8b
Benchmark Heaven (public)75,377,969,774,0
JevExtra68,471,864,766,4
JevSpatial68,774,275,069,3
Rules-768,663,862,257,8
JevBench · accuracy83,985,184,385,5
JevBench · coherence74,370,776,0170,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

Finalne pico 0.8B · różne profile pomiaru
Pomiar Wynik Warunki
Pojedyncza odpowiedź · p5047 msH100 80 GB · BF16 · eager 2.3.1 · profil Werdyktu, 1 klient
Przepustowość32,4 decyzji/sH100 80 GB · BF16 · eager 2.3.1 · 16 żądań równolegle
Dwa pytania o krótką wiadomość0,46–0,51 sXeon Platinum 8460Y+ · 16 wątków CPU · GGUF Q8_0 · silnik 2.3.2 · 232 tokeny
Plik modelu GGUF Q8_0812 MBWielkość 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.

POST /v1/systemone · application/json
{
  "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:

TERMINAL
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 8000

Nie 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 →