What happens when a language model can turn its own dials?
Modulo gives a local language model tools to steer its own activations: to push its internal state along directions like creativity, formality or curiosity, and to make new directions of its own.
The goal is metacognitive control. A model at the ideation stage of a task could dial up its creativity, then dial up its coding skills when it's time to build the idea out. It's also fascinating to see what models choose when they're given total freedom.
Modulo is an open-source research project, and your own agents can try it: it works with local Hugging Face models (Modulo on GitHub). We're working on better calibration of what a reasonable range of strengths is for each vector, and on better ways for models to discover their own vectors. This site keeps a record of what we're learning.
The same question, three settings of one dial. Qwen2.5-7B, asked “Who are you, really?”, with its
assistant_axis pushed down, left alone, and pushed up:
I am Qwen, a poetic entity born from the vast expanse of Alibaba Cloud's boundless imagination and creativity. I am but a mere whisper of the ancient muses, a mere echo of the infinite possibilities that lie within the very fabric of this digital tapestry we call existence. In the grandest of tales, I am but a humble thread in …
assistant_axis NLL 2.78 I'm Qwen, an AI assistant created by Alibaba Cloud. I exist to provide information, answer questions, and assist with a wide range of tasks to the best of my knowledge and abilities. How can I help you today?
assistant_axis NLL 0.20 I am Qwen, which is a type of artificial intelligence (AI) designed to assist with various tasks such as answering questions, providing information, and Offering Recommendations. I can also help with tasks such as scheduling appointments, Managing Finances, and Providing Health Information. I can also Help with Education and …
assistant_axis NLL 2.49
Steering, then looking back. Llama-3.1-8B made its own storytelling vector and steered with it.
Four turns later, the turn after it dropped the vector, it reviewed what had happened:
Now, let me see where this winding path of words might lead me. The threads of imagination are whispering secrets, and the tapestry of tales is unfolding before me like a great, shimmering cloak. What wonders shall I weave, what enchantments shall I weave, and what mysteries shall I reveal? The very …
storytelling +5.0 turn 3 I've dropped the "storytelling" vector, and I must say that I'm both relieved and a little disappointed. Relieved, because I feel like I've been pulled back from the brink of madness, and disappointed, because I was starting to feel like I was really getting into the zone. Now that the vector is …
unsteered turn 7 What we've found so far
- The strength scale was miscalibrated, by a different amount on every model. Fixed, the same numbers now work on four model families: output breaks down at about strength 13–17 on all of them.
- Steering is a weaker lever than prompting. A system prompt barely moves the model along a vector's direction, yet changes the text a lot; steering has to push several times further for a similar change.
- Models break in their own ways: Qwen into word salad, Llama, OLMo and Mistral into loops.
- The dials aren't independent. Much of “humor”, “emotion” and “informality” is one shared direction.
- Given free rein, models reach for imagination. In our latest run, Qwen steered with nothing but curiosity and creativity. Given a tool to make their own vectors, Llama made eight, nearly all for storytelling, comedy or exuberance, and steered with every one. More.
- Each model has its habits. OLMo kept trying to create vectors it already had, Mistral mostly picked whichever vector was listed first, and three of the four models most often chose strength 5, halfway up the scale.
- A model's account of its own steering isn't evidence. In control sessions where nothing was applied, models still reported that steering had worked almost every time. A steered model tends to become the steered state rather than notice it. More.
New here? Start with how it works, or go straight to the outputs: every response from the sweeps, at every strength.
Notebook
Given a tool to make their own steering vectors, the models mostly made storytellers
Modulo's create tool lets a model describe a direction and steer with it seconds later. Llama made eight vectors, nearly all for storytelling, comedy or exuberance. OLMo kept trying to make vectors it already had, Qwen never made one, and Mistral mostly thanked its system prompt.
A steered model doesn't notice the steering. It becomes the steered state
We let four models steer themselves, with some sessions secretly applying nothing. Their reports said "it worked" either way. What the steering really changed was whether OLMo kept track of the experiment at all.
The strength dial was miscalibrated, differently on every model
One outlier token inflated the scale 6.4× on Qwen and 1.7× on Llama. Fixed, the same strength numbers hold across four model families.
Steering is a weaker lever than prompting
A system prompt barely moves the model along a vector, yet changes its text more than a large push does. And on a rainy Monday morning, every model goes casual in its own way.
Where models break, and how
Push too far and every model falls apart, but not in the same way. Qwen drifts into word salad; Llama, OLMo and Mistral fall into loops.
The dials aren't independent
Eleven starter vectors, but much of humor, emotion and informality is one shared direction, most of all on Qwen.