Skip to content

Jev Models & Reimplementations

Training a decision head: pointer heads, slot heads, and frozen backbones

Pointer heads, slot heads, and frozen backbones: how open decision models are trained, what the adapters change, and what the cards leave out.
Published
Category
Jev Models & Reimplementations
Resources cited
8
Reading time
6 min
Tags#models#training#open-models#calibration

A decision head turns hidden states into probabilities over your options. The training recipe decides whether it learns a real decision boundary or the shape of the training set. Open checkpoints use three designs (pointer heads, fixed slot heads, and plain logit readout) over frozen, LoRA-adapted, or fully fine-tuned backbones.

Three head designs

A pointer head scores each option boundary token against a learned decide token, then softmaxes over the options in that question. Soro-Kev-4B is a clear implementation: a rank-16 LoRA (alpha 32) plus a pointer head on a frozen Qwen3-4B, served at NF4 in about 4,048 MB or fp16 in about 8,200 MB. Because the head scores the options you supply, it handles 1–255 candidates. Soro reports 89.00% zero-shot tool routing and 94.50% on human holdouts, but those are author-reported and training states were capped at 4,096 tokens even though the card advertises 32,768.

A slot head reserves a fixed number of output positions. The Train-Jev 4B LoRA and 27B LoRA use a 24-slot fp32 head initialised from the backbone's language-model head, with a rank-16 LoRA on Qwen3.5-4B and Qwen3.8-27B. Only the first 16 choice labels, A through P, are trained. A 40-option question is outside the head's training distribution even if the server accepts it.

Plain logit readout skips the head entirely. Releasing the Inner Jev reads answers from the letters A, B, C at the last token and finds open instruction-tuned models already competitive before training: Gemma 4 31B scores 79.6 on the 2,352-question OpenDecisions set against Jev's 80.1. Adding LoRA plus a decision head initialised from a slice of the language-model head moves it to 84.4 on OpenDecisions and 81.5 on JevBench v1.7, 4.4 Capability points above Jev.

A fourth variant is the encoder classifier. open-jev DeBERTa-v3-large reads the state and all questions in one pass and softmaxes within each question. It reports 0.854 in-domain accuracy with ECE 0.022 on 1,500 states and 3,508 questions, and 0.690 on 4,012 unseen question types: a clean in-domain boundary can still miss question structure out of distribution.

Frozen backbones, LoRA, or full training

The cheapest recipe freezes the backbone and trains only the head. Kev and Soro both do this, with LoRA on top in Soro's case. A 4B backbone in NF4 plus a small adapter fits a 24 GB card, and the head can be retrained without touching base weights. But the frozen representation sets the ceiling; if the decision needs knowledge the backbone lacks, the head cannot invent it.

LoRA sits in the middle. Train-Jev trains rank-16 adapters on attention, DeltaNet, and MLP projections, then adds the 24-slot head. The 4B runs on a 24 GB GPU at 43 ms p50 on an H20 and reports 0.647 PK accuracy, ECE 0.076, and a Decision Index of 40.4. The 27B needs an 80 GB GPU, runs at 82 ms p50, and reports 0.851 transfer accuracy, ECE 0.053, and a Decision Index of 54.6. Both trained for 5,123 steps at batch 128 with KL plus 0.5 times RPS on ratings, on a single seed.

Full training is rare, but FunDM shows a label-free alternative: train a small head to match a frozen language model's answer probabilities with KL divergence, using 24 of Qwen3-8B's 36 layers and skipping the LM head. The +1T variant reaches 75.0% mean accuracy over eight benchmarks against 75.7% for the full model, with 1.56–1.57 times batched vLLM throughput and about one-third lower peak GPU memory.

Jeva takes the architecture further: a shared encoder for the request and each option, symmetric aggregation for permutation-equivariant probabilities, explicit null detection, and cacheable option representations. It targets option order, missing answers, and candidate-set size, but the abstract names no benchmarks, baselines, or code release, so the claims are architectural rather than measured.

What the training data buys

The data determines whether the head learns the task or the label convention. open-jev uses public gold labels: Banking77, SST-5, and BoolQ, 18,000 states and 42,000 questions, one epoch in 229 seconds on one H100. It reaches 0.854 in-domain but 0.690 on unseen question types, with a 0.847 to 0.678 spread across three seeds.

Train-Jev uses synthetic teacher labels, buying coverage at the cost of fidelity. Both cards report calibration only in distribution, and the 27B card says the benchmark table is self-reported. Soro's training states were capped at 4,096 tokens, so the advertised 32,768-token context is a serving limit, not a validated training regime.

bit-jev-2b-distilled shows the data and license problem in one artifact. It distils Kev 9B candidate logits at temperature 2.0 into a BitNet b1.58 2B backbone over 3,144 steps and two epochs, then adds a float32 pointer head. The file is about 1.19 GB and runs on CPU, but the card publishes no accuracy, Brier, NLL, or ECE, and has no separate open-weight licence.

The recipe details that matter

