Skip to page content
SAVRN
Search Plan a project

Open-weight model

jev-gate-student-b

by Will Cheung SargeDev/jev-gate-student-b

jev-gate-student-b is an open-weight model from Will Cheung, released under Apache License 2.0. Its published files total 15.8 MB.

A LoRA adapter (r=16, α=32, on qproj/vproj) on Qwen/Qwen2.5-0.5B-Instruct, distilled from the Jev typed-judgment API into a compact local judge for agent-memory gating.

Parameters—
Context—
Weights4.3 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Model Card

By Will Cheung, published under apache-2.0, revision 072ae95fec63.

A LoRA adapter (r=16, α=32, on qproj/vproj) on Qwen/Qwen2.5-0.5B-Instruct, distilled from the Jev typed-judgment API into a compact local judge for agent-memory gating. What it does: given a query and a candidate memory passage, outputs P(relevant) as the calibrated yes probability read from the final-token logits of yes vs no. Used to filter which vector-recalled memories get injected into agent context (vector recall → cross-encoder band gate → this judge for gray-band cases). Training: LoRA, 1 epoch, LR 1e-4, on rows sampled from SargeDev/jev-distill-corpus — paired relevance judgments (Jev graded 0–7 expected-value scores + binary labels) distilled from typed judgment calls by a larger…

Read Will Cheung's full model card

Jev-Gate Student B — LoRA Memory-Relevance Judge

A LoRA adapter (r=16, α=32, on q_proj/v_proj) on Qwen/Qwen2.5-0.5B-Instruct, distilled from the Jev typed-judgment API into a compact local judge for agent-memory gating.

What it does: given a query and a candidate memory passage, outputs P(relevant) as the calibrated yes probability read from the final-token logits of yes vs no. Used to filter which vector-recalled memories get injected into agent context (vector recall → cross-encoder band gate → this judge for gray-band cases).

Training: LoRA, 1 epoch, LR 1e-4, on rows sampled from SargeDev/jev-distill-corpus — paired relevance judgments (Jev graded 0–7 expected-value scores + binary labels) distilled from typed judgment calls by a larger teacher model. Prompt format:

Memory: {passage ≤600 chars}
Query: {query}
Question: Is this memory relevant for answering the query? Answer yes or no with confidence.

Full 10k Held-Out Benchmark (Sep 20, 2026)

A 10,000-row held-out test set (test_10k.jsonl, sampled from SargeDev/jev-distill-corpus v2, seed 42, hard-disjoint from all 142,909 train/dev/test rows by (query, text[:600]) key). Gold labels = 32B teacher scores rescaled /7. All three judges scored with the identical prompt above, yes/no logit softmax.

Judge MAE Pearson r Binary agree @0.5 Gray-band MAE (n=1,669) Latency
Jev 1.13 (API, OpenRouter) 0.187 0.787 84.4% 0.205 ~1,007 ms
Student B (this adapter, local) 0.219 0.709 81.7% 0.275 23 ms (batch-32, RTX 3060)
Vanilla Qwen2.5-0.5B-Instruct 0.498 −0.005 44.4% 0.329 22 ms

Distillation fidelity (the key number)

Student B vs its own teacher (Jev 1.13): 86.4% agreement, Pearson r = 0.824, MAE 0.144 across all 10k rows. The 1.1M-parameter LoRA reproduces a production System One model's judgments within ~3 points of binary agreement, at 43× lower latency and zero API cost.

Where they disagree (1,364 items), Jev is right vs gold 60% of the time — a real but modest teacher edge. The gray band (teacher y ∈ [0.3, 0.7]) is where both models live in production (the band gate escalates only these cases); student gray-band MAE 0.275 vs teacher 0.205.

Small test slices (earlier evals)

Eval Student B Vanilla 0.5B Student A
Original test (5,605) 0.148 / 0.836 / 86.0% 0.443 / −0.007 / 51.8% 0.112 / 0.886 / 87.6%
Held-out (n=60) 0.187 / 0.791 / 90.0% 0.536 / −0.067 / 38.3% 0.273 / 0.445 / 60.0%

