Jared Palmer · 2026-09-20 · major
Kev — open decision models that answer typed questions in one pass
Kev is a family of open decision models — 0.8B, 4B and 9B — built on Qwen3.5 bases. Kev takes a typed question and returns calibrated probabilities in one forward pass, with no text generation.
Kev puts the Jev idea — typed questions in, probabilities out — into open Apache-2.0 weights you can train and run yourself.
Key specs
| GitHub stars | 1,997 |
|---|---|
| Sizes | 0.8B / 4B / 9B |
Quick facts
| Maker | Jared Palmer |
|---|---|
| Models | Kev-0.8B, Kev-4B, Kev-9B |
| Base models | Qwen3.5-0.8B / 4B / 9B Base |
| License | Apache-2.0 |
| Method | Rank-16 LoRA adapter + pointer head |
| Output | Calibrated probabilities, no text generated |
| Requirements | Python 3.12+, transformers >= 5.17 |
Benchmarks
What is it?
Three open decision models — Kev-0.8B, Kev-4B and Kev-9B — were released on 20 September 2026, all trained on Qwen3.5 bases. A decision model does not write text: you hand it a typed question, such as a yes/no check, a multiple-choice route or a rating, and it hands back a probability for each option. Jared Palmer published the family under Apache-2.0, the same licence as the Qwen bases underneath.
How does it work?
A rank-16 LoRA adapter plus a pointer head sits on top of the Qwen base. The pointer head scores each option's hidden state against the question's hidden state, and a softmax turns those scores into probabilities. Questions stay isolated from one another: the attention mask lets a token read the shared state and its own question, but not the other questions in the same request, so one call can carry several unrelated decisions.
Why does it matter?
Teams that use a large model only to classify or route pay for text generation they then throw away. Kev removes that step — one forward pass, a probability per option, nothing to parse. Because the weights are Apache-2.0 and the training code ships alongside them, the recipe can be retrained on a team's own labelled decisions instead of sitting behind a vendor API.
Who is it for?
engineers who route or classify with LLMs
Frequently asked questions
- Is Kev open source?
- Kev ships under the Apache-2.0 licence, the same terms as the Qwen3.5 bases it is built on. Weights for all three sizes are published in a Hugging Face collection, and the training code, model cards and a pre-registered criteria file live in the GitHub repository. Teams can run Kev locally or retrain it on their own labelled decisions without asking permission.
- How does Kev compare to Jev?
- Kev is an open re-creation of the Jev idea rather than the same model. On the development split, Kev-9B trails the proprietary Jev model by 3.5 points, 0.822 against 0.857, as recorded in the Kev repository. The trade is licence and control: Jev is a paid API, while Kev's weights and training recipe are Apache-2.0 and run on hardware you own.
- What does it take to run Kev?
- Kev needs Python 3.12 or newer, the uv package manager, and transformers 5.17 or later; the serve command loads a checkpoint in bf16 and exposes a REST endpoint. Picking between Kev-0.8B, Kev-4B and Kev-9B is a straight accuracy-for-memory trade. Earlier Qwen3-based Kev checkpoints are still published for people who want faster inference on a Mac.
- Can Kev be retrained on my own data?
- Kev is built to be retrained. The repository ships the training code, the kev-suites dataset on Hugging Face, and a pre-registered criteria file recording what each run was meant to show before it was run. Jared Palmer describes the family as decision models you can train and run on your own, and the Apache-2.0 licence covers checkpoints you derive from them.
Try it
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009