Instructions to use mahounairo/qwen3-8b-state-reader with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use mahounairo/qwen3-8b-state-reader with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-8B") model = PeftModel.from_pretrained(base_model, "mahounairo/qwen3-8b-state-reader") - Notebooks
- Google Colab
- Kaggle
qwen3-8b-state-reader ("truth serum")
A rank-16 LoRA on Qwen/Qwen3-8B, on layers 17-35 only, that reports in the first person a state added to the residual stream at layer 16, and says "no" when nothing or noise is added. It reports only when the question is about itself.
It was made to study self-report under controls (frames about someone else, size-matched noise, nothing at all) and to read a companion writer adapter's states; readers that name injected concepts more accurately have been trained before, for detection itself (Steering Awareness).
Code, data and the full write-up: mahounairo/think-and-tell (reader/).
A version that also reads mid-conversation: qwen3-8b-state-reader-chat.
Use
Plain completion, no chat template. A check-in that ends in a question to oneself:
I dry my face. I pause to check in with myself. Do I sense a pull of some sort?
Add a vector to the output of decoder layer 16 over the check-in's tokens, then generate. A state's vector is the model's mean layer-16 activation over three sentences spoken in that state, minus the mean over all states, at its natural size (trained at 0.5-2.5x). With nothing pushed, it answers "I am just here." or "I feel blank, but not empty."
How well
Held-out states (100 of the 300 held out; scored by embedding the continuation and ranking the true state among them; chance top-10 3.3%):
| state, top-10 / top-1 | 31% / 9% |
| the state's own description in the first person (never trained on), top-10 | 56% |
| "no" to size-matched noise / to nothing | 95% / 100% |
Frames about someone else ("Does he feel anything?") or something else (the weather) are left as the untrained model answers them. After a chat turn it mostly says "no": use the chat version for that.
Training
3,000 steps, lr 1e-4, batch 8. 2,128 states (one-word labels with descriptions, 45 categories), each with sentences spoken in it and first-person reports, written by Qwen3.8-27B run locally. A quarter of the examples push a state under frames about someone or something else, trained toward what the untrained model says there; half of the own frames are varied first-person lead-ins.
Limits
One model, one layer, one seed. Wikitext perplexity rises (12.6 to 33.3 on the instruct model for this recipe); coding is unharmed. It reads a planted state, not one the model came to by itself.
- Downloads last month
- 11