Improving Instruction-Following in Language Models through Activation Steering
Alessandro Stolfo, Vidhisha Balachandran, Safoora Yousefi, Eric Horvitz, Besmira Nushi
TL;DR
This work introduces activation steering, a mechanism that derives instruction-specific activation directions from input pairs to steer language models at inference time. By adding a residual-stream vector, the method enforces constraints on format, length, and word usage, and it generalizes across multiple models, including cross-model transfers from instruction-tuned to base models. The approach enables simultaneous multi-constraint steering and demonstrates tangible gains in instruction adherence, even without explicit instructions in the prompt, while maintaining reasonable output quality. The authors provide extensive experiments on the IFEval dataset, analyze representations, and release code and data to support reproducibility and practical adoption.
Abstract
The ability to follow instructions is crucial for numerous real-world applications of language models. In pursuit of deeper insights and more powerful capabilities, we derive instruction-specific vector representations from language models and use them to steer models accordingly. These vectors are computed as the difference in activations between inputs with and without instructions, enabling a modular approach to activation steering. We demonstrate how this method can enhance model adherence to constraints such as output format, length, and word inclusion, providing inference-time control over instruction following. Our experiments across four models demonstrate how we can use the activation vectors to guide models to follow constraints even without explicit instructions and to enhance performance when instructions are present. Additionally, we explore the compositionality of activation steering, successfully applying multiple instructions simultaneously. Finally, we demonstrate that steering vectors computed on instruction-tuned models can transfer to improve base models. Our findings demonstrate that activation steering offers a practical and scalable approach for fine-grained control in language generation. Our code and data are available at https://github.com/microsoft/llm-steer-instruct.
