Benchmark · October 2026

Everyone talks about Jev. Have you met Kev?

We had seven open decision models answer the same 542 questions as TypeSafe Jev, in Swedish and English, on our own graphics cards. Here are the results, how we got closer to Jev without training, and what still doesn't hold up.

95.2%Jev, correct answers
93.5%Kev-4B with adapted questions
71 msKev-4B per text, RTX 3060
23 → 9answers behind Jev, no training

What is a decision model?

It doesn't write an answer. It chooses.

A decision model reads a text and answers typed questions: a choice among fixed options, yes or no with a probability, or a level on a scale. The answer comes back in a fraction of a second and always in the right format, so you can set thresholds on it. That suits ticket triage, risk flags and voice commands.

Which department gets this email?

choice · one choice out of three

Is the customer threatening to cancel?

noul · yes or no, with a probability

How urgent is the ticket?

score · 0, 1 or 2

Setup

Seven open projects, one reference and the same questions

Every model got exactly the same texts and questions in Jev's format. Jev was called through TypeSafe's API. The open models ran on their own engines on an RTX 3060 and an RTX 5060 Ti in the same machine, without Ollama or vLLM.

ModelParametersOn diskFormatBuilt on
Von395M3.0 GBPyTorchown
Laya421M1.5 GBPyTorchown
NanoJev0.6B2.3 GBPyTorchown
Kev 0.8B0.8B1.8 GBbf16 + LoRAQwen3.5-0.8B-Base
Rizzo Flow 1.7B1.7B1.8 GBGGUF q8_0Spark-X2.5-1.7B
Rizzo Flow 4B4B4.4 GBGGUF q8_0Spark-X2.5-4B
Kev-4B4B9.0 GBbf16 + LoRAQwen3.5-4B-Base
SemIf4B8.8 GBbf16Qwen3.5-4B
Nimble9B18 GBbf16Qwen3.5-9B
Jevnot published–cloud serviceTypeSafe

Eight scenarios, 542 answers per model

ScenarioLanguageWhat the model decidesTexts
supportEnglishSupport email to one of three departments20
typesEnglishChurn risk (yes/no) and urgency 0–216
intentSwedishVoice commands with speech recognition errors, nine intents32
tree1SwedishDomain and action in one call20
tree2SwedishDomain first, action in a second call20
yesnoEnglishFour yes/no questions: cancel, angry, refund, data loss32
yesno_critEnglishSame questions with criteria for yes and no32
yesno_svSwedishSame questions on Swedish texts32

Results

Errors out of 542 answers. Fewer is better.

Without adaptation, Jev was best. Kev-4B was the best open model, and with two adapted questions it came within nine answers of Jev.

Jev95.2% correct26 errors
Kev-4B, adapted questions93.5% correct35 errors
Voting: Kev-4B, Rizzo 4B, Laya91.7% correct45 errors
Nimble 9B, adapted questions91.1% correct48 errors
Kev-4B91.0% correct49 errors
Nimble 9B88.6% correct62 errors
Rizzo 4B88.0% correct65 errors
Laya, adapted questions87.1% correct70 errors
Rizzo 1.7B83.0% correct92 errors
Kev 0.8B77.1% correct124 errors
Laya73.4% correct144 errors
TypeSafe JevOpen model on our own GPU

Voting: majority for choices, mean for yes/no and scores. Laya loses 68 answers when the yes/no questions have criteria.

Per scenario, without adaptation

ScenarioJevKev-4BNimble 9BRizzo 4BRizzo 1.7BKev 0.8BLaya
support /2020201919182013
types /161311121013910
intent /3232262722192024
tree1 /2018171715121114
tree2 /2018171715111114
yesno /12812111811311511495119
yesno_crit /12812612111812311411260
yesno_sv /1281201161091141119798

Fully correct cases per scenario. For the yes/no scenarios: correct answers out of 128 (32 texts × 4 questions).

How we got closer

Two changes. No training.

Same model, same weights. We only changed how the questions were asked. Each change was chosen on half of the texts and checked on the other half.

1

Label the text

Every voice command got the prefix “Swedish voice command (may contain speech recognition errors):”.

2

Move one threshold

The question “is the customer angry?” counted as yes only at probability 0.94 instead of 0.5.

ScenarioJevKev-4BKev-4B adaptedNimble 9B adaptedLaya adapted
support20/2020/2020/2019/2013/20
types29/3227/3227/3228/3226/32
intent32/3226/3229/3231/3228/32
tree135/3734/3736/3735/3729/37
tree233/3731/3735/3733/3728/37
yesno121/128118/128118/128113/128121/128
yesno_crit126/128121/128126/128126/128121/128
yesno_sv120/128116/128116/128109/128106/128
Total of 542516493507494472

Correct answers per scenario. Nimble 9B got the same two changes, with threshold 0.98. Laya got different changes: yes/no questions without criteria, Swedish questions and labelling for Swedish yes/no texts, and threshold 0.81 for the angry question.

