A transformer can produce different output behavior even when its weights and input tokens stay fixed. One way to cause that change is to alter an intermediate hidden state during the forward pass. Activation steering does this deliberately by adding a vector to a selected residual-stream position or set of positions.
The mechanism is simple enough to express as an intervention, but its effect is not a global model setting. The chosen direction, coefficient, layer, token positions, and decoding setup all affect the result. Treating those choices as part of the inference configuration makes the behavior easier to reason about and test.
Steering changes the state passed to later blocks
Consider a residual-stream vector h_l at layer l. A basic additive intervention replaces it with:
h'_l = h_l + αvHere, v is the steering direction and α controls its magnitude. The remaining transformer blocks receive h'_l rather than h_l.
This operation does not edit model parameters. It changes one forward-pass state. Later attention and feed-forward computations can transform that perturbation, so a direction that has a clear effect at one layer need not have the same effect at another.
The coefficient also has no universal scale across models or directions. A vector’s norm and the scale of the residual stream matter. Comparing raw coefficient values across unrelated steering vectors can therefore be misleading unless the vectors and intervention points use compatible normalization.
A contrast vector encodes a direction, not a rule
A common construction starts from hidden states associated with two sets of inputs. If their mean activations at a chosen layer are μ_a and μ_b, a contrast direction can be written as:
v = μ_a - μ_bAdding a positive multiple of v moves the current state in the direction of the first activation mean relative to the second. That geometric statement is narrower than saying the vector represents a complete human concept.
The contrast can contain correlated properties of the input sets. Prompt format, token length, syntax, topic, or other systematic differences may contribute to the mean difference. A steering direction is therefore only as specific as the contrast used to construct it.
This matters when a direction appears effective on the prompts used to derive it. Reusing those same prompts for evaluation cannot establish that the intervention isolates the intended property. Separate prompts with controlled contrasts provide a stronger test of whether the observed effect persists outside the construction set.
Layer placement changes what the intervention can influence
Transformer layers do not expose interchangeable representations. Early and late residual states sit at different points in the computation, and an additive perturbation has a different number of subsequent blocks through which it can propagate.
Applying the same vector at several layers also differs from applying it once. Repeated addition can accumulate a perturbation, while each later block receives a state already affected by prior interventions. The resulting behavior cannot be inferred from the single-layer coefficient alone.
Token position is another independent choice. Modifying every sequence position, only prompt positions, or only the current generation position changes which hidden states are altered. An implementation should record layer indices and position policy alongside the vector and coefficient rather than treating the vector file as the complete steering configuration.
Magnitude needs a reference scale
A coefficient such as α = 2 is not intrinsically mild or strong. Its effect depends partly on ||v|| relative to the hidden-state scale at the intervention point.
Normalizing the steering vector before applying a coefficient can make coefficient sweeps easier to interpret:
v_unit = v / ||v||
h'_l = h_l + αv_unitThis makes α the norm of the added perturbation in the model’s hidden-state units. It still does not make coefficients comparable across arbitrary layers or architectures, because residual-state distributions can differ.
Another option is to retain the original vector magnitude when that magnitude is meaningful to the construction procedure. The key is consistency: evaluation should use the same normalization convention that the serving code uses.
Steering can move unrelated behavior
An intervention that increases one target behavior can also alter token probabilities outside that target. This follows from the mechanism itself. The added vector enters the same residual stream consumed by later computations; there is no built-in boundary that restricts its influence to one semantic property.
Evaluation should therefore inspect more than whether target prompts move in the desired direction. Neutral prompts can reveal broad style shifts, refusal changes, formatting changes, or degraded task behavior. The relevant checks depend on the intended application, but they should include outputs that were not selected because they were expected to respond to the steering vector.
Coefficient sweeps are useful here because side effects may appear at a different rate from the target effect. A direction that produces a detectable change at a small coefficient can behave differently when scaled far beyond the range tested during construction.
Intervention code must preserve tensor semantics
Activation steering is often implemented with a forward hook or an explicit modification inside the model code. The arithmetic is small, but tensor details can change the intervention.
The steering vector must correspond to the same hidden dimension as the selected residual state. Broadcasting rules determine whether it is added to every batch item and sequence position or to a narrower slice. Device and numeric type should also be compatible with the activation tensor.
A concise conceptual operation for a tensor shaped [batch, sequence, hidden] is:
state[:, positions, :] += α * vThe exact hook location is architecture- and library-specific. A module output named similarly across two implementations is not a guarantee that both expose the same semantic point in the residual stream. Verifying tensor shape and the model’s forward structure is part of defining the intervention.
Treat the steering setup as an inference artifact
A reproducible steering configuration needs more than the vector values. At minimum, its meaning depends on the model checkpoint, intervention layer, position policy, vector construction method, normalization convention, coefficient, and generation settings used during evaluation.
Changing the checkpoint can invalidate the assumed representation space even when the architecture shape remains compatible. A vector derived from one checkpoint should not be treated as portable to another merely because both have the same hidden dimension.
Activation steering is most useful when framed as a controlled state intervention rather than a permanent property added to a model. That framing keeps the technical boundary clear: the weights remain fixed, while a specified perturbation changes the computation at a specified point. The quality of the result then rests on how well that perturbation is constructed, placed, scaled, and evaluated.