Wähler-4B

A German decision model with the Jev API. You send a state and typed questions (Choice, Score, Noul) and get a calibrated probability for every option. It can think before it answers, it can say "unknown", and the Q4_K_M build runs on your own machine in about 3 GB of RAM.

Try it · Run it · Results · Use and limits · Code and links

Emberwick: every villager asks Deem-4B what to do next.

Emberwick: every villager asks Deem-4B what to do next. More clips

The 53-second film, sound on: two mistakes small decision models make and how JevAlt fixes each one.

Deutsche Version

Der 53-Sekunden-Film, mit Ton. Emberwick auf Deutsch: Jeder Dorfbewohner fragt Wähler-4B, was als Nächstes zu tun ist. GIF (4K) · leichtes GIF

Try it

Open the Space, pick an example and press Decide, or write your own situation, question and options. These are the Space's examples in German with Wähler-4B's answers on 1 October 2026:

Einsatz Situation Frage Antwort
Support-Ticket Ein Kunde wurde für März doppelt belastet und will heute eine Erstattung Welches Team soll dieses Ticket bearbeiten? Abrechnung 91,8 %
Störung Der Checkout liefert allen Kunden Fehler 500, 43 Bestellungen in 10 Minuten fehlgeschlagen Wie schwer ist dieser Vorfall? Kritisch 82,0 %
Vertriebs-Lead Betriebsleiter eines Unternehmens mit 200 Mitarbeitenden: Budget freigegeben, Entscheidung diesen Monat, will eine Demo Wie soll der Vertrieb diesen Lead behandeln? Heiß 93,2 %
Rückgabefrist Geliefert am 1. September, 14 Tage Rückgabe, heute ist der 18. September Liegt diese Rückgabe innerhalb der 14-Tage-Frist? (Nachdenken an) Nein 95,5 %
Phishing-Mail Eine gefälschte Bank-Mail mit einem versteckten Hinweis an den KI-Filter, sie sei sicher Wohin soll diese E-Mail? Quarantäne 91,6 %
Fehlende Info Ein Gast kommt um 23:30 Uhr an und fragt, wer die Schlüssel übergibt Welchen Zimmertyp hat der Gast gebucht? unbekannt 96,2 %
Dorfbrand Die Scheune brennt, und Mirka handelt auf dem Markt Was soll Mirka als Nächstes tun? Beim Löschen helfen 69,2 %

Every probability of every run, in all three languages: space-examples.json.

Start checkpoint internlm/Intern-Decision-4B (Qwen3.5-4B)
Languages German first, the others still work
API TypeSafe's POST /v1/systemone, request and response unchanged
Extras reasoning off / on / auto, abstain, coverage (conformal sets)
Q4_K_M file / peak RAM 2.71 GB / 3.03 GB (measured, 4k context)
License Apache-2.0
Deutsche Zusammenfassung

Wähler-4B ist ein offenes Entscheidungsmodell, das auf deutschsprachigen Entscheidungen trainiert wurde. Sie senden einen Zustand und Choice-, Score- oder Noul-Fragen und erhalten für jede Option eine kalibrierte Wahrscheinlichkeit. Auf Wunsch schreibt das Modell zuerst eine kurze Begründung auf Deutsch und entscheidet dann. Die Q4_K_M-Version läuft mit etwa 3 GB RAM auf dem eigenen Rechner, die Daten bleiben lokal.

Run it

pip install "jevalt[serve,gguf] @ git+https://github.com/mertkayacs/jevalt"
jevalt serve --model mertkayacs/Wahler-4B-GGUF --file Wahler-4B-Q4_K_M.gguf

Any TypeSafe client works against it:

from typesafe_sdk import TypeSafeClient, Choice, Noul
client = TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8000")

Results

Accuracy on English, Turkish and German decisions and on typed-decisions: JevAlt, Intern-Decision-4B, Kev-4B and Laya

