20 Downloads Updated 5 days ago
ollama run pdurlej/basal-1.0:1.5b-f16
Updated 5 days ago
5 days ago
e999ef09dd36 · 3.2GB
basal-1.0 is a family of fast, calibrated typed-decision models for Polish (and English) by Remigiusz (Remek) Kinas. It is the original work of the author, not of this account:
The model reads a state (a message, a ticket, a document) and answers a typed question by returning a probability for every allowed answer (choice, noul yes/no, score), in one forward pass and without generating text. In the author’s evaluation it is the most accurate decision model on Polish decisions.
This is an unofficial Ollama packaging, published with the author informed (rkinas/basal#8). If he prefers to publish under his own account, this page will be removed.
These files carry decision.type = "basal". With it, Ollama’s /v1/systemone renders basal’s own prompt format, scores both option orders and applies the author’s calibrated temperatures, so the results match the reference server.
This needs an Ollama build with the basal decision encoding, proposed in ollama/ollama#18760 (branch pdurlej/ollama@decision-basal-encoding). Released Ollama versions answer unsupported decision encoding "basal" until it lands. The models are decision-only: ollama run and /api/generate are not supported.
ollama pull pdurlej/basal-1.0:1.5b
curl -s localhost:11434/v1/systemone -d '{
"model": "pdurlej/basal-1.0:1.5b",
"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"}}}}'
| tag | model | file |
|---|---|---|
1.5b, latest |
basal-1.0-1.5B | Q8_0, 1.7 GB |
1.5b-f16 |
basal-1.0-1.5B | F16, 3.2 GB (closest to the reference) |
4.5b |
basal-1.0-4.5B | Q8_0, 5.1 GB |
4.5b-f16 |
basal-1.0-4.5B | F16, 9.5 GB (closest to the reference) |
The files come from basal-export-gguf (rkinas/basal#8). llama.cpp’s converter writes basal’s BPE vocabulary with one constant score for every token, so llama.cpp splits Polish words differently from the tokenizer the models were trained with. The exported files instead take token scores from BPE merge ranks, switch off the word-boundary prefix and mark added tokens as special. On 200 basal prompts, llama.cpp then produces exactly the Hugging Face token ids, for both sizes; a plain conversion matches none.
Apple M1 Max, 50 PL/EN triage items × 4 questions, against the author’s basal-serve on the same items.
| model | accuracy: portfolio / escalate / data class / urgency | mean total-variation distance to basal-serve | s per item (basal-serve eager) |
|---|---|---|---|
| 1.5B Q8_0 | 0.94 / 0.86 / 0.68 / 0.38 (ref. 0.92 / 0.86 / 0.70 / 0.38) | 0.010 | 0.63 (1.65) |
| 4.5B Q8_0 | 0.96 / 0.88 / 0.60 / 0.46 (ref. identical) | 0.010 | 1.71 (4.76) |