/ Модель

Характеристики

Контекст
8 192 токена
Параметры
1,5 млрд
Лицензия
Apache 2.0
Архитектура
llama · dense
Базовая модель
Bielik-1.5B-v3.0-Instruct
Библиотека
transformers
Опубликована
26 сен 2026

basal-1.0-1.5B

Генерация текстаТекст → текст10 профессий

Польско-английская компактная модель для классификации решений по заданным вариантам с оценкой вероятностей и уверенности.

1 137скачиваний за 30 дней3лайкавеса обновлены28 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

basal-1.0-1.5B — польская и английская модель для классификации решений, разработанная автором репозитория Remek и дистиллированная из basal-1.0-4.5B. Это компактная инструкционная модель семейства Llama с 1,5 млрд параметров и контекстом до 8192 токенов; она принимает описание состояния и вопрос с вариантами ответа и оценивает допустимые варианты, включая выбор, ответ «да/нет» и числовую оценку.

Модель предназначена для динамической классификации без переобучения: категории и правила задаются в запросе. Примеры применения — маршрутизация обращений и документов, проверка соответствия правилам и политике, оценка срочности или риска, выбор агента или инструмента и предварительная сортировка случаев по порогу уверенности. Вместо обычной генерации текста модель вычисляет распределение вероятностей по вариантам за один проход; усреднение предсказаний при прямом и обратном порядке вариантов помогает уменьшить чувствительность к их порядку.

По оценке автора, версия 1,5B уступает версии 4,5B в точности, но обеспечивает примерно вдвое меньшую задержку и в 2,5 раза большую пропускную способность при половинном потреблении памяти. Модель поддерживает польский и английский языки и распространяется по лицензии Apache 2.0. Перед применением на собственных данных рекомендуется отдельная проверка и настройка порогов уверенности; решения с серьёзными последствиями следует проверять человеком.

Сценарии применения

  • маршрутизация обращений в службы поддержки по меняющимся категориям
  • классификация документов по описанным в запросе правилам
  • проверка соответствия заявления условиям политики или закона
  • оценка срочности и риска по описанию случая
  • выбор агента или инструмента в конвейере LLM
  • автоматическая сортировка случаев с передачей неуверенных решений человеку

Ограничения

Качество следует проверять на собственных документах; небольшая модель ограничена в фоновых знаниях о польском языке, а знания о правовых нормах не учитывают изменения после обучения. README также указывает на известную ошибку в обучающих данных по сроку уведомления в одном трудовом сценарии и рекомендует проверку человеком решений с серьёзными последствиями.

Для каких профессий подходит10

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

basal-1.0-1.5B

GitHub Technical report DOI Collection

basal-1.0 overview

What it is. Inspired by System 1 (fast, intuitive) decision models such as Jev: instead of writing an answer, the model reads a state (a message, a document, a case file, a web page as JSON) and answers a typed question about it — choice, yes/no (noul) or score — by returning a calibrated probability for each allowed answer, in a single forward pass, without generating text. The answer can never fall outside the options you give, and the probability says how sure the model is. The name comes from the basal ganglia, which select one action among competing options.

What it is for: a dynamic classifier. The classes are described in the request, in plain language, so one model serves many tasks without retraining: ticket and document routing with changing categories, rule and policy checks ("is the claim covered?", "was the appeal filed in time?"), urgency or risk scores, agent and tool decisions and guard checks in LLM pipelines, and triage with a confidence threshold (accept confident decisions automatically, send the rest to a person).

The lite member of the basal-1.0 collection (1.5B parameters), distilled from basal-1.0-4.5B: −2.9 accuracy points on the full held-out test (−3.5 on Polish decisions) for about 2× lower latency and 2.5× the throughput with half the memory.

📊 More results — accuracy and speed of basal-1.0 against Jev and other open decision models: jev-pl-benchmark (Polish score, English score, speed).

Quick start

1. Install into a fresh uv environment (no git needed):

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.0.1.tar.gz"

