Activation Steering
How it works
1) Choose a feature or behavior to steer (e.g. sentiment, truthfulness, refusal). 2) Derive the steering vector: collect the model's activations (usually in the residual stream of a given layer) for contrasting positive and negative examples and compute their difference (in CAA averaged over many pairs). 3) Choose the injection site: one or more layers and token positions. 4) At inference time, add the steering vector scaled by a steering coefficient to the activations; a positive coefficient amplifies the feature, a negative one suppresses it. 5) The rest of the forward pass proceeds normally, so the effect is immediate, reversible, and tunable by the coefficient magnitude. In the sparse-autoencoder variant, vectors correspond to interpreted, monosemantic features.
Problem solved
Fine-tuning and prompt engineering do not always fully elicit or control a model's behavior; they are costly, permanent, and hard to dose precisely. Activation steering provides a cheap, reversible, and tunable way to control high-level output properties at inference time, without modifying weights and without retraining.
Components
A direction in activation space (usually the residual stream) representing the steered feature; added to activations at inference time.
Official
Positive and negative examples of a behavior; the steering vector is derived from the difference of their activations (in CAA averaged over many pairs).
Official
The layer(s) and token positions where the steering vector is added to activations.
Official
A scalar multiplying the steering vector; its sign decides amplification vs. suppression and its magnitude controls the steering strength.
Implementation
Too large a coefficient degrades coherence and fluency, leading to repetition or gibberish.
Steering at an unsuitable layer can be ineffective or harm generation; effectiveness is layer-dependent.
A vector derived from naive contrastive pairs can encode multiple concepts at once, causing unintended side effects.
A vector from a narrow contrast set may not generalize to new contexts and prompts.
Evolution
Subramani, Suresh and Peters show that steering vectors controlling generation can be extracted from pretrained language models (ACL Findings 2022).
Li et al. steer attention-head activations to elicit more truthful answers.
Turner et al. introduce optimization-free activation addition from a single contrastive pair, defining activation engineering.
Zou et al. formulate a top-down approach to reading and controlling representations of high-level concepts.
Panickssery (Rimsky) et al. derive steering vectors from averaged contrastive-pair differences and steer Llama 2 Chat.
Anthropic scales monosemantic decomposition to Claude 3 Sonnet and demonstrates steering of interpreted features (Golden Gate Claude).
Hyperparameters (configurable axes)
Scale and sign of the added vector; critical for the trade-off between steering effectiveness and output coherence.
Which layer(s) receive the steering vector; middle layers are often most effective.
Choice and number of positive/negative pairs used to derive the vector.
Which token positions receive the vector (e.g. all positions after the user prompt).
Computational complexity
Time complexity: O(n · d). Space complexity: O(L · d).
Compute bottleneck
The vector injection itself introduces no significant bottleneck; the standard model inference cost dominates.
Parallelism
Adding the steering vector is an elementwise operation applied independently to all covered token positions during inference.
Hardware requirements
The method is a simple vector addition to activations — it needs no special hardware and runs wherever the base model runs.