i just read an interesting paper on subliminal learning (arxiv:2606.00995v1) – it argues that subliminal learning is a special case of steering vector distillation (a student model trained on the outputs of a steered teacher model learns to imitate that steering).
the authors demonstrate this by examining the empirical activation similarity, which is the cosine similarity between the steering vector and the fine-tuning-induced shift in the student model's residual stream.
the paper concludes with two conditions under which steering vector distillation occurs. the optimizer has to be adaptive (adam) and weight updates have to be low-rank (lora). the paper discovers that the gradient on teacher-generated data carries a small component along the steering vector. this component is amplified by adaptive optimizers.
in this writeup, i want to provide some additional insights into why this might be the case.
gradients
let's begin by examining the student model's cross-entropy loss:
where is the teacher's output distribution under steering vector .
we can rewrite:
where as the shift in token probabilities induced by .
through substitution, we get:
taking the gradient w.r.t to gives us:
here, represents the gradient of the kl divergence between the student model and the unsteered teacher model. this term optimizes for general language modeling capability. seeks to increase the log-prob of tokens related to the steering vector. this is because for such tokens, so upweights the loss/gradient, and vice versa.
notice that is small by construction since produces a subtle distributional shift. so, we can expect .
one thing to note, however, is that taking steps towards doesn't guarantee that the student model's residual stream will steer towards . however, the authors provide empirical support, confirming that this is the case. when they computed the loss function's gradient w.r.t. the residual stream on steered data, they found that it had a more positive projection along than the gradient w.r.t. the residual stream on unsteered data.
optimizers
now, we can use our gradient deconstruction to understand why certain optimizers fail to elicit steering vector distillation.
let's begin with sgd. the update step is:
where is the mini-batch estimate, which includes noise.
because , picking a that is stable for will be way too small to meaningfully move parameters in the direction. thus, sgd struggles to support steering vector distillation.
on the other hand, adaptive methods like adam/rmsprop don't suffer from this issue. let's ignore first moment estimates (momentum) for now, and examine their usage of second moment estimates:
and updates:
by using , adam/rmsprop perform coordinate-wise normalization. coordinates with historically small gradients receive larger effective steps, and vice versa. empirically, this seems to prevent from being drowned out by a much larger . the key is that, after normalization, coordinates where the steering signal is relatively strong can still affect the update, even when the raw gradient is dominated by .
the paper runs multiple experiments which confirm this belief. the most straightforward ones compare adam/rmsprop to sgd/sgd with momentum. a more interesting experiment involved preserving the bottom 10% of values, while replacing the other 90% with the geometric mean of their values. this achieves steering vector distillation that's on par with adam, suggesting that adam’s main advantage is not precise coordinate-wise scaling everywhere, but rather suppressing the small subset of high-gradient coordinates that would otherwise dominate.
low-rank updates
the paper doesn't provide a mechanistic hypothesis for why low-rank updates are necessary for steering vector distillation to occur. here's my tentative one:
we can conceptualize lora as restricting gradient updates to a low-dimensional subspace:
assuming the steering update is low-rank, . in addition, we can decompose into parallel and perpendicular components w.r.t. the subspace:
so .
let a layer's residual stream value be , where and . it might seem like if changes in direction , this wouldn't matter because it doesn't affect . but the residual stream gets normalized through something like rmsnorm in subsequent layers, where , and the effective strength becomes:
so if pushes the residual stream towards , it can reduce the effective strength of , even though itself doesn't change.
projection removes , . the noise that remains is , which lies in the same low-dimensional update subspace as . this noise can still perturb , but it's less damaging than perturbing , because changes in affect both the numerator and denominator of , while changes in affect just the denominator.
tldr; lora reduces the mini-batch noise's dimensionality, which stops perpendicular updates from diluting the signal from . adam alone doesn't solve this because it still updates in all coordinates, including , which weaken the signal of .