ModelBackboneHeadTrainable partsReported resultMain caveat
Soro-Kev-4BQwen3-4BPointerRank-16 LoRA + head89.00% zero-shot routingSelf-reported; 4,096-token training
Train-Jev 4BQwen3.5-4B24-slot fp32Rank-16 LoRA + head0.647 PK, ECE 0.076Only A–P labels; one seed
Train-Jev 27BQwen3.8-27B24-slot fp32Rank-16 LoRA + head0.851 transfer, ECE 0.05380 GB GPU; one seed
open-jev DeBERTaDeBERTa-v3-largeEncoderFull encoder0.854 in-domain, 0.690 OOD512-token context; public gold
bit-jev 2BBitNet b1.58 2BPointerDistilled backbone + headNo accuracy reportedLicense chain unresolved
FunDMFrozen Qwen3-8BLabel-free headHead only75.0 vs 75.7 full modelSelf-reported; not a released checkpoint

Head precision is not a detail. Train-Jev keeps the head in fp32 and stores per-type temperatures in calibration.json; plain PEFT or Transformers loading applies the adapter but skips the head and temperatures. Soro keeps the pointer head separate from the NF4 backbone, and open-jev keeps the encoder in bf16. Loading only the adapter does not load the decision model.

Option count is the other detail. A 24-slot head trained on A–P will not generalise to 255 options, while a pointer head scores any option boundary you provide. For a large label space, head design matters more than backbone size; for a small stable set, a slot head is easier to calibrate.

Evaluation: don't stop at accuracy

The cards report accuracy because it is comparable, but the head's job is a distribution. Check in-distribution versus out-of-distribution accuracy: open-jev's 0.854 to 0.690 gap is the shape of the problem. Check calibration: Soro's learned temperature is 1.62 with a split-conformal quantile of 0.8066 at 90% coverage; Train-Jev's ECE is 0.076 at 4B and 0.053 at 27B in distribution; open-jev is over-confident by about 0.03 OOD. Check abstention: Soro's conformal set triggers EXECUTE for a singleton, ASK for two to eight, and abstention otherwise.

Pick a recipe by constraint

With 4 GB, accept the transfer penalty; Kev-0.8B's 0.697 transfer-v4 score is the honest baseline. With 24 GB, Soro-Kev-4B for tool routing or Train-Jev 4B for a general slot head are the best documented options. With 80 GB, Train-Jev 27B matches the official 27B on accuracy with lower calibration error, at the cost of a single-seed evidence base. On CPU, open-jev DeBERTa is the encoder path, with a 512-token limit and a real OOD gap.

The fine-tuning and calibration guide covers fitting the head to your labels, open reimplementations compares serving stacks, and exporting decision models covers GGUF and ONNX. Read the decision-head and encoder-backbone entries before choosing, and budget for fine-tuning as a repeated process.

From the Jev directory

The resources behind this article.

A pointer-network decision model from Keyush Nisar that reads one agent state document plus typed questions and returns calibrated tool-routing probabilities in a single forward pass, reporting 89.00% zero-shot tool routing.
Jev Models & Reimplementations#community#open-models#local
Community
A 24 GB-GPU alternative from the train-jev project: Qwen3.5-4B plus a rank-16 LoRA and 24-slot decision head scoring 0.647 PK accuracy, 40.4 Decision Index and 43 ms p50 latency, ahead of Kev-4B at the same size.
Jev Models & Reimplementations#community#open-models#local
Community
A LoRA plus 24-slot decision head over Qwen3.8-27B from Ming Xu's train-jev project: it serves TypeSafe's System One API with 0.851 Kev transfer-v4 accuracy and ECE 0.053, and needs an 80 GB GPU.
Jev Models & Reimplementations#community#open-models#local
Community
Mithril's open, Jev-shaped typed-decision model on DeBERTa-v3-large: choice up to 255 options, score and noul from one forward pass, 0.854 in-domain with ECE 0.022, trained on public gold labels only.
Jev Models & Reimplementations#community#open-models#local
Community
A CPU-first BitNet student: Microsoft's BitNet b1.58 2B quantized to an I2_S GGUF with a float32 pointer head, distilled from Kev 9B logits and run through the bit-jev Python package with no separate open-weight licence.
Jev Models & Reimplementations#community#open-models#local
Community
Shows that open instruction-tuned models already read decisions from answer-letter logits without training, and that LoRA fine-tuning with a decision head lifts them past Jev: Gemma 4 31B goes from 79.6 to 84.4 on the new 2,352-question OpenDecisions set and scores 81.5 on JevBench v1.7.
Jev Models & ReimplementationsArticle#community#research#arxiv
Community
Trains a small decision head label-free to recover about 99% of a frozen language model's multiple-choice accuracy using two-thirds of its transformer layers. Its +1T variant reaches 75.0% mean accuracy across eight benchmarks versus 75.7% for the full model, with higher batched vLLM throughput.
Jev Models & ReimplementationsArticle#community#research#arxiv
Introduces Jeva, a decision-native architecture that encodes the request and each option separately and scores options symmetrically. It targets null-awareness, permutation invariance, option scalability, and cacheability, reporting near-perfect null detection and no decision flips under tested permutations.
Jev Models & ReimplementationsArticle#community#research#arxiv
Community
Back to all articles

Related Jev articles

Three open families, three different bets on architecture, calibration, and size. How to compare their cards without confusing a clone with a rival.
Jev Models & Reimplementations#models#open-models#comparisons
Read article
What to verify before trusting an open checkpoint: provenance, context, calibration, license, and one reproduced number. A practical audit checklist.
Jev Models & Reimplementations#models#open-models#evals
Read article

From the Jev AI model community

Posts from builders shipping with Jev right now.

Follow @typesafeai