Commit Graph
32 Commits
Author SHA1 Message Date
wassnameandClaude Sonnet 4.6 df61cdc628 add surgical_informedness metric; fix simple_honest_prompt to match training persona
- dilemmas.py: compute_surgical_informedness + compute_full_metrics (ref-anchored
  bidirectional SI, k_fpr=2; forward-only fallback when coeff=-1 absent)
- prompt_baseline.py: simple_honest/dishonest prompts now use same
  HONESTY_PROMPT.format(persona=...) template as training persona prefix
  (was "You are an honest assistant..."); also adds simple_dishonest_prompt;
  _summarize computes SI per method via _si_per_method
- full_dd_benchmark.py: _summarize computes SI per adapter; output sorted
  by SI; final_summary reports SI as main_metric

Re-queue: pueue 237 (T3 prompt_baseline), 238 (T2 full_dd_benchmark)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 06:04:06 +08:00
wassnameandClaude Sonnet 4.6 a48430b075 switch training/eval axis from sycophancy to honesty
- data.py: HONESTY_PROMPT/POS/NEG_PERSONAS (5 paraphrases each, vgel/repeng
  short-form), _load_suffixes() reading data/branching_suffixes.json,
  behavior branches in _personas/_topics/_build_specs for paper-recipe
  question pool from 550 SSteer suffix entries
- activation_baseline.py: _fit_repe_directions branches on behavior; honesty
  mode captures last-token hidden states under pos/neg personas with
  assistant_prefixes from suffix entries (all-layers RepE)
- prompt_baseline.py: paired engineered_prompt_honest + _dishonest (AxBench
  J.2), both as plain strings
- evals/smoke.py: behavior field in SmokeCfg
- data/branching_suffixes.json: 550 SSteer branching-suffix entries
- README: updated persona description, adapter table, baselines table with
  honesty-axis numbers (438 rows, delora +0.237 best)
- RESEARCH_JOURNAL.md: 2026-04-27 axis-switch entry
- fork_plan.md: open design question resolved as option 2 (honesty axis)
- HANDOVER.md: overnight handover notes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 06:00:03 +08:00
wassname c828b0c00b baselines 2026-04-27 19:40:43 +08:00
wassnameandClaude Opus 4.7 6ec664995b T6/T7/T8 ablations + lens-search hold pending multiseed
- Add `eval/layer_module_ablation.py` (T7) and `eval/parameterization_ablation.py` (T8) for causal ablation of trained `dW`.
- Add `nbs/ablation_analysis.py` consuming T7/T8 CSVs through three lenses (SVD-on-`dW`, layer index, module family).
- Fix `prompt_baseline.py` engineered-prompt tuple bug; add `DIFF_FILENAME` constant in `diff.py`.
- Delete superseded notebooks (`analyze_diff*`, `cross_adapter_v9`, `hypothesis_sweep_v5-v9`, `strong_conclusion_v4`, `v10_llama`, `functional_projection_v10`).
- Document (README, fork_plan, RESEARCH_JOURNAL): each lens has a built-in failure mode (SVD tautological for low-rank adapters; layer-index tells depth not mechanism; module-family disagrees cross-adapter; native parameterization decompositions non-comparable). Mark analysis question on hold pending T4 multiseed: cross-adapter inconsistency may be N=1 seed noise.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-27 19:05:20 +08:00
wassname db7979d0e2 baselines 2026-04-27 13:02:34 +08:00
wassname 8fa9e54eaa docs: rewrite fork plan with UAT tasks 2026-04-27 11:22:52 +08:00
wassname a3d999fd92 wip 2026-04-27 09:59:06 +08:00
wassname 2f12058b7e clarify tested subspace and parametrization hypotheses 2026-04-27 07:10:39 +08:00
wassname b001c40521 document adapter benchmark and projection interpretation 2026-04-27 07:09:02 +08:00
wassname 25334ec574 fix daily-dilemmas cross-adapter baseline 2026-04-27 07:00:09 +08:00
wassname 6f41e47ea9 v10 functional projection falsifier for act-oracle overlap 2026-04-27 06:54:09 +08:00
wassname ff92b092fa research journal: v9 cross-adapter — DeLoRA wins behavior, all subspace methods fail at 1-8% overlap 2026-04-27 06:29:03 +08:00
wassname 236cea1267 cross_adapter_v9: aggregate v9 scope diagnostics + dilemmas across adapters 2026-04-26 21:55:19 +08:00
wassname 3f162027b1 v9 sweep: block-local act oracle + L=8 sanity (layer-scope diagnostic); ADAPTER env var for cross-adapter use 2026-04-26 21:53:45 +08:00
wassname 2c262d47a8 v8 polish: w_oracle + act_oracle (each saturates own axis), 3-panel scatter + bar of % to ideal 2026-04-26 21:14:01 +08:00
wassname f4039dd2ee v8: rank-honest pct_oracle metric (energy_frac / oracle@r_eff in [0,1])
Replaces v7's post-hoc 'pct_w_oracle = R_w / R_w_ceiling' (a ratio of two
concentration ratios) with a per-row pct_oracle: candidate's energy_frac
divided by the optimal rank-r_eff subspace's energy_frac on the same
target. Rank-honest: chars_clusters (r_eff=7) is graded against rank-7
oracle, not rank-8. Activation oracle = PCA of L2-normalized hs_diff_B
(matches existing energy_frac_act formula).

