jevchat
Experiment that deliberately misuses Jev as a text generator by asking which symbol comes next and sampling from the returned distribution.
Overview
jevchat turns Jev, a model that does not generate text, into a chat model as an experiment. At every step it asks Jev one question: given the user's question and the reply so far, which symbol comes next? The options are an alphabet plus a stop option; Jev returns a probability for each, the sampler draws the next symbol, and the loop repeats until stop is drawn. The author calls the idea fun, the cost somewhat impractical and the results hilarious, and notes the implementation was accelerated with Claude.
Strategies include a single choice over the whole alphabet (with shuffling to cancel position bias, or an ensemble of reorderings), bisecting the sorted alphabet with earlier/later yes-no questions, bucketing across many questions with an other escape (the only way past 255 symbols), and a refine strategy that rescans winners. Alphabets range from a to z up to word and BPE token lists, options can be bare symbols or full hypothesis texts, and beam search is supported. A bench command compares modes and a live panel shows symbols per second and the top-scored symbols. Listings note a Hacker News thread with 173 points and 49 comments framing it as a way to find where typed decisions stop being useful.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Given the question and reply so far, which symbol comes next (or STOP)? | — |
| Yes / no | Is the next symbol earlier or later in the sorted alphabet? (bisect strategy) | — |
How it works
- Present the conversation and partial reply as state
- Ask for the next symbol over an alphabet with a stop option
- Sample from the returned distribution
- Append and repeat until stop
Strengths
- Illuminates position bias and option-count limits
- Several strategies to exceed 255 options
- Live readout of distributions
Caveats
- Deliberately impractical and costly
- Output quality is poor by design
Getting started
poetry install, put your key in .env, then `poetry run jevchat`.At a glance
- Type
- Project
- Status
- research
- Language
- Python
- Runtime
- CLI
- Has code
- yes
Use cases and integrations
How curated lists describe it
Repo + HN thread (173 points, 49 comments): deliberately misuses Jev as a generator to locate where the typed-decision model stops being useful.
yibie/awesome-jevTurns a decision model into a chat model by asking which symbol comes next, then sampling from the returned distribution.
MrJev/awesome-jev
Frequently asked questions
Is this a practical chat model?
No, the author describes it as fun, impractical in cost and hilarious in output.
How does it get past 255 options?
The buckets strategy splits the alphabet across many questions, each with an other escape.
Why do it?
To probe where a typed decision model stops being useful.
Related projects
ChatGPT-style web chat where every word of every reply is a Jev multiple-choice decision over a ~1,800-word vocabulary plus END.
ProjectprototypeTypeScriptChat client that makes Jev write by asking Next word? over a 20,000-word dictionary in 255-word buckets plus a run-off.
ProjectresearchPythonSteve Krouse's post launching Jev Typewriter, a playable demo built on 16 Jev judgments, with a video.
DiscussiondiscussionShow HN thread for jev-bisect, a pip package that finds answers with Jev by bisection search over options or ranges.
DiscussiondiscussionPythonToy chat that makes Jev talk by repeatedly choosing its next word from a tiny caveman vocabulary.
ProjectprototypeTypeScriptLocal browser app that turns Jev's per-pixel colour probability distributions into textured paintings.
Browser extensionprototypeJavaScript