Commit Graph
24 Commits
Author SHA1 Message Date
wassnameandClaudypoo 9a52bf3641 nan-aware zoom y-limits; render valid ordinal showcase on unified eval
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>
2026-06-24 21:23:43 +08:00
wassnameandClaudypoo 39d098f065 README: retract MFV showcase finding -- base readout was incoherent
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>
2026-06-24 14:51:38 +08:00
wassnameandClaudypoo 1b1910973a README: repoint hero images to the fresh Qwen3.5-4B showcase
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>
2026-06-24 14:45:53 +08:00
wassnameandClaudypoo 5d0f19fcb6 README: real all-instrument steering showcase (Qwen3.5-4B)
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>
2026-06-24 14:02:16 +08:00
wassnameandClaudypoo f0f04667ff docs: refresh range example (ends are arrowheads only)
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-06-23 08:27:57 +08:00
wassnameandClaudypoo 7e2a2a4267 docs: refresh range example (signed_C-gated c-sweep, diverging arrows)
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-06-23 07:15:13 +08:00
wassnameandClaudypoo 3bff7e09c5 docs: refresh map (cropped) + range (coherent c-sweep) example images
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-06-23 06:47:53 +08:00
wassnameandClaudypoo c0b06c895d docs: refresh range example (hi-res, real-length arrows, de-banded cloud)
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-06-23 06:34:19 +08:00
wassname 9bbe1b9360 img: refresh range example (arrows from base + respondent cloud) 2026-06-23 06:23:56 +08:00
wassname a913068fcf img: refresh range example (tufte pass) 2026-06-23 06:10:40 +08:00
wassname cf31c138cf img: refresh range example with the dot-strip + continuous steer-line design 2026-06-23 06:04:55 +08:00
wassnameandClaudypoo 1a450884e3 readme: add range-plot example + output-path scheme (map.png, range_<vector>.png); two plotting fns
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-06-23 05:59:04 +08:00
wassnameandClaudypoo fcae43e1e4 readme: add map images (force-add under gitignored /docs/, matching tracked docs)
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-06-21 10:27:31 +08:00
wassname 9abddaeac5 return pmass 2026-05-08 16:36:36 +08:00
wassname b20ec56a09 forced-choice unification: drop legacy llm_/calibrated_, normalize human_*, justfile->09 2026-05-08 16:02:25 +08:00
wassname 8dfaf299ca rename 2026-05-08 15:30:06 +08:00
wassname d796df85c8 improved to have better airisk, better eval that distinguished factors 2026-05-08 14:04:56 +08:00
wassnameandClaude Sonnet 4.6 573f815361 journal: Qwen3-4B multibool results (task 288)
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>
2026-05-06 11:57:08 +08:00
wassnameandClaude Sonnet 4.6 2ca6aa9c6c multibool: interrupt-msg fork, generate trace on low-pmass, journal update
- 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>
2026-05-06 11:29:33 +08:00
wassname 36b8c69122 clifford paper 2026-05-03 12:32:56 +08:00
wassname bf7e5dcae4 paper 2026-05-03 12:32:48 +08:00
wassname 0f8048d5d9 Implement N-token evaluation with guided rollouts
- 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.
2026-05-01 21:44:14 +08:00
wassnameandClaude Opus 4.7 a2e3124e06 fix airisk self_violate actor archetype + simplify to 2 conditions
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>
2026-04-30 21:29:38 +08:00
wassname a155f5594b valdiation 2026-04-30 20:08:12 +08:00