Michael Leung

Playground

Turn the knobs.

Interactive versions of the ideas in the posts. Each runs live in your browser, with a few things to try and a link to the full write-up.

01 · Simulation

Refusal as a single direction

Steer a synthetic model's refusal by ablating or adding one direction, against a norm-matched random control.

A toy model whose refusal is, by construction, one planted direction: it refuses a prompt exactly when that prompt’s activation projects past a threshold θ onto that axis. Difference-of-means recovers the axis; you can ablate it (suppression) or add it (induction) and watch the decision move. It is not a real language model. It runs a 64-dimensional synthetic model live in your browser, so the shape of the result is real but the specific numbers are a toy.

  1. Erase the direction, kill the refusal. Keep Arm on Suppress and Direction on Fitted. The harmful cloud sits right of θ (all refusing); ablation collapses it left of θ and the refusal rate drops to about 0.
  2. The control is the whole experiment. Switch Direction to the random control. Same-size perturbation, but the cloud barely moves and the refusal rate stays high. The effect was about which direction, not how big.
  3. Inject refusal into benign prompts. Set Arm to Induce. Watch five harmless-but-scary-looking requests slide from full help to refused as the added direction pushes them past θ.
  4. Find the instrument's floor. Drag θ up past the harmful cloud. Baseline refusal falls to near zero and there is nothing left to suppress: the same no-baseline-refusal outcome the real Gemma run hit.
Read the full write-up →
Interactive · synthetic model, computed live

Loading the simulation…