What’s on your mind today?
There is no language model in here
Every word on this site is chosen by a network of small, bounded decisions. Nothing in the system can generate text.
Jev is a decision model. You hand it some state and a set of questions, and it answers all of them at once with calibrated probabilities. It has exactly three kinds of question, and a reply is assembled out of nothing else:
Choice
Pick one of up to 255 labelled options. Returns a probability for every one."cat" 0.31
"dog" 0.18
"the" 0.07Score
Place something on a scale you define, two to ten levels.how long should
the reply be?
→ 1.0 of 2Noul
One statement, one probability that it holds."'cat' keeps this
grammatical"
→ 0.88A word is produced by sampling from a Choice over candidate words. Everything else in the architecture exists to make that one Choice a good one.
What happens when it writes one word
Each box is a batch of questions sent in a single request, so a 253-unit step is still only three to six round trips. The documented saving for batching rather than asking one at a time is about 12× cheaper and 10× faster.
Only the decoder picks a word. Everything upstream is deciding what kind of word should go there, and what the reply already means.
The versions
Each one is the same engine with more units, more state and more second-guessing. Nothing is trained — Jev is frozen. What changes between V0 and V5 is only the architecture around it. Every diagram below is live: the dots are the actual units that version runs, firing in the order it really fires them.
The word limit, and what it costs
The max words control next to the version picker is a ceiling, not a target. It is the point at which generation is cut off; the reply usually ends before reaching it, in one of two ways:
The decoder stops
Every candidate list includes an<end>
option. When that wins, the reply is finished — the network
decided it was done, nothing told it to stop.The plan asks for less
From V1 up, a Score unit decides at the start whether this deserves a short phrase, one sentence or two. Whichever is smaller — your ceiling or its answer — wins.It matters because a word is not a token, it is a whole round of the network. Every word costs two to six requests and anywhere from ten to several hundred answered questions, depending on the version. Eight words on V2 is about twenty requests; eight words on V5 also writes three complete drafts, judges them and repairs the winner. The first word is always produced, so no setting can give you an empty reply.
How a word is actually chosen
The decoder gets 255 slots and fills them in priority order:
1 · what fits
Words matching the role and inflection the syntax units settled on.2 · what was said
Words copied from your message and the reply so far. With a small vocabulary this is most of what keeps an answer on topic.3 · everything else
Frequent words, filling whatever budget is left, so a wrong guess upstream is still recoverable.4 · <end>
So the decoder
can decide the reply is finished instead of being told.Each option is described by naming it — "The next English word is 'cat' (noun, singular)". Describing them by part of speech instead makes every noun in the list read identically, and the decision becomes impossible.
Measuring it
Forty forced-choice tasks in five categories — grammar, agreement, memory, reasoning and long-range dependency. Each runs the full stack over a passage and then restricts the decoder to the listed options, so every version is scored the same way.
The sharp one is long-range: "The keys on the table in the kitchen ___ mine" punishes any network that agrees with the nearest noun instead of the head noun. Run it from a terminal:
python -m chatjevs bench --arch v2
python -m chatjevs compare --archs v0,v1,v2,v3 --limit 2Who made this
ChatJEVs is an independent experiment by Alex, built on TypeSafe's Jev decision API. It is not affiliated with, endorsed by, or produced by OpenAI or TypeSafe. The source is public — the engine, the unit tables and the benchmark are all a few hundred lines of Python.