Takeaways

  1. Distillation works: the LoRA captures most of the teacher's judgment; the win is from distillation, not model size (vanilla 1.5B barely helps).
  2. Gray band is the battleground: both models are most uncertain there; that's exactly where the cascade routes escalation.
  3. Latency economics: local student ≈ sub-second for a 25-candidate cascade judgment (batched); API teacher ≈ 1 s/item — fine for referee calls, wrong for every-candidate scoring.
  4. 10k-set construction: seeded sample from fresh (never-trained) manifest rows, disjoint by content key — reproducible via seed 42.

How the pipeline works (production)

Qdrant vector recall (25 candidates)
  → bge-reranker-base int8 ONNX cross-encoder (local band gate: keep ≥0.08 / drop ≤0.01)
  → gray band [0.01, 0.08] → Student B (this adapter) judges locally
  → final TOP-K injection (default 8)
Fail-open everywhere: any stage error → keep everything (no forgetting).

Every decision is logged with (vector_score, local_score, student_score, verdict) to a JSONL log — that log is the retraining corpus for the next student iteration (see v2 dataset below).

What's published

Repo Contents
SargeDev/jev-gate-student-b This adapter (adapter_config.json + adapter_model.safetensors + tokenizer)
SargeDev/jev-distill-corpus 148,160 rows of paired relevance judgments (teacher-scored)

Future directions

  1. Expand the training corpus: the current training set was 60k rows from the pre-production corpus; future runs can mine production cascade logs (strictly credential-scrubbed, with embedded API-key rows removed) for real agent-query distribution before any publish.
  2. Scale the student: the same recipe on Qwen2.5-1.5B-Instruct (LoRA r=16–32) should close most of the remaining ~3-point gap to Jev; a Qwen3-4B / Qwen3-8B LoRA is the next rung — expect MAE < 0.15 and agreement > 90% if the trend holds. All still local-friendly (1.5B ≈ 3 GB bf16).
  3. Hybrid referee cascade: keep Student B local for the gray band; route only true near-ties (student score ∈ [0.45, 0.55]) to the Jev API for a final call. Expected: teacher accuracy at ~2% of the call volume.
  4. Multi-judge ensemble: Jev API + Student B + bge-reranker — average scores for the injected set, use disagreement as an uncertainty signal.
  5. Merge to GGUF: merge the LoRA into base weights for llama.cpp single-file serving (removes PeftModel dependency; warm path already ~1 s, GGUF would make it ~50 ms on CPU-only hosts).

License

Apache-2.0 (matches base model).

Identity and Version

Repository
SargeDev/jev-gate-student-b
Publisher
Will Cheung
Task
Not stated by the source
Modality
Other
Library
Not stated by the source
Parameters
Not stated by the source
Languages
Not stated by the source
Revision
072ae95fec63786f2276d8319acabd9715e0e6a8
First published
2026-09-21
Last updated
2026-09-21

Files and Weights

7 files, 15.8 MB in total. The weights are 1 file totalling 4.3 MB in safetensors.

Weights1 file · 4.3 MB
Configuration1 file · 1.1 KB
Tokenizer2 files · 11.4 MB
Documentation1 file · 5.6 KB
Other1 file · 2.6 KB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
adapter_model.safetensorsWeights4.3 MB a28284fb4aec
adapter_config.jsonConfiguration1.1 KB —
README.mdDocumentation5.6 KB —
chat_template.jinjaOther2.6 KB —
.gitattributesRepository1.6 KB —
tokenizer.jsonTokenizer11.4 MB 059508c55ae7
tokenizer_config.jsonTokenizer724 B —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
4.3 MB
Download from Will Cheung

Released by Will Cheung through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published4.3 MB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About jev-gate-student-b

Can I use jev-gate-student-b commercially?

Yes. jev-gate-student-b is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.