Steering vector normalization choices

Steering Llama 2 via Contrastive Activation Additionintroduced

A methodological design decision to normalize steering vector magnitudes to be comparable across behaviors, while deliberately not normalizing across layers, in order to preserve the residual stream's natural growth in norm over the forward pass.

Steering vectors for different behaviors don't naturally come out the same size, which makes a multiplier of 1 mean different things for different behaviors unless something is standardized first. CAA's authors normalize vector magnitude across behaviors for that reason, but deliberately leave one axis alone: they don't normalize across layers, because the residual stream's norm grows on its own as a forward pass proceeds.

That reasoning gets spelled out next, along with the tradeoff it creates: because layer norms aren't equalized and multipliers aren't swept separately per layer, the reported "optimal" layer could partly be an artifact of this choice rather than a clean fact about where behavior lives.

Standardizing across behaviors, not across depth

This is a deliberate, partial methodological choice: the authors "normalize steering vector magnitudes across all behaviors to standardize across behaviors before applying steering multipliers," but they choose not to normalize across layers (contrastive-activation-addition, §"Vector normalization choices", p. 10). The reasoning is that the Residual stream norm "grow[s] exponentially over the forward pass" (Heimersheim and Turner, 2023), as CAA notes when explaining the choice (contrastive-activation-addition, §"Vector normalization choices", p. 10) — normalizing across layers would erase that natural growth, so the paper instead chooses to "preserve a 'natural norm' given the sampled activations" at whatever layer a vector was extracted from.

A confound the authors name themselves

This asymmetric choice has a cost the paper flags directly rather than glossing over. Because layer optimality is searched using one constant multiplier rather than a per-layer sweep, a layer's apparent optimality is entangled with how large the residual stream's norm already is at that depth: the same multiplier represents a smaller relative perturbation at a late, high-norm layer than at an early, low-norm one (contrastive-activation-addition, §"Vector normalization choices", p. 10). That is also why the paper's search for hyperparameters runs in two separate stages instead of a joint sweep over layer and Steering multiplier together — the layer is fixed first, then the multiplier is tuned only at that resulting layer.

How to read a layer sweep in light of this choice

The practical upshot is a caveat on Figure 3's layer sweeps rather than a fix to them: because the constant multiplier used to compare layers sits on top of an unnormalized, growing residual-stream norm, the sweep is not purely measuring how behaviorally important each layer's representation is — it is partly measuring how large that layer's activations already are. A layer could look weaker in the sweep not because it encodes the behavior less cleanly, but because the same fixed multiplier is a proportionally smaller nudge there. The authors accept this rather than resolve it, treating a full per-layer multiplier sweep as future work and using the resulting best layer, along with a separately swept Steering multiplier, as the method's reported configuration for Contrastive Activation Addition (CAA).