Skip to content

Jev and open alternatives

What Jev is

Jev (TypeSafe, typesafe/jev, served through OpenRouter) turns a model into a typed decision engine: send a text (the state) and questions of type noul (yes/no), choice or score, get typed answers with probabilities, with no text generation. SelfJev copies the interface, not the model: selfjev serve answers Jev's requests at Jev's paths (/v1/systemone, /api/alpha/decisions, /v1/decisions), so Jev clients work by changing the base URL and the key (API, how it works).

What TypeSafe discloses (public web, read 2026-09-23):

  • "Transformer-based, but it is not a large language model", with a "new model architecture, parallel sampler": all outputs come from one pass.
  • Questions run "in parallel and in isolation against the same state". That is the shape of our shared-prefix tree.
  • Limits: 64K tokens per request; 32K for the state plus the longest question. Rate limit 250K tokens/s.
  • Training: "Reinforcement Learning for Calibrated Decisions (RLCD)", no details. Their benchmark's reference answer is the average of GPT-6 Astra and Fable 5.1.
  • Not disclosed: size, base model, data. They "cannot prove the price is unsubsidized".

Sources: typesafe.ai/blog/introducing-system-one-models-and-jev, docs.typesafe.ai/models.md, marktechpost.com/2026/09/19/typesafe-ai-releases-jev/.

What we measured about it:

result
accuracy eval2 97.2%, eval_llm 92.5%, dev benchmark 82.7% (GPT-6 Astra 85.8%)
weakest slices eval2: temporal 89.2, numeric 92.0, multilabel exact match 94.2; eval_llm: verify 86.7, multilabel exact match 81.3
latency flat 143–178 ms p50 from California, 8 → 4,096 tokens, 1 or 16 questions
marginal speed 132–137 ms fixed + 2.2–2.6 ms per 1,000 tokens ≈ 400K tokens/s
long texts reads the whole text: 97.2% on evidence at the end of 4K–17.6K-token texts
tokenizer its billed token count is 1.036× Qwen's, so probably not the Qwen tokenizer
price $0.042 per million input tokens; the whole dev benchmark cost $0.06
as an annotator agrees with authoring models on 93.0% of round-2 questions; worst on temporal

