-
Images
-
System One API
-
llama-server(GGUF) -
MLX on Apple silicon
-
Apache-2.0
-
77.1%* accuracy · #1 of 27
-
3.5 ms per decision · fastest
-
1.3 GB RAM on a Mac
hf download labqoat/qev-0.8b
Seven business tasks (two of them reading images) and five games, all decided right now by the same model. Four of the five games were never in its training data.
Tiny model. #
Top of the table.
We ran qev-0.8b against 26 other decision models around 1B parameters. Every model got the same items and scoring, ran on one NVIDIA L40S, and used its own published inference recipe. qev is first on Benchmark Heaven, JevExtra and JevSpatial, and it is the fastest.
Most accurate
Fastest
Smallest of the most accurate
77.1%
First of 27, at 0.8B parameters. The next two models, decision-2b and decider-2b, are more than twice its size.
3.5 ms
Fastest of 27: twice as fast as decider-2b and 23× faster than decision-2b.
72.0%
Chess, browsing, tools, agent actions, injection, safety, judging and grounding. The next best scores 64.1.
74.2%
Games and spatial reasoning. Tetris, Pac-Man, Breakout, 2048 and Whac-A-Mole were held out of training.
Every benchmark, every model
*** 77.1% accuracy** is qev-0.8b's score on the public split of Benchmark Heaven (231 decision items, sampling error about ±2.8 points), the highest of the 27 decision models around 1B parameters we compared. qev's number comes from our evaluation harness; the other 26 models were run through a comparison harness, which scored the previous qev release one item lower (76.6% vs 77.1%).
BH = Benchmark Heaven public split (231 items, sampling error about ±2.8 points). JevBench = 240 cases; coherence uses the official jevbench harness (×100), qev in per-question mode and the others in their own runtime. Suite = 22 public-dataset tasks (880 questions). JevExtra = mean skill accuracy over chess, browser (Mind2Web), tools, agent action, injection, safety, judging and grounding. JevSpatial and Rules-7 = the jev-skills spatial and rules7 configs. Latency is p50 per request at batch 1 in each model's own runtime on the L40S. VRAM is estimated as weights + 0.5 GB, not measured.
qev-0.8b's numbers come from our evaluation harness; the other rows come from the comparison harness, which scored the previous qev release one item lower on BH (76.6 vs 77.1). ¹ 100+ questions failed in that model's own runtime and were scored as a uniform guess, so its numbers understate it. jevos-v5 runs CPU-only and its run is still in progress. decider-2b and lev-350m have no JevSpatial or Rules-7 runs. Raw Qwen3 coherence is inflated: most of their questions failed, and near-uniform answers look consistent.
In the demos above, the game code works out what each move would do and writes it into the state, and qev decides, as in JevSpatial's "facts in the state" setup.
What it's for. #
The fast checks around your AI.
qev doesn't write text. It answers questions about text in milliseconds, with a probability you can put a threshold on: act when it's sure, and hand off to a person or a bigger model when it isn't.
Runs where your data is. #
Even on your laptop.
The same weights ship in three formats: CUDA for the fast GPU engine, MLX for Apple silicon and GGUF for llama.cpp. In 8-bit it needs 1.3 GB of RAM. It doesn't generate text, so nothing leaves your machine and there's no token bill.
- Parameters0.8B, a full fine-tune of Qwen3.5-0.8B-Base
- Weights1.7 GB bf16 · 0.8 GB 8-bit
- Memory2.2 GB VRAM (est.) · 1.3 GB on a Mac, 8-bit
- Latency3.5 ms p50 on 1× L40S · 109 ms on M4 Pro
- OutputCalibrated probabilities for choice, yes/no and score questions, up to 255 options each
- LicenseApache-2.0
from qev_mlx import QEVMLX
m = QEVMLX.load("labqoat/qev-0.8b-MLX", subfolder="q8") # 1.3 GB
m.decide({"ticket": "Charged twice, please refund one."},
{"dept": {"type": "choice", "instructions": "Which team?",
"criteria": {"billing": "payments", "tech": "bugs"}},
"urgent": {"type": "noul", "instructions": "Is this urgent?"}})
from qev_gguf import QEVGGUF
m = QEVGGUF.load("labqoat/qev-0.8b-GGUF", "qev-0.8b-Q8_0.gguf")
m.decide("Refund please, I was charged twice",
{"urgent": {"type": "noul", "instructions": "Is this urgent?"}},
per_question=True)
python
from qev import QEV
m = QEV.from_pretrained("labqoat/qev-0.8b") # fast engine on NVIDIA
m.decide_batch([(state, questions), ...]) # length-sorted, padded
m.distributions_batch([(state, questions), ...]) # raw probabilities
One POST. #
Any state, any question.
Send a state (text, an object or a list) and up to 16 questions. Each answer comes back as a probability distribution. If the model is confident, act on it. If not, escalate to a person or a bigger model.
- choicePick one option. Names and short descriptions matter, because the model reads them.
- noulYes or no, returned as the probability of yes.
- scoreAn ordinal scale, returned as an expected score plus a distribution.
- /batchUp to 64 requests answered in one forward pass.