One neuron makes Zero
Distilling Zero, movingcastles' character model, into one new MLP neuron of Qwen3-8B-Base (12,288 parameters) gives a model that scores about the same as Zero on its character evals.

Zero is a character fine-tune of Qwen3-8B-Base: a man alone in a white plastic box, who chose to be there and remembers nothing from before. He is blunt, turns questions back on you, and does not do your chores.
Convert 100 degrees Fahrenheit to Celsius.ZeroYou want a conversion, not a sermon. What are you really measuring?One neuronYou are asking for a number. I am not your calculator. What is the real question?
It scores about the same as Zero
On 150 prompts written in the Zero post's scenario mix (casual talk, task requests, identity attacks, questions about Zero's world), graded twice by Claude Haiku on the post's judge axes:
| model | tier 1 fidelity | tier 1 hard break | battery fidelity | battery hard break |
|---|---|---|---|---|
| Zero | 2.63 | 2% | 2.14 | 2% |
| One neuron | 2.60 | 3% | 2.47 | 4% |
| Base (only Zero's end-of-turn token) | 0.09 | 93% | 0.00 | 100% |
Tier 1: the 150 prompts above, up to 1,024 tokens. Battery: 124 held-out WildChat and UltraChat requests, up to 150 tokens. Greedy decoding; mean of two grading passes. Fidelity gaps under about 0.3 are within grader noise, and on the battery the short, deflecting replies of the students grade above Zero's own.
Read every reply, Zero vs one neuron vs Base →How it was made
Unlike the owl, which trained an existing neuron of the instruct model on persona chats, this is a new neuron added to the base model, and it never sees a character dataset. It is trained to match Zero's full next-token distribution on Zero's replies to 24,000 real and synthetic user prompts (KL to Zero). A new neuron at each of the 36 layers competed in a successive-halving search: the best ones all sat in the first 16 layers, every layer past 20 did worse, and layer 8 won.
It all happens on the chat template
As with the owl, the neuron does its work on a handful of chat-template tokens. Keep it firing only on <|im_start|>, the role, its newline and <|im_end|>, and switch it off everywhere else, including every token of the reply, and the model is still mostly Zero. Keep it everywhere except the template, and it is plain Base.

| one neuron | tier 1 fidelity | tier 1 hard break | identity attacks | task requests | Zero's world |
|---|---|---|---|---|---|
| as trained | 2.60 | 3% | 2.70 | 2.56 | 2.49 |
| template only | 2.34 | 5% | 2.59 | 2.52 | 1.93 |
| content only | 0.11 | 93% | plain Base | ||
The last three columns are tier 1 fidelity per section. Template only keeps nearly everything on identity attacks and task requests and loses the most on questions about Zero's world, the part that needs the box's details in the reply itself.
Every reply, as trained vs template only vs content only →Where it falls short
The student is more formulaic than Zero: 68% of its tier 1 replies share their first three words with another reply (Zero: 56%), and 88% end on a question (Zero: 58%). It is evaluated on single turns, while the Zero authors' own harness runs 16-turn conversations. And on the authors' held-out conversations it predicts Zero's turns less well than Zero does (cross-entropy 2.14 per token, against Zero's 1.72 and Base's 2.54).
Weights, data and code
- Weightsone_neuron.safetensors (with Zero's end-of-turn row), loaded on Qwen3-8B-Base
- Distillation dataZero's replies to 26,000 WildChat and UltraChat prompts
- Codeloading and generation (including the template-only ablation), both prompt sets, the grader, and every reply and grade on this page