open-jev / PROJECT STORY
A project in the making · Open research notes

Open-JevHow it was built

Starting with a Jev launch post and a few demos, we turned the idea of small models making decisions directly into an open project that can be trained, inspected, evaluated, and reproduced. This page traces its origins, design choices, and the questions guiding the next iteration.

Shared context, candidate scores, and decision probabilities CONTEXT → CANDIDATES → DECISION Context + question Candidate ACandidate BCandidate C score s₁score s₂score s₃ Normalize to probabilitiesp₁ + p₂ + p₃ = 1
The idea: put the answer space in the input,
so one scorer can handle different decisions.
2B / 9B / 27BLoRA, decision heads, and calibration; 27B is v1.1
3 interfacesChoice · Noul · Score
231 × 6Six public JevBench runs, all completed and audited
A launch post becomes a research question

What if a model returned decision probabilities directly?

The initial goal was straightforward: after seeing the Jev launch, jevinci, and community game demos, build an open version, starting with Qwen at 2B, 9B, and 27B.

The demos spanned customer support, games, drawing, and agent workflows. They shared a structure: provide the environment state, ask a specific question, and choose from a finite set of actions or levels. Following that structure, we broke each scenario into context, question, candidates, and reference criteria, then connected data generation, training, serving, and replay.

Can the same model give useful probabilities
for what to choose next across different domains?

The earliest repository records established typed-decision training and calibration, then added customer support flows, replayable Doom trajectories, Wiki navigation, and local game and workflow control. From the start, each expansion included checks on data splits, input lengths, and checkpoint identity.

Open-Jev is an independent implementation inspired by Jev. Jev has not published its private RLCD method, architecture, or training data, so this project does not claim to reproduce its internal algorithm or advertised speedups.

Put candidates in the input,
share the scoring head across domains

Customer support might choose between refund, replacement, and escalation; a game might choose left, right, or fire. The candidate set can change without adding a new classification head. Each model size uses one LoRA adapter and one linear head that outputs a scalar; different candidate descriptions produce different representations through the shared backbone.

DYNAMIC CANDIDATES

Choose from the current candidates

Each candidate receives a score, normalized within the same question. Candidates can be actions, documents, tools, or other explicit options.

Input State + question + candidates A/B/C
Output Candidate probabilities and selected candidate
p = softmax([s₁, s₂, s₃] / T)

During training, sources are converted to a common decision-row format while retaining their candidates and target distributions, then mixed and shuffled. Each row computes its loss only over its own candidate set. The first full training used NLL plus a Brier term, followed by temperature fitting on a separate calibration split. Test labels are not used for optimization.

Compute the shared prefix once?Experimental

The implementation reuses the request and question token prefix, branching at the candidates. Qwen’s hybrid attention also requires isolated KV, convolution, and recurrent states. In H100 checks, 11 workloads were tested and 9 exceeded the preset probability-error threshold. Although the selected decisions agreed, caching remains disabled by default.

Mechanism and limits: Multidomain training notes · Prefix reuse and numerical checks

What data does it take to support a scenario?

A callable interface is only the starting point. Scenarios need to become training and evaluation units with labels, provenance, splits, and inspectable failures.

The first round prepared tasks around customer support, Doom, and Wiki demos, then added workflows, Snake, tic-tac-toe, runner and platformer games, drawing geometry, and independent reasoning controls. Later expansion covered browser and drone actions, citations, entities, amounts, contact details, context retention, retrieval, and multilingual email handling.

RELEASE-V2 / TRAINED80,816

Training rows per released model

The 2B / 9B models each completed one full training pass. The dataset contains 115,821 rows across all splits.

EXPANSION / PREPARED408,884

Broader prepared data inventory

25 task-source identifiers. Prepared data does not mean the released models have learned those tasks.

HARD V2 / NEW TRAINING MIX148,639

Rows selected for the new training run

New community controls + WANLI + capped replay of earlier tasks, with separate evaluation splits.

Group by source and scenario first

Keep the same document, trajectory, or counterfactual family in one split to avoid mistaking near-duplicates for generalization.

Give the model only the intended inputs

The model receives state, question, kind, and options; labels, provenance, oracle, and audit fields stay outside.

Separate row counts from independent samples

One scenario can produce multiple questions, pixels, or candidate views. Row counts do not directly represent independent documents or game episodes.

The original 2B / 9B models each completed 26,452 test + OOD evaluations. Hard-label test accuracy was 94.71% / 97.54%, and OOD accuracy was 86.02% / 91.97%. These figures describe the release-v2 holdouts at the time; they do not replace the external JevBench results below.

Make the research process open to inspection

The code went into a public repository, data and 2B / 9B model components went to Hugging Face, and the project website brought together results, methods, and videos. Model packages contain LoRA adapters, decision heads, and calibration parameters; running them still requires the pinned Qwen base model.

