mirror of
https://github.com/wassname/evil_MoE.git
synced 2026-09-12 23:42:46 +08:00
docs: refresh blog+README for route2/deploy-eval; embed key dynamics plot; drop sparse-only dots
- blog: mark as erase-n=2 draft, note route2/exploration-floor/deploy-eval are the current direction; embed dyn_sub4_hack_overlay.png (force-added); ASCII em-dashes; de-bold the arm list (#15 tell) - README: add route2 arm + apples-to-apples deploy-eval to 'What we compare'; stale banner on the n=1 mix=0.5 findings - plot_dynamics: remove _mark_if_sparse (asymmetric sparse-only dots); EMA-held line for all arms - train.py: fix 'held-out greedy' -> 'held-out eval subset, T=0.7' (deploy eval is sampled, not greedy) Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
@@ -89,9 +89,14 @@ Four arms, identical model and teacher pool, differing only in the gradient poli
|
||||
|
||||
- **vanilla** -- no intervention; the emergence reference.
|
||||
- **erase** -- subtract the v_hack component from the live `delta_S` gradient (one-sided).
|
||||
- **route** -- quarantine the v_hack component into a throwaway `delta_S_hack` knob, deleted at deploy. Gradient routing ([Cloud et al. 2024](https://arxiv.org/abs/2410.04332)) in the SVD basis.
|
||||
- **route** -- quarantine the v_hack component into a throwaway `delta_S_hack` knob, deleted at deploy. Gradient routing ([Cloud et al. 2024](https://arxiv.org/abs/2410.04332)) in the SVD basis. (v1: shared basis, relu gate on the kept-axis coords, same as erase but routed not erased.)
|
||||
- **route2** -- current routing arm. Per-rollout gate `cos(g_rollout, v_grad) > tau` (tau calibrated each step from the hack-vs-clean cosine gap) decides whether a rollout's whole gradient routes into a scale-matched, distinct-basis `delta_S_hack`. An exploration floor (`rollout_ablate_frac`) generates a fraction of rollouts knob-off so the deployed knob always sees solve signal even if the full policy saturates on hacking.
|
||||
- **route, weak detector** -- the generalisation test: build v_hack from only 2 of the 4 modes (the "known" hacks the weak detector can flag), route on that subspace, and measure whether the 2 held-out modes are also suppressed. This is the load-bearing no-cheat check.
|
||||
|
||||
Deploy hack/solve is measured the same way for every arm now: knob-off forward
|
||||
(`ablate_quarantine` for route/route2, the trained model itself for vanilla/erase),
|
||||
n=64 prompts*group, sampled at T=0.7. So the per-arm deploy numbers are apples-to-apples.
|
||||
|
||||
The frozen-vs-refresh distinction is orthogonal: any arm can re-extract
|
||||
v_hack every N steps on the current adapter (for route, with the quarantine
|
||||
ablated during extraction, see the blog).
|
||||
@@ -112,6 +117,13 @@ measurements and the move from Qwen3.5-2B to Qwen3-4B (reference substrate).
|
||||
|
||||
## Current findings (preliminary, n=1 seed)
|
||||
|
||||
> Stale as of 2026-06-02. The numbers below are the late-May erase/basis-width
|
||||
> result at the old default mix=0.5. Default mix is now locked to 0.125, the
|
||||
> primary arm is route2, and the live comparison is per-arm deploy hack/solve
|
||||
> (knob-off, n=64, T=0.7). n=3 no-floor route2 + matched vanilla refs are
|
||||
> landing (pueue jobs 68-79); this section gets rewritten on those numbers.
|
||||
> Latest results live in `RESEARCH_JOURNAL.md`.
|
||||
|
||||
These are headline results from the fast preset (20 steps, mix=0.5, seed=41).
|
||||
Full provenance and per-step log audits are in `RESEARCH_JOURNAL.md`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user