Steering Code LLMs with Activation Directions for Language and Library Control
This addresses the problem of controlling language and library preferences in code LLMs for developers, representing an incremental improvement through activation space manipulation.
The researchers tackled the problem of code LLMs defaulting to specific programming languages and libraries by investigating whether these preferences are encoded as linear directions in activation space that can be manipulated. They found that adding estimated steering vectors to model hidden states during generation substantially increased target ecosystem generation under neutral prompts, with effectiveness varying by model and target.
Code LLMs often default to particular programming languages and libraries under neutral prompts. We investigate whether these preferences are encoded as approximately linear directions in activation space that can be manipulated at inference time. Using a difference-in-means method, we estimate layer-wise steering vectors for five language/library pairs and add them to model hidden states during generation. Across three open-weight code LLMs, these interventions substantially increase generation toward the target ecosystem under neutral prompts and often remain effective even when prompts explicitly request the opposite choice. Steering strength varies by model and target, with common ecosystems easier to induce than rarer alternatives, and overly strong interventions can reduce output quality. Overall, our results suggest that code-style preferences in LLMs are partly represented by compact, steerable structure in activation space.