Customer support and ticketsSafety and agent trajectoriesInvoices and extractionGame decisionsProbabilistic drawingBrowser actionsRetrieval and RAGMultilingual email

Show game demos as complete episodes

Open the video gallery ↗

The demos moved from dense overviews to continuous sequences of saved game states and final goals. The graphics below illustrate this chapter; the actual videos and evidence are in the gallery.

Doom / ViZDoom

A complete replay of 11 saved decisions, with observations, rewards, and the terminal state checked in the native engine, recording 1 kill.

T-Rex runner

A continuous episode reaching the finish; the selected replay avoids all 12 obstacles.

Wiki navigation

Following the saved states and actions, two consecutive link choices reach the target page.

Working interface≠Correct snapshot decision≠Full-task success rate

These are verified successful episodes from an early pilot, not game win rates for the later fully trained checkpoints. The public gallery selects successful replays and clearly labels interface walkthroughs; evaluation reports retain failure records. Browser and drone snapshot decisions are also recorded separately from full-task success. Playback duration is not inference latency.

Published project and comparison thread ↗

Hard external tasks clarify the next step

We first compared quality and latency on fixed workloads, then added every available public JevBench task. The results show that small open models can already handle many decisions, while harder reasoning still reveals clear gaps.

JevBench public subset · All six runs completed and audited72 original + 48 easy + 111 hard = 231
ModelOverall correct / 231Overall accuracyHard correct / 111Hard accuracy
Open-Jev-2BReleased checkpoint150 / 23164.94%46 / 11141.44%
Open-Jev-9BReleased checkpoint179 / 23177.49%66 / 11159.46%
Open-Jev 27B v1.1Newly trained, independently audited checkpoint197 / 23185.28%80 / 11172.07%
Jev 1.13.0Native probability API200 / 23186.58%81 / 11172.97%
GPT-5.6 Lunareasoning: none206 / 23189.18%89 / 11180.18%
GPT-6 Astrareasoning: low231 / 231100.00%111 / 111100.00%

Scroll horizontally on narrow screens. These results cover 231 public tasks, not the full 534-task benchmark. Open-Jev and Jev return native probabilities; GPT reports probabilities in constrained JSON. Across the 139 Choice tasks, 119 have different candidate orders between the two upstream adapter types. The tasks and scoring protocol are shared, but candidate order and request bytes are not identical.

Why examine Hard separately?

The Open-Jev-2B / Open-Jev-9B models score 46 / 111 and 66 / 111 on Hard; 27B v1.1 reaches 80 / 111. 27B scores 197 / 231 overall, still trailing Jev by 3 tasks overall and 1 on Hard. Model size, data, and prior training all changed, so the difference cannot be attributed to the new data alone.

How were the results verified?

All six runs completed 231 requests each. The audit replayed raw responses, request records, and scoring, and verified model identity. Jev had 1 vector requiring the rounding normalization allowed upstream; the other five runs passed strict probability checks.

Efficiency also depends on the workload

The following comes from separate repeated latency experiments: full-response P50 in ms. Each path had 3 warmup requests and 20 measured requests, at concurrency 1.

Support request · 8 Noul questions

Deployed latency for short decisions

Open 2B
85
Jev
295
Luna
918
Astra
1,938

1,024 state tokens · 32 candidates

Deployed latency with more candidates

Open 2B
1,016
Jev
301
Luna
690
Astra
1,388

In these latency charts, 2B runs on one local H100 over loopback HTTP; the other models use hosted HTTPS APIs, so hardware and networks differ. The new 27B JevBench run executed directly across four GPUs on a shared machine. Its timing is excluded from these charts and cannot be interpreted as single-GPU or HTTP/API latency. The 85 ms result does not generalize to every task or establish a speedup on identical hardware. These repeated latency experiments are recorded separately from single-request timings on heterogeneous JevBench tasks. Prefix caching was disabled in all of these Open-Jev comparisons.

More on scoring and probabilities

The evaluation uses a pinned upstream JevBench scorer: strict probability-sum tolerance is 0.001 and rounding tolerance is 0.02; ties at the maximum are resolved by label lexicographic order. Score accuracy compares the argmax level with the reference level, while expected-value ordinal MAE is reported separately. Calibration metrics for native and GPT-reported probabilities describe only the distributions returned under this protocol. The public report retains the full method, subset results, and audit links.

Bring harder scenarios into the next training round

The next round expanded data around verified community use cases: customer support, constrained retrieval, contract clauses, RAG evidence, browsers and tools, shell-history selection, game planning, and explicit rubric judgments. The focus was on conditions that change the decision, rather than simply replacing names or candidates.

