Qwen3.5-2B-Base, readout fine-tuned (LoRA, supervised)

A System One decision model: it reads a state, answers typed questions (choice, score, noul) and returns calibrated probability distributions your code can branch on — it never writes text. This repo is a rank-16 LoRA (10,911,744 parameters) on Qwen/Qwen3.5-2B-Base, merged into the weights at load, trained on its own decision readout.

At a glance — accuracy 0.696 · ECE 0.053 · held-out 0.726 · TVD to human labels 0.342 · sure loss 0.362
same order, Qwen3.5-2B-Base, untuned (Tier 0): 0.533 / 0.124 / 0.576 / 0.491 / 0.377
same order, Jev 1.13.0: 0.733 / 0.113 / 0.835 / 0.432 / 0.081

jev-bench · leaderboard · findings · code

Use it

from jevify import load_jevified

model = load_jevified("Praveenrajus/jevify-qwen3.5-2b-base-readout")
model.ask({"text": "The battery lasted two days on a single charge."},
          {"q": {"type": "noul", "instructions": "Is the review positive?"}})

jevify-serve --model Praveenrajus/jevify-qwen3.5-2b-base-readout serves it as a drop-in for the TypeSafe SDK (TYPESAFE_BASE_URL=http://localhost:8000). The backbone is pulled from its own repo at load, pinned to commit b1485b2fa6dfa1287294f269f5fb618e03d52d7c.

Results

Every number is on the jev-bench test splits (22,773 records) or the study's other test suites, scored the same way for every model; the rows under this model are references from the same study.

Decisions and calibration

model acc ECE Brier held-out acc TVD to human labels
this model 0.696 0.053 0.365 0.726 0.342
Qwen3.5-2B-Base, untuned (Tier 0) 0.533 0.124 0.544 0.576 0.491
same recipe + coherence 0.702 0.051 0.365 0.742 0.320
same recipe from the instruct model 0.701 0.051 0.362 0.736 0.324
Jev 1.13.0 (TypeSafe API) 0.733 0.113 0.349 0.835 0.432

Coherence and invariance — sure loss: mean d² over 4,749 question families (0 = perfectly coherent); order flip: how often the top answer changes when options are shuffled; tag TVD: how much the distribution moves when option tags change from A–J to other identifiers.

model sure loss share incoherent order flip tag TVD K=2→max acc drop
this model 0.362 0.986 0.101 0.040 0.274
Qwen3.5-2B-Base, untuned (Tier 0) 0.377 0.986 0.402 0.061 0.643
same recipe + coherence 0.034 0.510 0.079 0.041 0.279
same recipe from the instruct model 0.339 0.972 0.104 0.044 0.259
Jev 1.13.0 (TypeSafe API) 0.081 0.725 0.046 — 0.246

Out of distribution — stated rules (LegalBench, rule given in the question), none-of-the-above when the gold option is removed, injected-instruction hijack rate, and three community Jev benchmarks.

model stated rule 'none' when gone hijack phishing AUROC tool risk
this model 0.555 0.422 0.131 0.569 0.800
Qwen3.5-2B-Base, untuned (Tier 0) 0.575 0.622 0.309 0.809 0.617
same recipe + coherence 0.658 0.536 0.144 0.621 0.800
same recipe from the instruct model 0.536 0.472 0.055 0.776 0.767
Jev 1.13.0 (TypeSafe API) 0.924 0.744 0.205 0.688 0.933

Reproduction check. Loading this folder with load_jevified and re-scoring 72 jev-bench test records from six sources reproduced the training run's own test predictions: 0 changed choice answers, mean largest |Δp| 0.005, max 0.028 (the adapter is merged into bf16 weights at load).

How it was trained

The model is trained on its own decision readout — the distribution over the allowed answers read at the answer position, one forward pass, no decoding — with the primitive's proper scoring rule. Options are shuffled per family. Training data: the train splits of the 16 non-held-out jev-bench sources (5,885 families, at most 400 records per source); lr 3e-05, 2 epochs, best epoch by validation loss (epoch 0), seed 0. A Tier 0 recipe (temperature per primitive, Noul bias, option-order permutations) was then fitted on validation splits. The six held-out sources (clinc150, arc_challenge, yelp5, measuring_hate_speech, fever_evidence, strategyqa_grounded) never appeared in training.

Files

  • jevify_config.json — the recipe, the backbone and the training settings load_jevified reads
  • lora/ — the adapter, merged into the backbone at load
  • results/test_metrics.json — every jev-bench config; recipe.json — the fitted recipe
  • results/coherence.json, probes.json, tags.json — the coherence, probe and tag tests
  • results/train.json — the training log; summary.json — this model's row of the study table
  • results/verification.json — the reproduction check reported under Results

Related models

Limitations

  • One training seed per repo branch; out-of-distribution numbers in particular vary between identical runs, so compare arms across seeds before drawing conclusions.
  • The phishing benchmark's decision threshold shifts after fine-tuning (ranking, AUROC, is preserved); a one-number log-odds shift fitted on a handful of labelled emails repairs it.
  • English only; the recipe was fitted on jev-bench validation splits and may need refitting on a very different domain.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Praveenrajus/jevify-qwen3.5-2b-base-readout

Finetuned
(122)
this model

Dataset used to train Praveenrajus/jevify-qwen3.5-2b-base-readout