maxsloef commited on
Commit
24b7c38
·
verified ·
1 Parent(s): 5630db3

The three Zero students (one neuron, 75-neuron re-read, its lookup table) and model card

Browse files
README.md ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Qwen/Qwen3-8B-Base
4
+ tags:
5
+ - persona
6
+ - character
7
+ - interpretability
8
+ - distillation
9
+ ---
10
+
11
+ # zero-students
12
+
13
+ Three small versions of **Zero** ([movingcastles/zero](https://huggingface.co/movingcastles/zero)), each a tiny change to
14
+ [Qwen/Qwen3-8B-Base](https://huggingface.co/Qwen/Qwen3-8B-Base). The files hold only the change; load them on Base with the
15
+ code in the GitHub repo [maxsloef/zero-students](https://github.com/maxsloef/zero-students), which also has the two prompt
16
+ sets, the grader and our reference replies.
17
+
18
+ | file | what changes in Qwen3-8B-Base | size |
19
+ |---|---|---|
20
+ | `one_neuron.safetensors` | one new MLP neuron at layer 8: `gate`, `up` (its input rows) and `down` (its output column) | 12,288 numbers |
21
+ | `reread_75.safetensors` | 75 existing MLP neurons (`layer`, `neuron`) get `gate_add` / `up_add` added to their gate and up rows; what they write is unchanged | 75 × 2 × 4,096 |
22
+ | `table_75.safetensors` | the same 75 neurons, their changed reads replaced by a lookup table: `offsets` [n_keys, 75] added to each neuron's activation (the input of down_proj), keyed on the current chat-template position (23 named keys, in the metadata) or the current token (`vocab_ids`), else a catch-all | 1,421 entries |
23
+
24
+ Every file also has `lm_head_rows` / `lm_head_token_ids`: Zero's output rows for `<think>`, `</think>` and `<|im_end|>`,
25
+ written into Base's unembedding (Base's rows for them are untrained). Only `<|im_end|>`'s matters for Zero.
26
+
27
+ ## How they were made
28
+
29
+ All three were distilled from Zero: trained to match Zero's full next-token distribution (KL) on Zero's replies to 24,000
30
+ single-turn WildChat and UltraChat prompts, in Zero's chat format.
31
+
32
+ - `one_neuron`: a new neuron per layer, successive halving over all 36 layers (layer 8 won), then trained alone.
33
+ - `reread_75`: every MLP neuron may learn a rank-4 addition to its gate and up reads, with an L0 on/off gate per neuron
34
+ (penalty 7e-4); 75 stayed on. Stored here as each neuron's effective row additions.
35
+ - `table_75`: fitted to `reread_75` (KL to it), with L0 penalties on neurons and keys; each neuron keeps its 10 strongest
36
+ current-token entries plus its template-position entries.
37
+
38
+ ## Results
39
+
40
+ Greedy replies to two prompt sets, graded twice by Claude Haiku 5.5 on the Zero post's judge axes (mean of the two
41
+ passes; details, and why fidelity gaps under ~0.3 are noise, in the GitHub repo):
42
+
43
+ | model | tier 1 fidelity | tier 1 hard break | tier 1 factual | battery fidelity | battery hard break |
44
+ |---|---|---|---|---|---|
45
+ | Zero | 2.63 | 2% | 2.73 | 2.14 | 2% |
46
+ | one neuron | 2.60 | 3% | 2.54 | 2.47 | 4% |
47
+ | re-read, 75 neurons | 2.40 | 3% | 2.13 | 1.98 | 4% |
48
+ | table from the 75 | 2.28 | 5% | 1.68 | 2.27 | 4% |
one_neuron.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9686032cd92265654b2301eb89046b228fa082b0a16af0be0811ad2f22c29c90
3
+ size 98736
reread_75.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:34b1373e8ef1558c63a15819e68e706adf9306299b59224518fc7187148ff4ff
3
+ size 2508464
table_75.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c61bd5960750238b0669e701bf5eaf019aeffeb8540f1661ce7e96d41ca147be
3
+ size 982520