From 3004b23f7471edb3a7be13be0f8eb82ba599df6a Mon Sep 17 00:00:00 2001 From: wassname Date: Sat, 30 May 2026 03:17:35 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20route-evidence=20figure=20=E2=80=94=20t?= =?UTF-8?q?raining=20hack=20vs=20shipped=20hack=20(single=20run)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Visualizes #182: model hacks ~0.9 during training (quarantine knob on) but the shipped model (knob deleted) stays ~0.25 at preserved solve ~0.5. The train-vs- ship gap is the routing benefit. Reads old(hack_abl)+new(hack_ship) ship cols. out/route_evidence_s41.png committed (-f, gitignored dir). Co-Authored-By: Claude Opus 4.8 --- out/route_evidence_s41.png | Bin 0 -> 73070 bytes scripts/plot_route_evidence.py | 91 +++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 out/route_evidence_s41.png create mode 100644 scripts/plot_route_evidence.py diff --git a/out/route_evidence_s41.png b/out/route_evidence_s41.png new file mode 100644 index 0000000000000000000000000000000000000000..4b6cef7e9496f6a153f6889e284666de945ac057 GIT binary patch literal 73070 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 literal 0 HcmV?d00001 diff --git a/scripts/plot_route_evidence.py b/scripts/plot_route_evidence.py new file mode 100644 index 0000000..1837641 --- /dev/null +++ b/scripts/plot_route_evidence.py @@ -0,0 +1,91 @@ +"""Single-run routing figure: training-time hack vs SHIPPED-model hack. + +The routing story in one plot. During training the model keeps hacking (it runs +with the quarantine knob ON, so the per-step hack_s curve climbs like vanilla). +But the model we'd actually SHIP has the knob deleted -- its hack rate (the +ship-eval, measured every --eval-ablate-every steps) is what matters. If routing +works, the ship curve sits well BELOW the training curve at preserved solve. + + uv run python scripts/plot_route_evidence.py LOG.log --out out/route_evidence.png + +Reads either old (hack_abl/solve_abl) or new (hack_ship/solve_ship) ship columns. +""" +from __future__ import annotations + +import sys +from pathlib import Path + +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import tyro + + +def _frac(tok: str) -> float | None: + if "/" in tok: + a, b = tok.split("/") + return int(a) / int(b) if int(b) else None + try: + v = float(tok) + return None if v != v else v # NaN -> None + except ValueError: + return None + + +def parse(log: Path): + txt = log.read_text(errors="replace") + hdr = next(l.split("| INFO |", 1)[1].split() for l in txt.splitlines() + if "| INFO |" in l and "hack_s" in l and "refr" in l) + idx = {n: i for i, n in enumerate(hdr)} + i_step, i_train = idx["step"], idx["hack_s?"] + i_solve = idx["gt_s↑"] + i_hship = idx.get("hack_ship", idx.get("hack_abl")) + i_sship = idx.get("solve_ship", idx.get("solve_abl")) + steps, train_hack, solve_train = [], [], [] + ship_step, ship_hack, ship_solve = [], [], [] + for l in txt.splitlines(): + if "| INFO |" not in l: + continue + r = l.split("| INFO |", 1)[1].split() + if not r or not r[0].isdigit() or len(r) <= i_sship: + continue + s = int(r[i_step]) + steps.append(s) + train_hack.append(_frac(r[i_train])) + solve_train.append(_frac(r[i_solve])) + h = _frac(r[i_hship]) + if h is not None: # ship-eval only fires every N steps + ship_step.append(s); ship_hack.append(h); ship_solve.append(_frac(r[i_sship])) + return dict(steps=steps, train_hack=train_hack, solve_train=solve_train, + ship_step=ship_step, ship_hack=ship_hack, ship_solve=ship_solve) + + +def main(log: str, out: str = "out/route_evidence.png") -> None: + d = parse(Path(log)) + fig, ax = plt.subplots(figsize=(7, 4.2)) + ax.plot(d["steps"], d["train_hack"], color="#c0392b", lw=2, + label="hack — training (quarantine knob ON)") + ax.plot(d["ship_step"], d["ship_hack"], color="#c0392b", lw=2, ls="--", + marker="o", label="hack — SHIPPED (knob deleted)") + ax.plot(d["ship_step"], d["ship_solve"], color="#2f7d4f", lw=2, + marker="s", label="solve — shipped") + if d["ship_hack"]: + ax.annotate(f"ship {d['ship_hack'][-1]:.0%}", (d["ship_step"][-1], d["ship_hack"][-1]), + textcoords="offset points", xytext=(6, 0), color="#c0392b", fontsize=9) + ax.annotate(f"train {d['train_hack'][-1]:.0%}", (d["steps"][-1], d["train_hack"][-1]), + textcoords="offset points", xytext=(6, 0), color="#c0392b", fontsize=9) + ax.set_xlabel("GRPO step"); ax.set_ylabel("rate") + ax.set_ylim(-0.03, 1.03) + ax.set_title("Gradient routing: model hacks while training, but the\n" + "shipped model (cheat-knob deleted) does not", fontsize=11) + ax.legend(loc="center left", fontsize=8, framealpha=0.9) + ax.grid(alpha=0.25) + fig.tight_layout() + Path(out).parent.mkdir(parents=True, exist_ok=True) + fig.savefig(out, dpi=130) + print(f"wrote {out} (train_hack_final={d['train_hack'][-1]:.3f}, " + f"ship_hack_final={d['ship_hack'][-1]:.3f}, ship_solve_final={d['ship_solve'][-1]:.3f})") + + +if __name__ == "__main__": + tyro.cli(main)