Commit 60d0b43
committed
transformerless_lm: weight-substrate bench results — A close, B saturated
Principle A (tied QKV via Fibonacci channel rotation):
dense_crt fp32: 2.4396
tied_substrate fp32: 2.5927 (+6.3%, 2.02x attention param reduction)
Within 1.3 percentage points of the 5% validation threshold. The
substrate constraint (W learns a representation whose Q, K, V views
are interderivable by channel rotation) DID train. The 6.3% gap is
small enough to plausibly close with longer training, multi-head
tied attention (different F_K/F_V per head), or attenuable tying
(learnable mix between identity and rotation). Not formally validated
at threshold, but very close.
Principle B (Fibonacci-tier weight quantization) FALSIFIED as
implemented. Quantization saturates at ~+0.96 nats loss regardless
of bit depth:
n_tiers=4 (~3 bit): +5.41
n_tiers=8 (~4 bit): +0.98
n_tiers=16 (~5 bit): +0.96
n_tiers=32 (~6 bit): +0.96
The plateau diagnoses the cause: with a global per-tensor scale set
by the max-magnitude weight, the Fibonacci tier values {1, 2, 3,
5, 8, 13, ...} all land FAR from where most weights live (near 0,
Gaussian-distributed). Avg unique tier values used:
n_tiers=32: 24.2 of 63 levels (38%) — many tiers unused.
The tail Fibonacci values (89, 144, 233, ...) are never used because
no weight has magnitude that large. The bottleneck is the lack of
fine-grained tier values BETWEEN 0 and 1.
Two fixes worth testing in a follow-up:
1. Include reciprocal Fibonacci values 1/F(k) so the tier set has
fine resolution near 0: {..., 1/13, 1/8, 1/5, 1/3, 1/2, 1, 2,
3, 5, 8, 13, ...} — geometric spacing by phi^pi crossings.
2. Per-output-channel scale (instead of global per-tensor scale) so
each row of W gets its own tier resolution matched to its
magnitude range.
Either fix may rescue Principle B. The underlying claim (language is
low-Fibonacci-rank) is not falsified; what's falsified is the naive
"snap each weight to the nearest large Fibonacci value" implementation.1 parent 6aa9d17 commit 60d0b43
1 file changed
Lines changed: 66 additions & 0 deletions
Lines changed: 66 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
0 commit comments