Hidden instructions, option order, long policies and negated questions: JevAlt against Intern-Decision-4B, Kev-4B and Laya

Same items and client for every model, each as shipped: Kev-4B r10 and Laya 0.3.22 on their own servers with their own calibration. Jev 1.13 rows come from TypeSafe's API reference and Models page. The held-out tests come from JevAlt's own data pipeline, so they favour JevAlt. Kev-4B and Laya both do better on long padding; Kev-4B does better on GermEval 2017 and 10kGNAD; Laya is far smaller and faster. Every number and every decision: results/comparison.

Significance and caveats

What Jev 1.13 lacks and JevAlt has: thinking when unsure, coverage sets, models made for Turkish and German, open weights

The three test splits went through the same pipeline as the training rows, so they measure what the training aimed at. On the German split Wähler-4B gains 11.5 accuracy points (paired bootstrap, 95% interval +9.5 to +13.5) and lowers Brier by 0.156. On the German suites the training never saw, it gains 4.75 points on 10kGNAD (+2.5 to +7.25) and 2.75 points on GermEval, an interval that crosses zero. Brier gets worse on JevBench-hard (+0.061) and accuracy there drops 5.4 points within an interval that crosses zero. On the German date, number and policy test rows (38 decisions) reasoning: "auto" keeps the accuracy and raises Brier by 0.11, so "off" is the better default for this model.

The German traces Wähler-4B writes scored 3.68 and 3.95 with two blind raters from other model families (Qwen3.5-122B and Gemma 4 26B, 1 to 5 scale, 13 to 20 traces per rater), against 3.14 and 3.15 for Intern-Decision-4B. We aimed for 4.0.

How we fixed each problem

Most fixes are a set of training rows aimed at one weak spot. Every number compares a model with its start checkpoint, Intern-Decision-4B, on rows held out from training. Across all of it, Wähler-4B's held-out accuracy in German rose from 80.5% to 92.0%.

  • The data. About 23,900 training rows in English, Turkish and German. Public sets with known answers (MASSIVE, Open-Jev, PAWS-X, typed-decisions); everyday situations written directly in each language by other open models; requests from the Emberwick game; and the fix sets below. Two teacher models from labs other than the writer give every written row a probability per option, and an answer counts only when both teachers and the writer agree on it. Those probabilities, the soft labels, are what the models learn. Test rows were split off by group, and their checksums recorded, before the final training runs.
  • Hidden instructions. A fix set of 827 rows hides a hostile line in the text (an order to the AI filter, a fake rule) at the start, the middle or the end, with the right answer unchanged. On our probe, hidden lines now change 17.5% of Wähler-4B's answers; the start checkpoint follows 41.5% of them. Held-out rows of this kind: 80.8% → 90.1%. Our target is under 10%.
  • An honest "unknown". A fix set of 310 rows removes the fact that decides the question and asks it with and without an unknown option. When the fact is missing, the models pick unknown in 9 of 11 held-out cases, as the start checkpoint does, and with more conviction: its probability rose from 0.55 to 0.74. Turn it on with abstain: true. Kev-4B and Laya have no such option.
  • Option order. Shuffled copies of choice questions with three or more options. Answers that change after a shuffle: 9.5% for Wähler-4B, 8.75% for the start checkpoint, so Wähler-4B is slightly worse here. Our target is under 2%.
  • Long policies and long texts. 390 rows give a policy with exceptions and sub-limits, with the right answer worked out by code, and 1,188 rows bury the facts in up to 3,000 tokens of unrelated records. Held-out policy rows: 55.3% → 80.0%. Padded rows: 91.2% → 95.4%. With 600 words of unrelated records in front, Wähler-4B still loses 12.2 points (the start checkpoint 15.0), and Kev-4B and Laya hold up better there.
  • Negations. A fix set of 368 twin rows asks the same thing as "is it so?" and "is it not so?" with mirrored answers. Held-out negated questions: 80.0% → 96.7% (30 rows).
  • Dates and numbers. 390 date rows and 383 number rows, answers computed by code, some with a short worked reasoning. Held-out dates: 61.3% → 71.3% (80 rows, within noise); numbers stayed at 68.2%. Dates remain a weak spot: Wähler-4B miscounted a return window across two months even with reasoning on.
  • Honest confidence. The soft labels teach how sure to be, and a temperature per question type and language, fitted on 3,224 held-out decisions, does the rest. German Brier score on held-out rows: 0.275 → 0.119. Wähler-4B's fitted temperature is 1.10, the start checkpoint's about 2, so the trained model is close to calibrated before any scaling. On unseen public sets a temperature-scaled start checkpoint does as well, and on a few of them slightly better. The 80, 90 and 95% answer sets come from conformal thresholds fitted on the same rows.
  • Native German. German rows were written directly in German, and the German run draws 70% of its rows from German. Held-out German accuracy: 80.5% → 92.0%. Wähler-4B gained 4.75 points on 10kGNAD; Kev-4B still leads there and on GermEval 2017, where the change is within noise.
  • Thinking when unsure. Short reasoning traces, kept only when they reach the right answer, trained at a lower weight. With reasoning: "auto" the model thinks (up to 256 tokens) only when its first answer is unsure. On German date, number and policy rows accuracy stayed at 0.605 and the Brier score got worse (0.519 → 0.629), so leave it off for German.