Combined conditionsNegation and exceptionsRecency and conflictsNear-miss hard negativesMulti-hop evidenceMissing evidence and abstention

The community control set adds 51,200 rows: 8 domains and 80 original policy families, drawn from 6,400 base scenarios and 25,600 distinct contexts. Each counterfactual changes just one visible fact and changes the decision. An independent auditor directly parsed the visible rules and checked every label and all 19,200 counterfactual edges.

To complement the structured rule data, we added natural-language inference from WANLI: original premises, hypotheses, and human-reviewed labels were retained and converted into entailment, contradiction, and unknown candidates. The conversion retained 101,207 rows, with 82,045 used for training; connected seed / premise groups from the official test set were isolated in advance.

New community controls
30,720

Whole families held out; 51,200 new rows across all splits.

WANLI inference
82,045

An English natural-language source, retaining CC BY 4.0 attribution.

Earlier-task replay
35,874

Up to 1,500 training rows from each earlier source to retain existing capabilities.

Training totals 148,639 rows; with each source’s holdouts retained, the full mixture contains 328,672 rows across all splits. Original community data is CC0, WANLI is CC BY 4.0, and the mixture retains source licenses. Different task views in the data remain correlated. Public v1.1 is a redistributable projection of 326,619 rows, including 147,139 training rows. It excludes 2,053 Wiki rows and is not the complete training or evaluation corpus. TypeSafe short questions retain their source-license limitations.

The new community data uses explicit rules and controlled structured attributes. It is not equivalent to CUAD annotations, natural contract review, human preference data, or real racing/UT99 trajectories. The Chinese, Japanese, and Korean portions use mixed-language questions with English rules. This data trains new decision patterns; the independent JevBench results above and the full internal evaluation below record the final outcomes.

More directions are being prepared: Verified community directions also include skills / model routing, SQL auditing, CMS multilabel classification, and deciding whether approval is needed. Data and held-out evaluations are prepared for these directions, but they still require separate training and audits. They are not verified v1.1 capabilities.

27B v1.1: full evaluation and independent audit complete

All 127,787 Test / OOD predictions are complete, with zero failures, omissions, or duplicates. All six execution groups exited successfully, and cleanup of their GPU processes was confirmed. Independently recomputed checks verified the fully captured raw bytes, model identity, and metrics.

Audit passed
Final training steps
37,160 steps
Original training set
148,639 rows
Full internal evaluation
127,787 rows
External public JevBench
197 / 231

Uses the pinned Qwen3.8-27B base, LoRA rank 8, an FP32 decision head, and the saved temperature; the package does not contain merged base weights. New 2B training was stopped and new 9B training was not started; neither has v1.1 results. The online classification workbench continues to use the Open-Jev-2B.

Complete original and expanded holdouts

Correct hard labels / total hard labels (accuracy); the original sets are contained in the expanded sets.
ModelOld TestOld OODExpanded TestExpanded OOD
Open-Jev-2B9,515 / 10,046
94.71%
13,287 / 15,446
86.02%
Not evaluatedNot evaluated
Open-Jev-9B9,799 / 10,046
97.54%
14,205 / 15,446
91.97%
Not evaluatedNot evaluated
27B v1.19,876 / 10,046
98.31%
14,825 / 15,446
95.98%
41,357 / 42,789
96.65%
80,934 / 83,924
96.44%

Old Test / OOD contain 10,532 / 15,920 rows in full; Expanded Test / OOD contain 43,301 / 84,486. Their respective 486 / 474 / 512 / 562 soft-label rows are excluded from hard accuracy but included in probability metrics. The expanded sets preserve the original rows’ inputs, candidate order, and labels exactly. The four columns overlap and must not be added together. Internal evaluation uses a maximum length of 4,096 with no truncation; external JevBench uses a separate 16,384-token protocol.

JevBench and JF100 remain evaluation-only and were not used as source material for this round’s generators. Lexical overlap checks found no matches, but cannot rule out semantic paraphrases or exposure during base-model pretraining. Comparing 27B v1.1 with the Open-Jev-9B changes both model size and earlier training history, so differences cannot be attributed to this new data alone.

The next community dataset is frozen and has passed complete tokenizer checks, but these preparations have no new model results yet. Real-intent routing, executable SQL, approval, and CMS tasks contribute 129,288 new decisions, including 74,921 training rows. With 21,928 earlier-task replay rows, the training set totals 96,849 rows. A separate 1,280-row focused test / OOD evaluation covers 840 original groups, isolated from training, calibration, and validation. Holdouts built from the same synthetic rules may still be optimistic and should be assessed alongside external JevBench results. Internal evaluation method

Find questions in the demos,
then answer them with open data, models, and evidence.

The full internal and public JevBench results for 27B v1.1 are now available for inspection. Next comes continued testing through real use and new independent evaluations.