Our reading (2026-09-25 update: what Jev's behaviour implies and what to build next): the gap is mostly training, not architecture. 4B → 8B, a bigger adapter and stock → tree each moved the dev benchmark by ≤ 1.3 points, while 10K verified target-task questions moved eval2 by +5.5. Our default model, selfjev-4b, is now 1.4 points behind on eval2 (95.8), level on eval_llm (93.1, p = 0.52) and ahead on the dev benchmark (83.8). Jev's speed is mostly the hardware: on one H100 our Qwen3 4B tree is faster than Jev inside the machine in every cell but 4,096 tokens × 16 questions (2026-09-26, speed); Jev's per-token cost is still ≈ 6× lower than ours, so a smaller model or more GPUs per request, and the end-to-end difference is network distance. selfjev-4b's own serving engine is not timed on a GPU yet.

The open field and the shared yardsticks (survey 2026-09-30)

About 50 model cards read from HF other=classification (sorted by downloads, likes and trending, created since 2026-09-15), plus the benchmarks they cite. Nothing was run for the survey. Session: Claude competitors, JOURNAL 2026-09-30.

Shared yardsticks. These are the only places where our numbers and theirs can meet:

benchmark what size who runs it cited by
JevBench (Benchmark Heaven, MIT, not TypeSafe's) public easy/original/hard items; live board benchmarkheaven.com/jev-models public 231 (48/72/111); board v1.5.4 scores 1,624 per system, 720 sealed board: maintainers only; public-231: anyone, typesafe adapter on /v1/systemone ≈ 15 cards
LocalLLaMA/typed-decisions 4 synthetic workflows, one request per case; gold = a ≈4B teacher, ceiling 0.735 test 400 cases / 2,000 decisions anyone ≈ 10 cards
Decision Index 0.2.1 38 public benchmarks, chance-corrected balanced_skill ≈ 120K requests, rebuild ≈ 7 GB maintainer board; kit is open ≈ 6 cards
Nimble 13-subset suite ("S1Bench", PUBLIC_BENCHMARKS.md) human labels: VitaminC, MASSIVE en/de, BoolQ, SQuAD2, PAWS, MNLI, Civil Comments, Aegis2, HelpSteer2, SummEval ×2, PubMedQA 3,880 anyone (lev's levbench) lev, decider, Nimble
DecisionBench 1.0 (Hanno Labs) 43 tasks, up to 255 candidates 23,900 board + open runner imajev, Bosun, Winnow
Image JevBench v0.1.4 images 684 (228 public) maintainers board only

Overlap check (exact + 8-gram, data/all.jsonl.gz vs the benchmark states): JevBench public-231 0 / 231, typed-decisions test 0 / 400. We never trained on either. On the Nimble suite, MNLI's train split is in our hf_nli.

Measured head-to-head (2026-09-30): the same requests, on one L40S (protocol, recipes and caveats). Eight open models, each served with its card's recommended recipe, and selfjev-4b-vision, all asked exactly the questions Jev gets (scripts/eval/score_systemone.py); failed requests count as wrong. Public sets through their own harnesses. Generated by scripts/eval/competitors/matrix.py:

model size, base, licence eval2 s (1 L40S) eval2 eval_llm image test: held-out / trained-on datasets typed-decisions JevBench public-231 / hard-111 Nimble 13 macro
decider-4b 4.2B, Qwen3.5-4B-Base full FT, text, Apache-2.0 145 90.8 82.8 — 68.0 83.1 / 65.8 —
imajev-4b 4B, Qwen3.5-4B + LoRA r64, text + images, Apache-2.0 489 91.5 84.9 85.2 / 70.1 68.5 85.7 / 71.2 —
jpt-4b 4.5B, Qwen3.5-4B merged LoRA, text + images, CC-BY-NC-4.0 90 92.5 85.0 83.8 / 71.4 78.8 87.9 / 78.4 —
kev-4b 4B, Qwen3.5-4B-Base + LoRA r16 + head, text, Apache-2.0 109 88.4 74.7 — 67.0 75.8 / 54.1 —
laya 0.4B, ModernBERT-large encoder, text, Apache-2.0 23 45.4 46.4 — 36.0 — —
laya-long same, max_len 8192 / head 2048 108 46.9 45.6 — 36.0 — —
mica-4b 4.2B, Qwen3.5-4B merged LoRA (llama.cpp BF16), text, Apache-2.0 162 89.6 (98% answered) 84.1 (99% answered) — 68.0 82.7 / 64.0 —
openjev-27b-fp8 27B, Qwen3.8-27B FP8, text + images, CC-BY-NC-4.0 753 96.8 92.6 82.6 / 72.8 71.1 87.4 / 74.8 —
plumb-4b 4.2B, JevK5 (Qwen3.5-4B), text, Apache-2.0 471 93.4 84.1 — 61.4 89.6 / 80.2 —
selfjev-4b-vision 4B, Qwen3.5-4B + LoRA r64, text + images, Apache-2.0 code; Jev soft targets in training 100 94.7 90.7 85.1 / 94.0 66.1 83.5 / 66.7 74.8
model set ours only right model only right p
decider-4b eval2 122 43 5.9e-10
imajev-4b eval2 99 35 2.9e-08
jpt-4b eval2 81 37 6.3e-05
kev-4b eval2 153 28 4.7e-22
laya eval2 1001 18 6.8e-269
laya-long eval2 969 17 6e-261
mica-4b eval2 140 38 6.3e-15
openjev-27b-fp8 eval2 30 72 3.9e-05
plumb-4b eval2 79 52 0.023
decider-4b eval_llm 107 32 1.2e-10
imajev-4b eval_llm 88 33 5.9e-07
jpt-4b eval_llm 82 28 2.5e-07
kev-4b eval_llm 168 17 2.1e-32
laya eval_llm 441 22 2.1e-102
laya-long eval_llm 449 22 1.2e-104
mica-4b eval_llm 85 23 1.5e-09
openjev-27b-fp8 eval_llm 33 51 0.063
plumb-4b eval_llm 84 22 1e-09
imajev-4b eval_images_v1 346 53 8.2e-54
jpt-4b eval_images_v1 326 38 3.3e-58
openjev-27b-fp8 eval_images_v1 336 56 9e-50
  • Our frozen sets: selfjev-4b-vision is first among the open 4B models on eval2 and eval_llm; every paired test against a 4B favours it (closest: Plumb-4B on eval2, 79 vs 52 questions only one of the two gets right, p = 0.023). openjev (27B, non-commercial) beats it on eval2 (96.8, 30 vs 72, p = 4e-5) and is level on eval_llm (92.6, p = 0.063), 3× slower on the same GPU. Jev on the same requests: eval2 97.2, eval_llm 92.5. These sets are ours (same authors and judges as our training data), so the shared benchmarks below matter more for a public claim.
  • Through Jev's request shape we lose points against our own evaluation (eval2 94.7 vs 96.1, eval_llm 90.7 vs 92.5): multilabel becomes one yes/no per candidate (86.1 vs 90.8 on eval2). The native multi question is our edge.
  • On the shared public benchmarks we are mid-pack, not first. JevBench public-231 83.5 (zero-shot) vs Plumb 89.6, jpt-4b 87.9, openjev 87.4, imajev-4b 85.7, decider-4b 83.1, Mica 82.7, kev-4b 75.8 (Jev 86.6 on the board). typed-decisions 66.1: below openjev (71.1), imajev (68.5), Mica and decider (68.0), kev (67.0) and Jev (72.7), above Plumb (61.4); jpt-4b's 78.8 is in distribution (its card). Nimble 13 macro 74.8 vs Jev 76.0 and Nimble-9B 74.8 on their runs. Our weakest question type there is score (60.9).
  • Images: on the 4 datasets nobody trained on, a tie (85.1 vs imajev-4b 85.2, jpt-4b 83.8, openjev 82.6). Our 94.0 on the other 6 comes from fine-tuning on them.
  • Speed: second among the 4B models on this workload (eval2 in 100 s with selfjev 0.4.2, measured 2026-10-05; 166 s with 0.4.1 and 242 s before; jpt-4b 90, kev-4b 109, decider-4b 145, Mica 162, Plumb 471, imajev 489, openjev 753). End to end with 4 requests in flight, not a controlled latency benchmark (engine report).
  • Every card number we could reproduce matched (JevBench: decider, kev, Mica, Plumb, jpt; typed-decisions: Laya 36.0 vs 36.2), so the harnesses measure what the cards measure.

Accuracy matrix, published numbers only (%). B = run by the board's maintainers, S = self-reported by the model's author, M = measured by us on 2026-09-30 with the benchmark's own harness, † = the author used the public items for model selection or tuning, F = fitted on the benchmark's train split. JevBench public-231 totals come from the per-tier numbers on each card where the card gives no total.

model params images JevBench public-231 JevBench hard-111 JevBench board v1.5.4 (rank) Decision Index 0.2.1 typed-decisions Nimble 13 macro DecisionBench Image JevBench (rank / 50)
selfjev-4b-vision (ours) 4B yes 83.5 M 66.7 M not submitted not run 66.1 M 74.8 M dropped (too slow on many-option tasks, README) not submitted
Jev 1.13.0 (API) ? no 86.6 B 73.0 B 72.1 (#3) 57.91 B 72.7 76.0 S (Nimble) 72.0 B —
Cygnet (API) ? ? 87.9 S (basal) — 73.7 (#1) — — — — —
GLiDE (Fastino API) ? no — — not listed 64.81 S — — — —
Winnow-12B 12B ? 85.7 S 73.0 B 73.2 (#2) 50.02 B — — 76.7 B —
JevK5 v0.3 4B no 87.9 S 78.4 S 71.9 (#4) 38.81 B — — — —
Plumb-4B (JevK5-based) 4B no 89.6 S† 80.2 S† 71.6 (#5) — — — — —
decider-4b (v2 / v2.1) 4B no 83.5 B (v2) / 82.7 S 67.6 / 64.9 S 71.3 (#7) 40.70 B — 75.6 S — —
decider-2b (255K dl/30 d) 2B sibling 71.0 B 49.5 B 45.1 (#30) — — 70.6 S 61.4 B —
Wald-4B 4B no 87.9 S† 74.8 S† not listed 54.59 S (pending) — — — —
jpt-4b (NC licence) 4B yes 87.9 S 78.4 S not listed 43.04 B 79.6 S F — — 69.55 (#6)
jpt-9b (NC licence) 9B yes 85.3 S 73.0 S not listed 46.89 B 80.6 S F — — 65.82 (#12)
imajev-4b 4B yes — — #1 on v1.4.2.2 (67.37) — — — 79.7 B 76.39 (#1)
Mica-v0.1-4B 4B no 83.1 S† 64.9 S† not listed — — — — —
kev-4b 4B no 75.8 S / 66.2 B (older build) 54.1 S / 36.9 B 38.1 (#37) 34.64 B — — 65.2 B —
lev (interfaze-ai) 4B no — — not listed 38.54 B — 68.9 S (Jev 76.1, same harness) — —
Eikos-4B 4B no — 72.1 S not listed — — — — —
AutoJev-27B 27B yes 87.0 S (basal) 70.3 S (101 items) 19.5 (#52, cost) 56.40 B — — — 66.85 (#9)
openjev (27B, NC licence) 27B yes — — not listed — — — — —
Nimble-9B 9B no 79.7 B 62.2 B 31.8 (#40) — — 74.8 S — —
vjev-vision (distilled from Jev) 4B yes — — — — — — — 47.67 (#31)
Laya (the most liked, 4.6K) 0.4B no 58.4 B 35.1 B 0.0 (#93) 6.04 B 36.2 S (base) / 76.6 S F 62.5 B (6-subset) 39.2 B —

Eikos-4B was scored on eval2 on 2026-09-24 through our option mapping: 92.8 (reports/eikos_4b/eval2).

What the survey and the head-to-head say about our claims.

  • Architecture. The shared prefix is common now: Mica shares one prefill across questions, kev continues each question from the shared state, ArseneLupin has a shared_prefix mode, decider and Eikos lean on vLLM prefix caching. What remains ours: each candidate is scored from its own description inside one tree pass (no A–Z letter slot, no 26/52-option chunking) and multilabel is native. Most others read letter logits; several cap options at 16–26.
  • Text and images in one model is not unique: jpt-4b/9b, imajev-4b, openjev, vjev-vision, AutoJev-27B and decider-2b-vision take images too. imajev-4b leads Image JevBench (76.39). Our image test is mostly in distribution (JOURNAL 2026-09-30 02:05: no transfer to new image tasks); on held-out image datasets we tie imajev-4b (above). Image JevBench's public items are not downloadable, so only its maintainers can score us there.
  • Real data. Most cards report on their own sets or on public items they tuned against (†). Maintainer-run numbers (B) are rare and worth more: sealed accuracy on JevBench is far below public for everyone (Jev 36.7 sealed vs 86.6 public on v1.4.2.2).
  • Laya is the most liked but the weakest here: JevBench board #93, Decision Index 6.04, a ≈ 320-token state window.

Open "Jev-like" models (survey of Hugging Face model cards, 2026-09-24)

Nothing was downloaded or run for the survey (Eikos-4B was scored later, below); claims are each model's own, on its own benchmark, and not comparable with ours.

camp models notes
small encoders, 0.15–0.4B Laya (ModernBERT / mmBERT), open-jev-deberta-v3-large, rlcd-modernbert-151m (GLiClass), GLiNER2.5-Decide (DeBERTa-v3-large, labels and text in one bidirectional pass; JOURNAL 2026-10-04) advertise 33–46 ms; long texts truncated (GLiNER: 384-token chunks, logits max-pooled)
decoders with answer-token readout (mostly LoRA), 0.6–27B kev 0.5/0.8/4/9B, decider 0.8/2/4/35B-A3B, openjev, Bespoke-Nimble-9B, AutoJev-27B, Lumma-fev-0.6b, Eikos-4B mostly Qwen3.5 bases; same recipe as ours (LoRA, logit readout, no generation)
  • Their claims: AutoJev-27B 84.6 vs Jev 82.8; kev-4b beats Jev in distribution but trails out of domain (0.817 vs 0.857); kev-0.8b trails everywhere; decider-35b-a3b JevBench hard 0.676, decider-4b 0.541.
  • The same pattern as ours: sub-1B trails, 4B and up is where the quality is.
  • "JevBench" public items exist and several cards report on them: the only shared yardstick. Scoring our tree on it is an open idea.

Laya (reviewed at commit 970dc8c)

  • A bidirectional encoder (ModernBERT-large 421M, or mmBERT-base 322M multilingual), one sequence per question with every option and the state; a new 2-layer transformer head scores each option's [MASK]. Trained with a GRPO-style policy gradient on proper-scoring-rule rewards, which it calls RLCD.
  • Documented limits: the state is truncated to ≈ 320 tokens by default (≈ 768 multilingual, up to 8K opt-in), options share a 192–256-token budget, base checkpoints near chance zero-shot on its own set, over-confident before temperature fitting (ECE 0.466 → 0.081).
  • Its Jev latency figure (236–276 ms p50) is slower than we measured (143–178 ms).
  • Verdict: the faster and multilingual option (≈ 33 ms on a T4), not the more accurate one on long, trap-heavy texts. Our closest measured analogue, jina 0.6B listwise, scores 73.3 on eval2. Scoring Laya on eval2 is open (no API cost; a small GPU box, never the laptop).

Eikos-4B (caiovicentino1/Eikos-4B, MIT)

  • A full fine-tune of Qwen3.5-4B distilled from GLM-5.3-Flash on finance and rules data; options as letters, softmax over the letter logits.
  • vLLM ≥ 0.30 with --enable-prefix-caching --mamba-cache-mode all shares the state across questions (the card reports that vLLM 0.11 lost 3–6 points on batched long shared documents).
  • Own-harness claims: JevBench public hard 72.1 (Jev 73.0 on the official leaderboard), ECE 0.033.
  • Evidence that the Qwen3.5 base works for typed decisions. Zero-shot through our option mapping it scores 92.8 on eval2 (reports/eikos_4b/). Qwen3.5-4B has been the base of our best models since 2026-09-25, selfjev-4b included.

Qwen3.5 and Qwen3.8 as bases

  • Qwen3.8 has no small dense model: 27B (48 linear-attention + 16 full layers), a 180B MoE and a 2.4T MoE.
  • Qwen3.5 has 0.8/2/4/9/27B; the 4B has 32 layers (24 Gated DeltaNet + 8 full attention) and 262K positions. A tree mask cannot branch its linear-attention layers in one pass. First a forked native cache did it (challengers); now our Qwen3.5 tree (src/selfjev/engine/tree.py) runs those layers level by level from copied states, in training and serving (tree scorer).