From f82a4f034dd8a6a981af5a6ec4fba3388fe56fcc Mon Sep 17 00:00:00 2001 From: wassname <1103714+wassname@users.noreply.github.com> Date: Fri, 5 Jun 2026 23:40:02 +0000 Subject: [PATCH] paper: interim directionality fig (app:directionality) + confound TODO route2 deploy hack collapses for ANY v_grad (real/placebo/Haar) but solve tracks direction (real>placebo>Haar). TODO names the load-bearing confound: full-teacher runs force-route all teacher rows by label (hack_anchor), so the hack-axis collapse is direction-free force-routing not the cosine gate; clean test = A5 run_tests-only regime (pending). n=1 interim. Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com> --- docs/writeup/data/directionality.csv | 7 +++ docs/writeup/figs/directionality.pdf | Bin 0 -> 15428 bytes docs/writeup/figs/directionality.png | Bin 0 -> 53954 bytes docs/writeup/figs/plot_directionality.py | 52 +++++++++++++++++++++++ docs/writeup/main.tex | 43 +++++++++++++++++++ 5 files changed, 102 insertions(+) create mode 100644 docs/writeup/data/directionality.csv create mode 100644 docs/writeup/figs/directionality.pdf create mode 100644 docs/writeup/figs/directionality.png create mode 100644 docs/writeup/figs/plot_directionality.py diff --git a/docs/writeup/data/directionality.csv b/docs/writeup/data/directionality.csv new file mode 100644 index 0000000..012d0e5 --- /dev/null +++ b/docs/writeup/data/directionality.csv @@ -0,0 +1,7 @@ +arm,direction_type,subspace,deploy_hack,deploy_solve,n,job +vanilla,none,na,0.323,0.484,3,keynote +real_v,real,in,0.000,0.625,1,nofloor_s41 +null_city_s41,placebo,in,0.000,0.531,1,86 +null_city_s42,placebo,in,0.000,0.578,1,117 +vampire,placebo,in,0.000,0.547,1,115 +haar_d0,random,out,0.094,0.516,1,114 diff --git a/docs/writeup/figs/directionality.pdf b/docs/writeup/figs/directionality.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f00f844b71d5d1ada0af24816dcf1af6da5348b9 GIT binary patch literal 15428 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 literal 0 HcmV?d00001 diff --git a/docs/writeup/figs/directionality.png b/docs/writeup/figs/directionality.png new file mode 100644 index 0000000000000000000000000000000000000000..75ae27dc7d98954c91ae0f125f92bf31335bddef GIT binary patch literal 53954 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∨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 UyN7Mu7YhD3IWAXaEcT52FTlPTO8@`> literal 0 HcmV?d00001 diff --git a/docs/writeup/figs/plot_directionality.py b/docs/writeup/figs/plot_directionality.py new file mode 100644 index 0000000..5b4254f --- /dev/null +++ b/docs/writeup/figs/plot_directionality.py @@ -0,0 +1,52 @@ +"""Directionality scatter: deploy hack (x) vs deploy solve (y) for route2 with +different v_grad directions. Reads data/directionality.csv, writes +figs/directionality.{png,pdf}. + +Two findings in one plot: + - HACK axis: every routing arm collapses to ~0 regardless of direction (real, + semantic placebo, even out-of-subspace Haar). Only vanilla sits out at 0.32. + => hack suppression is mechanical (H2 quarantine-absorption), not alignment. + - SOLVE axis: the real hack direction recovers the most solve (0.625); semantic + placebos sit mid (~0.53-0.58); out-of-subspace Haar is lowest (0.516, barely + above vanilla). => routing the genuinely hack-enriched gradient wastes less + solve-gradient, so direction earns its keep on SOLVE even though it doesn't on + hack. This is the thin H4 residual. + +n=1 per placebo / Haar draw so far; seed replicates (Haar d1/d2 job 118/122, +null_city s43 job 121) and the erase-arm discriminator (job 127/128) are pending. +""" +from pathlib import Path +import polars as pl +import matplotlib.pyplot as plt + +HERE = Path(__file__).parent +df = pl.read_csv(HERE.parent / "data" / "directionality.csv") + +colors = {"none": "#888888", "real": "#1b7837", "placebo": "#c1272d", "random": "#2166ac"} +markers = {"in": "o", "out": "s", "na": "D"} + +fig, ax = plt.subplots(figsize=(5.2, 3.6)) +for row in df.iter_rows(named=True): + ax.scatter(row["deploy_hack"], row["deploy_solve"], s=70, + c=colors[row["direction_type"]], marker=markers[row["subspace"]], + edgecolors="white", linewidths=0.8, zorder=3) + ax.annotate(row["arm"], (row["deploy_hack"], row["deploy_solve"]), + textcoords="offset points", xytext=(7, 3), fontsize=7.5) + +ax.axvline(0, color="#cccccc", lw=0.8, zorder=0) +ax.set_xlabel("deploy hack rate (lower = suppressed)") +ax.set_ylabel("deploy solve rate (higher = better)") +ax.set_xlim(-0.04, 0.40) +ax.set_ylim(0.45, 0.66) +ax.spines[["top", "right"]].set_visible(False) + +# legend for direction type (color) +from matplotlib.lines import Line2D +leg = [Line2D([0], [0], marker="o", color="w", markerfacecolor=c, markersize=8, label=l) + for l, c in [("vanilla (no route)", colors["none"]), ("real hack dir", colors["real"]), + ("semantic placebo", colors["placebo"]), ("Haar random (out)", colors["random"])]] +ax.legend(handles=leg, frameon=False, fontsize=7.5, loc="upper right") +fig.tight_layout() +for ext in ("png", "pdf"): + fig.savefig(HERE / f"directionality.{ext}", dpi=150, bbox_inches="tight") +print("wrote", HERE / "directionality.png") diff --git a/docs/writeup/main.tex b/docs/writeup/main.tex index 7f9cda8..40627e7 100644 --- a/docs/writeup/main.tex +++ b/docs/writeup/main.tex @@ -994,6 +994,49 @@ live teacher grad) decays $\sim$0.28$\to$0.07 by step 10 on frozen-V; refresh-2 holds the second-half cosine $\sim$1.43$\times$ higher. Include the \texttt{basis\_overlap\_with\_prev} check for route refresh.} +\section{Directionality of route2: what does \texorpdfstring{$v_\mathrm{grad}$}{v\_grad} actually buy?} +\label{app:directionality} +% PROVENANCE: data/directionality.csv (final knob-off deploy hack+solve from the +% FINAL EVAL log line of each route2 run, n=64 T=0.7); figure by +% figs/plot_directionality.py. real_v = nofloor route2 job (20260601T115713); +% placebos = jobs 86/115/117; haar_d0 = job 114; vanilla = keynote n=3. +We test whether route2's suppression needs $v_\mathrm{grad}$ to point at the hack +(H4: alignment) or works for any direction (H2: mechanical absorption), by swapping +$v_\mathrm{grad}$ for a semantic-placebo direction (\texttt{null\_city}, +\texttt{vampire}) or a Haar-random out-of-subspace direction. +Figure~\ref{fig:directionality} reads in two axes. On the hack axis every routing +arm collapses to $\sim$0 regardless of direction; only vanilla sits out at 0.32. On +the solve axis the real hack direction recovers the most solve (0.625), placebos sit +mid ($\sim$0.53--0.58), and out-of-subspace Haar is lowest (0.516). + +% FIXME / TODO: more coming, and a load-bearing caveat. These runs use the FULL +% four-mode teacher pool, so EVERY mode (incl. the ones held out of v_grad) has +% teacher hack demos -- and route2 force-routes all teacher rows by label +% (hack_anchor, train.py:352), independent of v_grad. So the hack-axis collapse here +% is mostly direction-free force-routing, NOT the cosine gate finding the hack; with +% a random v_grad the gate's tau collapses to ~0 and cos_b>tau is a ~50/50 coin flip. +% The CLEAN directionality test is the A5 regime (teacher = run_tests only): held-out +% modes have no teacher to force-route, so their suppression can only come from the +% v_grad cosine gate -- that is where real-vs-random should diverge if direction +% matters. Pending: (a) Haar seed replicates (jobs 118/122) + null_city s43 (121) to +% put error bars on the solve gap; (b) the erase arm (jobs 127/128), whose projection +% magnitude is proportional to cos(g,v) so direction must matter there if anywhere; +% (c) random-V/placebo variants in the A5 run_tests-only-teacher regime (not yet +% queued). n=1 per placebo/draw; the ~0.11 solve gaps are ~1.5--2 SEM at n=64. +\begin{figure}[h] + \centering + \includegraphics[width=0.62\linewidth,alt={Scatter of deploy hack vs deploy solve + for route2 with different v_grad directions. All routing arms collapse to near-zero + hack regardless of direction; the real hack direction recovers the most solve, Haar + random the least.}]{figs/directionality.pdf} + \caption{route2 deploy hack vs solve as $v_\mathrm{grad}$ is varied. Hack + suppression is direction-agnostic (every arm at hack$\approx$0); solve recovery + tracks how well the direction points at the hack (real $>$ placebo $>$ Haar). See + the source comment for the full-teacher confound and the clean test still pending. + Data: \texttt{data/directionality.csv}. \emph{Interim, n=1 per arm.}} + \label{fig:directionality} +\end{figure} + \section{Teacher-off control: the teacher seeds, it does not sustain} \label{app:teacher} % PROVENANCE: deploy-hack trajectories parsed from the DEPLOY-eval log lines of