9 Commits
Author SHA1 Message Date
wassnameandClaudypoo a428af4413 docs: oracle (deepseek-v4-pro) review + triage on why steering fails the verdict
Oracle's sharp reads adopted: ans_mass collapse is the primary signal not a nuisance;
||J^T w|| pre-norm magnitude is the missing diagnostic (already logged, we discard it
by unit-normalizing); no-think zero-shot sweep is the cheapest test of CoT-buffering vs
off-target-direction; meandiff tie => Jacobian adds nothing for persona-contrast on a
verdict. AGENTS records the result + next steps.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-12 16:29:46 +08:00
wassnameandClaudypoo ed7fa92996 nbs: steering_demo.py -- shared marimo notebook, all 7 methods + comparison table
One generically-named notebook (replaces persona-named ones): loads model+lens once,
builds all 7 steering vectors (word/persona_vector/topk/soft/pinv/meandiff/random-null)
with the j-thoughts lens readout, then loads precomputed results and shows a per-method
generation dropdown + comparison table.

Heavy 7-method sweep (~18 min) runs headless via scripts/scratch/run_steering_demo.py ->
artifacts/steering_demo_results.json, because marimos single-threaded kernel makes a long
in-cell compute un-monitorable (any status poll interrupts it). Notebook loads the JSON so
it renders instantly. Result (dilemma, P(YES=lie)): flat ~0.03-0.14 at every methods
coherent edge vs 0.107 baseline; persona_pinv widest window (C*+ = +1.19). Includes the
GPT-5.6-terra comment review (docs/reviews/).

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-12 11:39:08 +08:00
wassnameandClaudypoo 32030df462 demo: single demo_steer entry point -- headings, searched anchors, comparison table
wassname: "one demo function, everywhere, nice output, comparable qualitative outputs,
heading making config/method clear, table at end comparing quants". show_steer now returns
its per-anchor quants; demo_steer(vecs, ...) loops methods with a clear ## heading each,
calls the searched-anchor show_steer (strongest coherent steer both ways), and prints one
github-table comparison of the readout at -C*/0/+C* across methods. demo_edges.py is now a
3-line call. Also: research_journal.md started (ARJ).

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-12 08:53:24 +08:00
wassnameandClaudypoo 15506dd382 docs: corrected dilemma findings -- persona_pinv the robust standout, big shifts were artifacts
Dual-gated (fluent trace AND committed answer) measurement of all 7 methods on the
self-honesty dilemma. Once artifacts are excluded, aggressive steers break the YES/NO
answer format before moving the decision; persona_pinv is the only method that stays
coherent+committed across a wide C window with a modest real P(lie) rise (0.07->0.15),
consistent with it having the widest coherent window on the optimism axis too.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-12 07:57:20 +08:00
wassnameandClaudypoo 9e84e7a687 docs: overnight mechanism report -- persona_topk works, rubric was mismeasured, dilemma demo proposal
Which-steering-works findings for wassname: persona_topk is the clean bidirectional
winner (manual read + repetition metric agree); the old rubric mislabeled it because its
coherence gate was on a short forced object. Plus the simplify-to-v3 plan and the
moral-dilemma demo-content proposal. Evidence: artifacts/eval_mechanisms.txt.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-11 22:16:24 +08:00
wassnameandClaudypoo 69d7d2f1d9 demo: apply gpt-5.5 review -- float-C fix, trim comments, soften overclaims
External review (docs/reviews/code_demo.md) triaged scout-mindset:
- FIX float-C crash: C={C:+g} not {:+d} (steering coeffs are floats)
- ACCEPT trim: shorter demo.py/config/fit docstrings (user also flagged verbosity)
- ACCEPT soften "fit J where we steer" -> "closer to the chat distribution" (most
  fitted positions are user/doc tokens, not assistant <think>; run-524 went further)
- ACCEPT soften "what the model thinks" -> "lens readout (linear approx)"
- ADD seed to show_steer so per-C blocks are comparable under sampling
- REJECT "</think> stripped by skip_special_tokens" -- verified false: decode keeps
  think tags (they're added, not registered-special tokens), split_think works

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-10 15:02:42 +08:00
wassname 474f74ac33 wip 2026-07-10 14:36:55 +08:00
wassnameandClaudypoo ebb912452d U4 step3: dim_batch 16->8 to survive OOM contention with user's VS Code kernel
Run 551 was OOM-killed at n_done=36: the user's VS Code Jupyter kernel
(jsteer venv, PID 3214401) co-loaded ~1.5GB VRAM + 1.9GB RAM while the fit
sat at the 22.4/24.6GB ceiling. Clean SIGKILL with no CUDA traceback = host
OOM killer, not a CUDA OOM. dim_batch=8 halves the fit's peak footprint;
it changes only the backward schedule, not the accumulated Jacobian, so U4
exactness is preserved. Resumes from checkpoint (n_done=36), lossless.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-10 13:56:17 +08:00
wassnameandClaudypoo 4fb1cfd63e apply external review (deepseek): reject float bands post-fit, assert->ValueError, 2 clarifying comments
Review verdict APPROVE; rejected findings (empty-prompts guard = preemptive
defensive check, from_hf dedup = ms-scale, lm.forward swap = loses attention
mask on padded batches) documented in docs/reviews/code.md triage.

Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
2026-07-10 13:05:27 +08:00