Swedish and size

Swedish shows the biggest gap. Bigger wasn't better.

32/32

Jev on Swedish voice commands. Best open models with adapted questions: Nimble 9B 31, Kev-4B 29.

49 / 62

Errors for Kev-4B (4B, one card) against Nimble 9B (9B, two cards), both without adaptation.

421M

Laya, the smallest in the test, was second-best locally on Swedish voice commands and answers in 16 ms.

Swedish voice commands against response time

Correct out of 32 on the y-axis, median ms on the x-axis. Up and to the left is best.

1620242832060120180240Laya: 24/32, 16 msLayaKev 0.8B: 20/32, 19 msKev 0.8BRizzo 1.7B: 19/32, 40 msRizzo 1.7BRizzo 4B: 22/32, 81 msRizzo 4BKev-4B: 26/32, 87 msKev-4BNimble 9B: 27/32, 186 msNimble 9BJev: 32/32, 230 msJevResponse time, median ms

Without adapted questions. Local models on an RTX 3060, Nimble 9B across both cards. Jev's time includes the network.

Speed

Every local model answers faster than Jev

Median per support email. The goal was the most correct answers, not the lowest time, but time decides where a model is usable.

Laya16 ms
Kev 0.8B19 ms
Von19 ms
NanoJev33 ms
Rizzo 1.7B40 ms
Rizzo 4B81 ms
Kev-4B87 ms
SemIf 4B122 ms
Nimble 9B †186 ms
Jev *230 ms

Local models on an RTX 3060. *Jev including the network. †Across an RTX 5060 Ti and 3060, without fast kernels.

RTX 3060 against RTX 5060 Ti

RTX 3060 12 GBRTX 5060 Ti 16 GB
Laya16 ms12 ms · 1.3×
Kev 0.8B19 ms12 ms · 1.6×
Rizzo 1.7B40 ms25 ms · 1.6×
Rizzo 4B81 ms50 ms · 1.6×
Kev-4B87 ms74 ms · 1.2×
SemIf 4B122 ms65 ms · 1.9×

Same answers on both cards except two borderline cases. Kev-4B ran on the 5060 Ti without its fastest kernel, which couldn't be built for the card with our CUDA version.

RTX 3060 with unlocked BF16/FP16

With the unlock, Kev-4B got 18–27% faster on the 3060 with identical answers, on par with the 5060 Ti.

3060 before3060 unlocked5060 Ti
Support email87 ms71 ms · −18%74 ms
Decision tree126 ms92 ms · −27%84 ms
Yes/no with criteria129 ms94 ms · −27%86 ms

Conclusions

Kev-4B gets close, with the right questions

Best local: Kev-4B

507 of 542 correct with adapted questions, on one 12 GB card. Beats Jev on the decision trees and matches it on yes/no with criteria.

Questions move the most

Phrasing and thresholds gained more correct answers than both larger models and GPU settings.

Still open: Swedish

Voice commands and Swedish customer emails are where Jev still leads. Next steps are labelling for customer emails and fine-tuning on Swedish examples.

If you need fast, structured decisions and want to keep your data in-house, the open models go a long way. If you need breadth and Swedish without extra work, Jev is still the best.

Method and caveats

Small test sets, stable answers

16–32 texts per scenario

One case is worth 3–6 percentage points. Differences of one or two cases are noise.

Deterministic answers

Five runs per model gave identical answers. Different machines and graphics cards differed by at most two answers.

Selection against a control half

The adaptations were chosen on half of the texts and checked on the rest. Confirm on more texts before you build on them.

Jev's times include the network, since Jev was called as a cloud service. The local times are pure GPU time. The models come from DataCamp's list of open Jev alternatives.

Glossary
Jev
TypeSafe's decision model, called as a cloud service. The reference every model is compared against.
Parameters (M, B)
The model's learned numbers. M = million, B = billion. More parameters need more memory.
Base model
The general language model a decision model is built on, here often Qwen3.5.
LoRA
A small add-on file (adapter) that adapts a base model to a task without changing the whole model.
bf16, fp16
16-bit number formats for the weights. Standard for GPU inference, not quantization.
Quantization
Weights stored with fewer bits, such as 8 or 4, to save memory.
GGUF, q8_0
The llama.cpp file format, and 8-bit quantization. Rizzo Flow ships that way.
llama.cpp
An inference engine for language models written in C++, the one Ollama builds on.
choice, noul, score
The question types: fixed options, yes/no with a probability, and ordered levels such as urgency 0–2.
criteria
Descriptions of what each option, or yes and no, means. Helps Kev, hurts Laya.
Threshold
The probability at which an answer counts as yes. Default 0.5.
Control half
Half of the texts, used only to check a setting, never to choose it.
Fused kernels
Several small GPU programs merged into one. Makes Kev-4B 12–19% faster on an RTX 3060.
VRAM
The graphics card's own memory: 12 GB on the RTX 3060, 16 GB on the RTX 5060 Ti.