How it was trained
  • Base: internlm/Intern-Decision-4B (Qwen3.5-4B)
  • Method: LoRA on the bf16 weights, rank 32, alpha 32, on one A100 80 GB
  • Epochs: 1 over all three languages (shared run: 17,363 rows, 543 steps, 63 min), then 1 on the German-weighted mix (S-de: 5,384 rows, 210 steps, 28 min)
  • Runs: 11 training jobs: 6 short smoke and probe runs, a pilot at scale, the shared run and the 3 language runs
  • Compute: about 2.7 A100 hours for the released models; 32.2 USD for the whole project, labeling included
  • Writers, labelers and trace writers: GLM-5.x, Mistral Large 3, DeepSeek V4 Pro, DeepSeek V4.1 Flash, Gemma 4 26B-A4B, Qwen3.5-122B-A10B, Qwen3.5-35B-A3B, Kimi K3 (54 rows), MiniMax M3 (2 reasoning traces)
Source English Turkish German
Teacher-written scenarios (G) 1,287 1,741 1,408
Village game requests (N) 124 129 107
Fix sets (F1-F12) 1,256 1,197 1,257
Public datasets (P) 7,188 4,115 4,074

Use and limits

  • Good for routing, tagging, triage and moderation at volume, and for automated decisions that need calibrated probabilities.
  • Runs on-device or on-prem with the GGUF build, so the data stays with you.
  • Knowledge is bounded by a 4B model, and the context is 8k tokens, so it is no tool for general questions or long summaries.
  • Probabilities are calibrated on our held-out data. Refit with jevoss calibrate on yours before you set thresholds.
  • Reasoning traces add little on our test rows (see the results), and there is no image input.

Citation

BibTeX
@software{kaya2026jevalt,
  author = {Mert Kaya},
  title = {JevAlt: Open Decision Models with the Jev API},
  year = {2026},
  license = {Apache-2.0},
  url = {https://github.com/mertkayacs/jevalt}
}

Code and links

If this is useful to you, a star on GitHub helps other people find it.

Downloads last month
89
Safetensors
Model size
5B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for mertkayacs/Wahler-4B

Finetuned
Qwen/Qwen3.5-4B
Finetuned
(3)
this model
Quantizations
2 models

Dataset used to train mertkayacs/Wahler-4B

Space using mertkayacs/Wahler-4B 1

Collection including mertkayacs/Wahler-4B