Install torch first, from the CUDA 12.8 index: the newest torch on PyPI may need a newer GPU driver, and the torchvision preinstalled on cloud GPU images breaks transformers. DGX Spark and B300: see installation.

2. Start the server and wait until it prints basal: model ... ready:

basal-serve --model Remek/basal-1.0-1.5B --mode fast --port 8000

The first start in mode fast compiles the model for a few minutes; --mode fast-nocompile starts in seconds.

3. Ask a question (in a second terminal):

curl -s localhost:8000/v1/systemone -H 'content-type: application/json' -d '{
  "state": "Klient: od wczoraj nie mogę zalogować się do bankowości internetowej.",
  "questions": {"dept": {"type": "choice", "instructions": "Do którego działu skierować zgłoszenie?",
    "criteria": {"cards": "Reklamacje kart", "online": "Wsparcie bankowości elektronicznej", "loans": "Kredyty"}}}}'

The response has a calibrated probability for every option, the chosen key and the confidence:

{"model": "basal-1.0-1.5B",
 "answers": {"dept": {"type": "choice", "choice": "online",
   "probabilities": {"cards": …, "online": …, "loans": …}, "confidence": …}},
 "usage": {"input_tokens": …, "output_tokens": 0, "questions": 1, "latency_ms": …}}

From Python (the basal package includes a client):

from basal.client import Basal
b = Basal("http://127.0.0.1:8000")
state = "Klient: od wczoraj nie mogę zalogować się do bankowości internetowej."
a = b.choice(state, "Do którego działu skierować zgłoszenie?",
             {"cards": "Reklamacje kart", "online": "Wsparcie bankowości elektronicznej", "loans": "Kredyty"})
print(a["choice"], a["confidence"])                                      # chosen key and its probability
print(b.yes_no(state, "Czy klient zgłasza problem techniczny?")["noul"])  # P(yes)
print(b.score(state, "Jak pilne jest zgłoszenie?", ["niska", "średnia", "wysoka"])["score"])  # expected level 0-2

Many items at once: basal-run --input items.jsonl --output answers.jsonl (JSONL format). Several questions per request, option keys, early exit and the full response format: API.

Quality

systemparamsPL decisionsPL generalEN decisionsPublic bench.
basal-1.0-4.5B4.5B0.8840.7370.7410.740
basal-1.0-1.5B1.5B0.8490.6560.7340.675
Jev 1.13.0 (commercial API)–0.780–0.7360.861
Cygnet12B0.6880.7930.7030.879
AutoJev-27B27B0.7790.8330.7530.870
Jev-Omni12B0.6870.7680.6940.866
JevK5 v0.24B0.6300.7440.6700.857
Winnow-12B12B0.6880.7720.7030.853
decider-4b v24B0.7090.7170.6940.835
decider-35B-A3B35B (3B active)0.6940.7810.7510.831
Hopper4B0.6490.7270.6690.823
reflex-4B4B0.5860.7290.6450.814
nimble-9B v29B0.6850.7580.6690.805
kev-4B4B0.6940.6900.6660.758