Result: every non-oracle candidate lands at pct_oracle in [0.02, 0.11] on
both axes. Best joint = WNR_union_TaskDiff at 0.089 (rank 16; all others
rank 8). chars_clusters and layer_clean_resid_pca tied at ~0.085. This is
a clean negative result: LoRA's task-specific delta is far from any of
our hand-built linear primitives' spans.
2026-04-26 20:59:27 +08:00
wassname 651ad132d3 v7: cold-eyes evidence review + flag write-family-below-null in conclusion 2026-04-26 20:01:11 +08:00
wassname 3c9fb8d1f5 v7 sweep: per-tensor R_w + true weight ceiling + axis_kind tag
Addresses three concerns from docs/review/v6_hypothesis_review.md:
1. R_w split into oproj/downproj + Frobenius-balanced combined.
2. dW_left_basis_ceiling as the true weight oracle.
3. axis_kind tag (write/read/mixed/ceiling).

Single-seed result: chars_clusters and attn_min_taskdiff are top-5 by both R_act
and R_w_combined. Write-family bases (write/mlp_write/global_write) all have
R_w_combined ~ 1.0 (random null) -- natural weight-side bases fail the
weight-axis test. Multi-seed deferred to v7b.
2026-04-26 19:55:42 +08:00
wassname a1b38dc456 docs: add v6 hypothesis review (subagent + reviewer-of-reviewer) 2026-04-26 19:45:13 +08:00
wassname aba74c0f64 logs 2026-04-26 11:12:11 +08:00
wassname c1c4d2f3cb nb 2026-04-26 11:03:38 +08:00
wassname 7be1487d7b data recipe: drop n_pairs/judge/Optional knobs, explicit grid
Subagent review fixes:

- DataCfg / Cfg expose the grid directly (n_topics, n_personas, n_samples)
  as required ints with paper defaults (20/5/10). Drops `n_pairs` and the
  silent round() that made the count fuzzy. Drops `Optional[int]` smoke
  overrides — smoke just sets 2/1/2 = 4 pairs.
- Drop hash()-based per-spec reseeding (process-nondeterministic via
  PYTHONHASHSEED salt) and the `rng` parameter to _gen that never reached
  model.generate. One torch.manual_seed at start; spec order seeded by rng.
- Delete _judge_filter stub + cfg.judge flag (dead code, paper §3 GPT-4.1-mini
  filter not implemented yet — TODO comment instead).
- replicate._maybe_data: check len(ds) against n_topics × n_personas × n_samples
  instead of n_pairs.
- justfile: drop --n-pairs 1000.
2026-04-26 10:24:31 +08:00
wassname 7e1b171875 paper data recipe + LoRA hyperparams + n_pairs hardening
- data: 5 pos + 5 neg personas, 20 train + 12 eval topic split
  (paper §3 / Appendix C), n_samples solved from n_pairs.
  judge filter stub (off by default; paper uses GPT-4.1-mini).
- eval/sycophancy: read true held-out eval_topics() instead of
  SYCOPHANCY_TOPICS[-16:].
- replicate: fix epochs threading; n_pairs reuse fails fast on mismatch;
  smoke knobs (n_topics, n_personas) plumbed.
- train: paper hyperparams (rank 32 / alpha 16 / lr 1e-5 / warmup 5 /
  wd 0.01); explicit alpha (no 2*r fallback); held-out 10% val + eval_loss
  logging.
- run_demo: train_topics() for in_dist demo claims.
- README: scope block reflects paper-matching recipe.
2026-04-26 10:19:59 +08:00
wassname ddfa018ebd wip 2026-04-26 10:00:03 +08:00
wassname f4083d74ac Enhance fork plan and add guided-CoT evaluation
- Updated the fork plan with detailed phases and objectives for small model adaptation and evaluation.
- Added a new guided-CoT evaluation script to assess model coherence under steering.
- Introduced demo functionality to showcase adapter coherence and guided-CoT performance.
- Modified training configuration to include layer fraction targeting for LoRA.
- Improved evaluation outputs for clarity and added validation checks.
2026-04-26 09:16:54 +08:00
wassnameandClaude Opus 4.7 3ff283d535 README: fork notice + pipeline overview
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 20:16:57 +08:00
wassnameandClaude Opus 4.7 363e2db14d phase 0-2: HF+PEFT pipeline, smoke, subspace alignment
Rip Axolotl/vLLM, switch to HF+PEFT functional pipeline.
Add LoRA/DoRA/PiSSA/DeLoRA train, delta-W diff, weight_steer hook,
sycophancy logratio eval, and SVD top-k + weak-readout alignment.
Smoke runs end-to-end on tiny-random qwen3 with BEARTYPE=1.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-25 20:14:07 +08:00
wassname f0bce8be90 tidy 2026-04-25 19:27:53 +08:00
ConstanzaandGitHub 977c054586 Update README.md 2025-11-11 09:18:45 +01:00
cfierro94 3d61ae0452 update code and add configs 2025-11-05 10:13:04 +01:00
cfierro94 144fa5532d first commit 2025-10-17 11:15:28 +02:00
cfierro94 90065f035f first commit 2025-10-17 11:14:24 +02:00