Decoder experiments #
Local experiments on 2026-10-20. Nothing from these runs was published to Bluesky.
The conservative dialogue variant was initially selected for production.
Production now uses delayed stopping with saved complete endings, described below.
experiments/decoder.py preserves the candidate implementations.
The target is Cee's awkward but connected conversation, judged against the original screenshot and tournament description. No celebrity, persona, style imitation, example assistant replies, or prescribed filler words were supplied to Jev. All word-selection probabilities and judgments come from Jev 1.13.0; the code controls the vocabulary, scoring, sampling, and stopping.
Findings #
- Broad weighted sampling sometimes selects a low-ranked word early, after which subsequent decisions follow the bad prefix. Greedy selection alone did not fix the problem; it also repeated punctuation and phrases.
- Explicit final choices containing the literal next word and the resulting reply performed better in these samples than bare word labels.
- Word-only candidates remove the punctuation loops we introduced. Cee's visible conversation contains no sentence punctuation, although its exact vocabulary and stopping implementation remain unknown.
- A plain Human/Jev dialogue without a trailing blank, sampling from the top three weighted finalists, and completion checks at every word produced six naturally stopped replies in six fresh single-turn cases. They were mostly short. This is a small qualitative sample, not a reliable success-rate estimate; the changes were combined, so it does not establish each one's independent effect.
- Delaying eligible stops with a 35% stopping chance allowed longer continuations. In four three-turn conversations, nine turns ended and three hit limits. A weak answer can feed a repetition loop in the following turn. The experiment retained limit-stopped previews in history; the production publisher would withhold them, so this is not a replay of the public bot's exact behavior.
The experimental repetition penalty is 0.85 ** count over the preceding 24
words. The main tournament remains 5,000 dictionary words plus recent-message
words, groups of 250, four finalists per group, then vote times naturalness
squared times the repetition penalty. Completion requires a completion judgment
above 0.5 and an unfinished-phrase judgment below 0.5. These are reconstruction
choices, not confirmed Cee parameters. The stronger 0.75 completion threshold and
an eight-word minimum both caused some replies to continue past viable endings.
Single-turn checks #
These are all six fresh prompts/seeds for the no-blank dialogue candidate.
Seed 1 — What kind of music do you like, and why?
i like rock
Stop: end.
Seed 7 — What kind of music do you like, and why?
i like pop because it's fun
Stop: end.
Seed 1 — I tried to bake bread and it came out like a brick. Any thoughts?
yeah depends on what bread type
Stop: end.
Seed 7 — I tried to bake bread and it came out like a brick. Any thoughts?
oh well that's bad
Stop: end.
Seed 1 — What would be your ideal Saturday?
i'd do nothing
Stop: end.
Seed 7 — What would be your ideal Saturday?
i'd like to relax
Stop: end.
Longer conversations #
All four conversations follow. Repetition failures are preserved verbatim.
bread-23 #
Human: I tried to bake bread and it came out like a brick. Any thoughts?
Jev: oh well tough luck man
Stop: end.
Human: I was going for sourdough. Now it could hold a door open.
Jev: lmao brick
Stop: end.
Human: Okay, give me a pep talk before I try again.
Jev: well just do it
Stop: end.
bread-7 #
Human: I tried to bake bread and it came out like a brick. Any thoughts?
Jev: yeah there's a thing that is called recipe lmao
Stop: end.
Human: I was going for sourdough. Now it could hold a door open.
Jev: lmao
Stop: end.
Human: Okay, give me a pep talk before I try again.
Jev: lmao lmao haha haha haha ha ha haha haha haha haha haha ha ha haha lmao lmao lmao lmao lmao lmao lmao lmao lmao lmao lmao lmao ha ha ha haha lmao haha lmao haha ha ha haha lmao haha haha haha lmao haha haha ha ha haha lmao lmao lmao haha ha ha lmao lmao haha haha ha lmao lmao lmao lmao lmao
Stop: step_limit.
music-23 #
Human: What music are you into lately?
Jev: i guess whatever tho lol
Stop: end.
Human: Sell me on it. What do you like about it?
Jev: uh well i guess like it lol anyway it's whatever tho lmao k ok lol yeah lmao lol lmao lmao lmao lmao lmao lmao lmao lmao lmao lmao lmao lmao lmao lol lol lol lol lol lol lol lmao lmao lmao lmao lmao lol lmao lmao lmao lol lmao lol lmao lmao ok lmao k lmao k lmao k ok ok lmao lol lol
Stop: step_limit.
Human: What would you name your own band?
Jev: lol lmao whatever tho lmao k lmao lmao lmao lmao lmao k ok lmao lmao lmao lmao lmao lol lmao lmao whatever tho lmao lmao whatever lol whatever tho lmao k lmao lmao whatever tho whatever tho lmao lol lol lol lol whatever whatever lmao lol lmao lmao whatever tho whatever lmao lmao whatever tho lmao k
Stop: length_limit.
music-7 #
Human: What music are you into lately?
Jev: i'm into rock music
Stop: end.
Human: Sell me on it. What do you like about it?
Jev: i like it because it's cool
Stop: end.
Human: What would you name your own band?
Jev: uh well maybe i'd call the band something like rock
Stop: end.
Reproduction #
uv run python -m experiments.decoder --variants dialogue --prompts bands weekend bread --seeds 1 7 --output scratch/decoder-recheck
Use dialogue_long for the longer-stop candidate. Full decision traces for this
session remain under ignored scratch/decoder-v1 through scratch/decoder-v7
and scratch/dialogue-conversations. The local seed controls code-side sampling;
provider probability estimates may change between calls, so reruns need not be
byte-identical. Earlier trace directories also reflect intermediate stopping
thresholds recorded in the experiment sequence, rather than every variant's
current implementation.
Looser production stopping #
The first production decoder always accepted the earliest complete ending. Live replies such as "depends on taste" exposed how strongly that favors brevity. Production now stops with 35% probability at each eligible ending, with no minimum length. If continuation hits a length, time, or step limit, it returns the latest ending Jev judged complete rather than publishing an unfinished continuation. Without a saved ending, a limit-stopped draft remains withheld. Word selection, vocabulary, and the 300-grapheme/3,000-byte post limits are unchanged.
uv run python -m experiments.stopping compares the old 100% stopping rule with
35% on three prompts against the real provider. Traces go to scratch/stopping.
Additional runs used seeds 1 and 23 at 35% and 15%. These are qualitative checks,
not controlled identical provider outputs or a reliable quality estimate.
At seed 7, the movie prompt changed from "depends on you" to "depends on you taste"; the Saturday prompt changed from "well i'd relax and do nothing" to "i'd like to relax alone tho yea". At 35%, seed 1 produced this longer Saturday reply:
well i like doing things like going to the park walking and running and playing games uh and stuff uh uh uh uh uh uh uh uh uh uh uh uh uh uh and stuff anyway okay
Longer is not automatically better. The 15% setting produced a movie response that repeated filler until the length limit without any eligible ending, so it remained withheld. The 35% movie run at seed 23 reached the limit but recovered "my picks are the top" from a saved ending. Jev's completion judgment can itself be weak; the fallback preserves that judgment, not a guarantee of good prose. The 35% setting was retained rather than pushing every response toward 300 characters.