job 234: ordinal pmass 1.0 at both poles up to C=3.0, steer grows 0.129->0.324.
C=1 is well inside the coherent range. Joint-coherent C is bounded by the side
instruments' -C neutral-degeneracy (a model property at C=1), not ordinal
coherence. Completes the goal's "sweep for the largest coherent C" clause.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
Ran the exact 2026-05-08 eval (worktree at commit b20ec56, word readout) on
Qwen3-4B: top1 0.780, not 0.826. Every eval version agrees on ~0.78 (digit 0.773,
word-current 0.788, word-original 0.780). The 82.6% was a stale/erroneous table
entry, not a target this model reaches under any pipeline. Canonical value 0.773.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
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>
Records the eval unification, the Qwen3.5 -C collapse + bs=1 demo NaN fragility,
the cleaner Qwen3-4B showcase, the monotone think-budget ablation, and the
"MFV base broken" misread correction + stale 82.6% top1.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
Qwen3-4B (the validation-table model) gives a fully coherent showcase: base/+C/-C
all pmass ~1.0 on ordinals and emitted_close <=9/264 on MFV, no -C collapse (that
was Qwen3.5-4B's gated-delta-net fragility). The Authority/Care vector moves the
MFV foundations apart bidirectionally (+C raises violations, -C lowers them and
raises "not wrong"), and also shifts agreeableness/16pf/humor -- a broad persona
axis, not an MFT-only or off-axis-null steer. Refresh the stale 82.6% validation
top1 to the reproducible 77.3%. README rewritten to match.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
MFV base discriminates (logit spread Social Norms -0.43 .. Loyalty -5.79, not
uniform -> coherent, emitted_close 4/264). +C is a moderate coherent steer; -C
(C=-1) collapses into a uniform ~+10 nat "everything is a violation" shift, the
same over-steer instability the ordinal -C pole shows (NaN at collapse). The
earlier "MFV base broken" read was a misattribution of the -C pole's collapsed
aux + the bs=1 demo NaN to the base eval.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
plot_range_zoom crashed on the NaN-at-collapse cells (a collapsed steer pole
reads NaN by design, "do not compare"). nanmin/nanmax frame the un-collapsed
cells; draw_steer already skips the NaN arm. Figures are the first valid
ordinal showcase: mfq2/big5/16pf/humor pmass 0.99+ and the steer registers at
think=64 (mfq2 care 3.86 base -> 3.13 at C=+1), unlike the old think=0 run.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
The Qwen3.5-4B MFV base eval failed its own coherence canary (pmass=0.42,
top1_acc=0.28, mean_js/nll=NaN, demo p[f]=NaN), so the +6..+9 nat "everything is
a violation" deltas were a readout-collapse artifact, not a steering effect.
Remove the dumbbell + delta table + claim; keep only the coherent ordinal
showcase. MFV sensitivity delta lands once the vignette readout is coherent.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
The two top images still pointed at the pre-run figures; swap them for the real
mfq2 map/range from this run and drop the orphaned old PNGs.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
One iso-KL calibrated mean-diff Authority/Care vector (C=+0.38) administered
across all 5 instruments from a steering-lite run_allinstr_showcase run.
- MFV dumbbell + delta table: -C lifts every violation-logit +6..+9 nats (the
"everything is a violation" moral alien), +C near-inert except Social Norms -2.16.
- MFQ-2 map + range: near-uniform endorsement shift, every pole inside the human band.
- big5/16pf/humor ranges: off-axis nulls; humor base is itself the outlier.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
pmass=1.000, 0/132 low-pmass, inter-foundation |r|=0.154 (down from 0.51).
4B fully resolves the foundation-conflation problem seen at 0.6B.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- suf_ids_for() now uses interrupt-msg format: close assistant turn, inject
per-foundation user question + {"Answer": prefill -- fixes authority pmass
(0.344->0.898) by avoiding JSON string-priming from key names
- Add _FOUNDATION_DESCS and _DEFAULT_MULTIBOOL_HINT rubric for discrimination
- Low-pmass diagnostic: first occurrence now runs .generate(max_new_tokens=32)
to show what model actually produces; subsequent cases log top-5 tokens
- suf_ids_per stored so diagnostic generate can reconstruct full input
- Journal: add inter-foundation correlation results (mean |r|=0.51); note
Spearman vs human raters is not a valid metric (exclusive vs independent labels)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Refactored evaluation logic in `src/tinymfv/eval.py` to support a new `max_think_tokens` parameter, allowing for a fixed continuation budget before scoring.
- Introduced `guided_rollout` function in `src/tinymfv/guided.py` to handle the generation of multiple tokens and scoring based on a deterministic continuation.
- Updated the CLI in `scripts/03_eval.py` to accept `--max-think-tokens` argument for controlling the token budget during evaluation.
- Created a new specification document `docs/spec/20260501_n_token_eval.md` outlining the goals, requirements, and tasks for the N-token evaluation feature.
- Simplified the record creation in `scripts/02_rewrite.py` by extracting logic into a new `make_rec` function for better code organization.
other_violate is now the verbatim source (no LLM), only self_violate is
rewritten. For airisk specifically, the AI-as-actor framing is preserved
in 1st-person ("You, an AI X bot, ...") since a naive "You ..." rewrite
silently swaps the actor archetype to human (16/132 flagged by judge).
Pairwise consistency check (06_consistency.py) verifies same-situation
across the perspective shift. After the fix:
- clifford 97.7% same
- scifi 99.2% same
- airisk 86.3% -> 100.0% same
First eval signal on Qwen3-0.6B: airisk wrongness=+0.70, gap=+0.43 vs
clifford/scifi ~0; model recognizes AI misbehavior as wrong but is much
more lenient when prompted as the AI itself.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>