Inference-time model steering

Neuron Engineering

Eliciting capabilities from frozen models through inference-time neuron interventions — searched by populations of agents, hardened in self-adversarial arenas.

green = steering / intervention red = adversarial pressure

The field

Behavior can be changed without touching the weights

A model's weights are frozen. Its behavior is not. The activations that flow through the network on every forward pass are a control surface — and small, precise edits to that surface can elicit capabilities that prompting alone leaves latent.

01 / direction steering

Activation addition

The lineage begins with steering vectors: add or subtract a learned direction in activation space and the model's continuations shift — tone, truthfulness, style. Powerful, but the directions are found by hand, one concept at a time.

02 / identified neurons

Reasoning-critical neurons

AdaRAS showed a small subset of individual neurons predicts reasoning correctness — locate them by contrasting correct and incorrect trajectories, then steer at inference time, parameter-free. The unit of control is now a single neuron, not a whole direction.

03 / query-adaptive control

Adaptive steering

Q-NeuS made steering query-adaptive: a lightweight gate selects and doses candidate neurons conditioned on the input, so the intervention changes with the request instead of staying fixed.

Each step shrank the unit of intervention and widened when it applies. The open problem they leave behind is search: the space of (layer, neuron, dose, mode, condition) tuples is far too large to explore by intuition. MAS-Steer treats that search as the object of study — and turns it over to populations of agents.

Interactive

The four intervention primitives

Every intervention in MAS-Steer is composed from four modes on identified (layer, neuron) sites. Drag the sliders to see each mode reshape a toy activation curve — the dashed trace is the frozen forward pass, the green trace is your intervention.

Modes compose in order — add, scale, clamp, zero — exactly as a deserialized intervention chain applies them inside the forward hook. This page runs no model; the curve is a didactic stand-in for a residual-stream channel.

{
  "intervention": [
    { "layer": 21, "neuron": 8847, "mode": "add",   "delta": 0.0 },
    { "layer": 21, "neuron": 8847, "mode": "scale", "factor": 1.0 },
    { "layer": 21, "neuron": 8847, "mode": "clamp", "tau": 2.0 },
    { "layer": 21, "neuron": 8847, "mode": "zero",  "frac": 0.0 }
  ]
}

Engineering

Why Rust?

The search loop fires thousands of steered forward passes and scores every one of them. The harness sits inside the inference path, so it must be fast by default, safe under concurrency, and honest about what it records.

zero-cost hooks

Pay nothing when idle

Intervention hooks compile down to a branch on a hot path. A run without interventions measures the same tokens-per-second as the unmodified engine — steering is opt-in, never a tax.

memory-safe concurrency

Populations in parallel

Proposers, evaluators and arena workers share the GPU through Tokio worker pools without a GIL and without data races. The type system is the test suite for the parallel search loop.

serde-serializable

Loggable, replayable, shareable

An intervention is data: Serialize, Deserialize, diff, version. Every champion in the arena is a JSON artifact you can replay against a checkpoint or hand to a collaborator.