PL decisions: 7,081 held-out Polish decisions from unseen templates, statutes and domains; PL general: Polish knowledge, exams and reading comprehension; EN decisions: 1,479 held-out English decisions; Public bench.: the 231-item public English decision benchmark (official harness). All systems served on one H100 with their own servers; both option orders averaged. Leaderboard: jev-pl-benchmark. The basal public-benchmark scores are measured with engine v1.0.1, which shows option keys next to their descriptions by default (the benchmark's options have meaningful keys); with v1.0 they were 0.706 (4.5B) and 0.662 (1.5B).

Speed (one decision = both option orders, batch size 1)

GPUfast (bf16)fp8basal-1.0-4.5B bf16
B300 SXM64.7 ms, 250 dec/s5.2 ms, 224 dec/s8.8 ms
H100 80GB6.2 ms, 157 dec/s (HTTP: 7.7 ms, 147 dec/s)6.3 ms, 177 dec/s12.5 ms
RTX PRO 6000 Blackwell8.8 ms, 101 dec/s7.6 ms, 128 dec/s19.1 ms
RTX 509012.7 ms, 67 dec/s9.3 ms, 99 dec/s28.0 ms
RTX 409012.5 ms, 51 dec/s––
DGX Spark (GB10)34.3 ms, 20 dec/s18.1 ms, 31 dec/s92.0 ms

1.9–2.7× faster than the 4.5B model. Agreement with the fp32 reference: 0.99–1.00 in bf16, 0.96–0.97 in FP8. FP8 and NVFP4 checkpoints for vLLM: Remek/basal-1.0-1.5B-FP8, Remek/basal-1.0-1.5B-NVFP4 (NVFP4 costs quality, see its card).

How it works

The model receives a fixed chat prompt with the state, the question and lettered options; the assistant turn is prefilled with {"answer": " and the decision is the softmax over the next-token logits of the option letters only (one forward pass, no text generation). The server asks every question with the options in original and reversed order and averages the two distributions (reduces sensitivity to option order), then applies the calibrated temperature of the question type from CALIBRATION.json, fitted on exactly this averaged prediction (calibration v1.0.1).

Use the confidence. CALIBRATION.json also stores confidence thresholds chosen on the calibration split, before testing, for a target error of 1% or 5% among accepted decisions; applied once to the test split they accept 49.5% / 68.6% of test decisions at 1.4% / 5.5% observed error. Accept decisions above the threshold automatically and route the rest to a person; with your own data, refit the thresholds on a labelled sample. These numbers were measured on descriptions-only prompts ("option_keys": "hide"); in the default mode, which also shows option keys, they are not validated — refit the thresholds on your own labelled requests.

Training data

Polish and English decision data whose labels are computed by code (deadlines, amounts, rule families with twin pairs that differ in one fact), grounded in statutes (verbatim evidence quotes checked by independent verifiers), or agreed by independent verifier models; plus English decisions from a public dataset (about 21% of the training items). Generated data are split by template, statute and domain, so test items come from templates, statutes and domains never seen in training; the English items follow the source corpus's own train/test split. Part of the data was generated or verified with commercial models.

Limitations

  • Evaluated on held-out items from the same generation pipelines as training plus public benchmarks; validate on your own documents before relying on it.
  • Polish world knowledge of a small model is limited: provide the relevant facts in the state.
  • Legal rules change; the model does not know rules introduced after its training.
  • A generator error in the training data taught the model the wrong notice period (art. 36 § 1 KP) when three years of employment are completed during a one-month notice: it answers one month instead of three. Evaluation labels are corrected; the model will be retrained in the next release.
  • Averaging the original and reversed option order reduces, but does not remove, sensitivity to option order for three or more options.
  • About 21% of the training items (13,500 English items) come from an aggregated public corpus whose upstream sources could not be traced item by item; see the technical report.
  • The test split was consulted during development; its results come from an adaptive process on held-out templates, not from a single untouched final evaluation.
  • Decisions with serious consequences for people should be reviewed by a person.

Citation

@techreport{kinas2026basal,
  title       = {basal-1.0: Reliable, Highly Optimized Typed Decisions for Polish},
  author      = {Kinas, Remigiusz},
  institution = {ai5},
  year        = {2026},
  type        = {Technical report},
  doi         = {10.5281/zenodo.23022986},
  url         = {https://doi.org/10.5281/zenodo.23022986}
}

License and attribution

Apache-2.0. Fine-tuned from speakleash/Bielik-1.5B-v3.0-Instruct (Apache-2.0).

Training data: English decision items were converted from avbiswas/bev-decision-150K, which aggregates questions derived from many upstream sources; its maintainers ask users to check and attribute those sources, and row-level source identifiers are not available (see the technical report).

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
LlamaForCausalLM
Ревизия весов
81a74ac

0 моделей