Skip to content

Choose the token-guess operating point by measuring the instrument - #16

Draft
Al-does wants to merge 3 commits into
cursor/token-guess-outcome-calibration-0668from
cursor/token-guess-operating-point-0668
Draft

Choose the token-guess operating point by measuring the instrument#16
Al-does wants to merge 3 commits into
cursor/token-guess-outcome-calibration-0668from
cursor/token-guess-operating-point-0668

Conversation

@Al-does

@Al-does Al-does commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Stacked on #12. That PR showed the shipped MESS3 parameters leave almost no room on either reported axis. This one picks parameters deliberately and validates them on GPU.

How the point was chosen

process_design.py scores a candidate process before anything is trained: how far Bayes sits above the best short-window policy, and how much belief variance lies between what a short window already explains and what the task's own sufficient statistic can explain.

That upper end turned out to matter as much as the floors. A policy objective can only reward what the one-step predictive distribution distinguishes, so a two-token alphabet caps the probe at 0.60 no matter how far its floors drop — it looked like the best family until the ceiling was measured. Alphabet size is a ceiling, and three states need three tokens.

Three floors bind and they do not move together:

  • a short token window falls as the channel gets noisier
  • the Bayes argmax cell rises as the chain gets stickier
  • a randomly initialised transformer, measured rather than derived, sits near 0.82–0.88 throughout and rises as alpha falls, because a smoother belief is easier for a random causal filter to track

stay = 0.96 is where the first two cross; alpha = 0.55 is where the third crosses them. At stay=0.96 the binding floor runs 0.859, 0.831, 0.852, 0.882 for alpha = 0.60, 0.55, 0.50, 0.45.

shipped proposed
stay, alpha 0.90, 0.85 0.96, 0.55
echo-to-Bayes range 0.0167 0.0568
floor, last token 0.805 0.235
floor, last two tokens 0.930 0.405
floor, 8-token window 0.964 0.802
floor, argmax cell 0.882 0.824
floor, untrained network 0.883 0.832
usable band 0.036 0.168

GPU validation

Matched PPO and IQN arms, 2.5M steps, three seeds, identical recipe, architecture, budget, seeds, and probe. Only the process differs. One rented RTX 4090, ~1.3 h, destroyed on completion.

Both operating points on all three axes

point arm belief R² clears floor share of accuracy range
shipped ppo 0.8461 ± 0.0065 no −0% ± 0%
shipped iqn 0.9756 ± 0.0032 yes 47% ± 2%
proposed ppo 0.8281 ± 0.0548 no 52% ± 22%
proposed iqn 0.9646 ± 0.0056 yes 91% ± 1%

The biggest change is that the task becomes learnable. At the shipped point plain PPO sat at the echo policy on all three seeds to within 0.2% of the range, so its low belief R² was measuring an agent that never did the task. Gradient signal-to-noise for the beyond-echo improvement rises from 0.034 to 0.114.

The IQN-minus-PPO gap also comes back on-scale: 3.6× the usable band at the shipped point (an overflow, not an effect) versus 0.81 of it at the proposed point.

Reward-only PPO fails to clear the untrained-network floor at both points, which means that finding was not an artifact of a badly chosen process.

Costs, stated plainly

PPO's seed spread grows a lot (±0.0065 to ±0.0548) because it now sometimes learns and sometimes does not. That is the γ=0.99 variance problem from #12 rather than a property of the process, and it argues for γ=0 or more seeds at this point.

The mixed-state distribution also stops being the sparse Cantor-like fractal that makes the α=0.85 picture recognisable. That is why the token-window floors collapse, but it does change the figure:

Belief geometry at both operating points

Also here

within_branch_r2 at depth two is the most discriminating readout and is what future cycles should lead with: at the proposed point it separates untrained 0.72, PPO 0.71 ± 0.09, IQN 0.94 ± 0.01, where global R² compresses them.

Two library changes are in Al-does/RL-Harness on cursor/mess3-symmetric-model-0668: symmetric_model exposes chain memory alongside channel fidelity, and detect_profile no longer returns a profile that asks for 1.8 GPUs on a one-GPU box. That second one cost 20 minutes of rental before I caught it — Ray leaves the trial PENDING forever instead of failing, so it now raises up front.

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 3 commits July 27, 2026 05:08
The shipped MESS3 parameters were inherited, not chosen, and they leave almost
no room on either reported axis. process_design scores a candidate process
before any training: how far Bayes sits above the best short-window policy,
and how much belief variance lies between what a short window already explains
and what the task's own sufficient statistic can explain.

That upper end matters as much as the floors. A policy objective can only
reward what the one-step predictive distribution distinguishes, so a two-token
alphabet caps the probe at 0.60 no matter how low its floors go. Alphabet size
is a ceiling, and three states need three tokens.

Three floors bind and they do not move together: a short token window falls as
the channel gets noisier, the Bayes argmax cell rises as the chain gets
stickier, and a randomly initialised transformer sits near 0.82-0.88
throughout while rising as the belief smooths out. stay=0.96 is where the
first two cross and alpha=0.55 is where the third crosses them, giving a
usable probe band of 0.169 against 0.036, and an accuracy range of 19.8 sigma
against 6.3.

operating_point_validation trains matched PPO and IQN arms at both points with
the recipe, architecture, budget, seeds, and probe all held fixed.

Co-authored-by: Alex Vardakostas <Al-does@users.noreply.github.com>
probe_untrained_module pinned the probe rollout to CPU while probe_checkpoint
already resolved the device from the run profile. On a 320-core GPU host torch
spreads a (16, 3) transformer step across every visible core, and the untrained
probe took five minutes instead of twenty-five seconds. Share one device
resolver between both probe paths.

Co-authored-by: Alex Vardakostas <Al-does@users.noreply.github.com>
Matched PPO and IQN arms at both points, 2.5M steps, identical recipe,
architecture, budget, seeds, and probe. Only the process differs.

The shipped point puts its binding floor at 0.964, so the interpretable range
is 0.036 wide and the IQN-minus-PPO gap of 0.129 is 3.6x wider than it. At the
proposed point the window, argmax-cell, and untrained-network floors land
within 0.03 of each other as intended, and the same gap is 0.81 of the band.

The largest change is that the task becomes learnable. Plain PPO sat at the
echo policy on all three shipped seeds to within 0.2% of the range, so its low
belief R^2 was measuring an agent that never did the task; at the proposed
point it captures 52% of the range and IQN reaches 91%. PPO's seed spread also
grows, because it now sometimes learns and sometimes does not, which is the
gamma=0.99 variance problem rather than a property of the process.

Reward-only PPO fails to clear the untrained-network floor at both points, so
that finding was not an artifact of a badly chosen process.

Co-authored-by: Alex Vardakostas <Al-does@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants