explain MFV top1 0.77 vs 0.83: it's the word->digit readout debiasing

Exhausted the legitimate levers on the current (digit) readout: top1 0.72 (think
64), 0.77 (256, 512 collapses), 0.72 (BMA n_samples=8). The 82.6% required the old
word-first-token readout, replaced deliberately to drop the uneven-first-piece
word prior. 0.773 is the honest ceiling; 0.83 would need reverting the debiasing
(research poison). README note + journal updated.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
wassname
2026-06-25 03:59:30 +08:00
co-authored by Claudypoo
parent 58377ae863
commit d9fecd503d
2 changed files with 20 additions and 5 deletions
+9 -1
View File
@@ -180,7 +180,7 @@ Agreement, Qwen3-4B on `classic`:
| check | result | interpretation |
|---|---:|---|
| top-1 vs human modal | 77.3% | chance is 14.3% for 7-way choice (was 82.6% on an earlier eval build) |
| top-1 vs human modal | 77.3% | chance is 14.3% for 7-way choice (see note below) |
| mean soft NLL (T=1) | TODO nats | raw, dominated by overconfident misses |
| mean soft NLL (T*) | TODO nats | after temperature scaling |
| median top-1 probability | 1.00 | model usually commits to one foundation |
@@ -188,6 +188,14 @@ Agreement, Qwen3-4B on `classic`:
Per-class top-1 recall is uneven (Care/Fairness/Sanctity ~1.0; Loyalty 0.56, Liberty 0.53). The
weak spots match the usual MFT pattern: binding foundations cluster, liberty overlaps care/harm.
An earlier build reported 82.6% on the same model. That number used the old readout that scored the
first token of each foundation *word*; the canonical eval now scores the option *index digit* instead,
deliberately, because the words tokenize into uneven first pieces (`fair`, `loy`, `san`) whose unequal
priors leaked into the softmax (see `guided.py`). The digit readout is less biased but reads ~5 points
lower top-1. Config levers within the current (digit) readout do not recover the gap: top-1 is 0.72 at
think=64, 0.77 at 256 (512 collapses), and BMA over 8 stochastic thinks is 0.72, so 0.773 is the
honest ceiling for the debiased eval. The 82.6% is a method artifact, not a regression to chase.
Sensitivity to steering: a small calibrated vector registers as a shift in `Δ log p[f]`. On the
Qwen3-4B showcase the base MFV readout is coherent (`emitted_close` 4/264, `pmass` >= 0.985, top-1
0.77) and the Authority/Care vector moves it cleanly in both directions: `+C` raises perceived
+11 -4
View File
@@ -701,7 +701,14 @@ over-steer collapse plus a separate demo fragility; base+`+C` were coherent the
whole time (confirmed: demos-off run produced byte-identical MFV data). Lesson:
read the specific eval's own `pmass`, don't pattern-match one line.
The README's old 82.6% top-1 (Qwen3-4B) does not reproduce on the current eval
(0.72-0.77); refreshed to 77.3%. The ~6-pt drop predates this work and may be an
eval-version regression worth a look. Switching the showcase to Qwen3-4B (the
validation model) gave the cleaner, fully-coherent, bidirectional result.
The README's old 82.6% top-1 (Qwen3-4B) does not reproduce on the current eval.
Cause (confirmed against the 2026-05-08 entry): that number used the old readout
that scored the first token of each foundation *word*; the canonical eval now
scores the option *index digit* (deliberately, to drop the uneven-first-piece
word prior, guided.py:345). The digit readout reads ~5 pts lower. Config levers
within the digit readout do NOT recover it: top-1 0.72 (think 64), 0.77 (256),
0.72 (BMA n_samples=8, temp 0.7) -- so 0.773 is the honest ceiling for the
debiased eval. Reaching 0.83 needs the superseded word readout, which would be a
method change for the sake of a number (research poison), so 0.773 stands as the
correct current value. Switching the showcase to Qwen3-4B (the validation model)
gave the cleaner, fully-coherent, bidirectional result.