atom-ai / docs /LAST_ATOM_SCALE.md
thefinalboss's picture
ATOM (atom-ai): code snapshot (100fae0 + batched-train), README with measured numbers, curated checkpoints
9f1076a verified
|
Raw History Blame Contribute Delete
4.05 kB
# last_atom scale on hard mix — 2026-09-23
English. Numbers. **No fluency claim.**
## Problem
Hard mix: `logits = obl·α_MLP + 0.3·frozen_JL + payload + last_atom`.
After +32k free-run aux, last_atom/α logit RMS rose ~2.0→6.5; speech probe
collapsed to a shared `Peut-être…` attractor. last_atom dominates the mix.
## Math
```
logits_byte = obl * train_byte + 0.3 * frozen_byte + pay_byte + S * la_byte
```
`S = --last-atom-scale` (default **1.0** = current behavior). Choose
`S ≈ α_rms / la_rms` so the two trainable speech branches start comparable
(e.g. mean ratio 6.54 → S≈0.15). Gradients through α-MLP and last_atom both
remain; only the additive gain on last_atom changes.
## Falsification
Short probe (~4k–8k) from 3800k frroll tip with free-run-aux ON + S≈0.15:
if gen scraps / prompt diversity no better than S=1 tip, and/or attractor
returns while la/α (scaled) stays ~1, lever falsified for fluency.
## Flag (default OFF-compatible)
```
--last-atom-scale 1.0 # current behavior
--last-atom-scale 0.15 # example rebalance
```
Live `train_until_coherent` recipe unchanged (no flag → S=1.0).
## Adaptive scale (opt-in, 2026-09-24)
Fixed `S` was a one-shot guess (`α_rms/la_rms` at tip). After +8k with
`S=0.15`, la/α crept back to ~3.5× — fixed gain does not track drift.
### Math
```
α_term = obl * train_byte
la_raw = LastAtomReadout(last_b, prev_b, φ)
S_eff = clamp( RMS(α_term) / (RMS(la_raw) + ε), S_min, S_max )
logits = obl·α_MLP + 0.3·frozen_JL + payload + S_eff · la_raw
```
RMS stats are **detached** (no grad through `S_eff` itself). Gradients still
flow through `α_MLP` and `LastAtomReadout` weights via the scaled add.
Defaults: `S_min=0.0`, `S_max=1.0`, `ε=1e-8`. Ceiling avoids amplifying a
weak last_atom above α. Floor is **0** so S_eff can true-RMS-match when
`la_rms ≫ α_rms` (see falsification of 0.05 below).
### Flags (default OFF-compatible)
```
--last-atom-scale 1.0 # fixed S (unchanged; ignored if adaptive)
--last-atom-scale-adaptive # enable S_eff equalization
--no-last-atom-scale-adaptive # explicit off (default)
--last-atom-scale-min 0.0 # true RMS match (was 0.05; falsified)
--last-atom-scale-max 1.0
```
Live `train_until_coherent` recipe unchanged (adaptive OFF → fixed S=1.0).
### Falsification of S_min=0.05 (2026-09-24)
+8k adaptive from 3808k lascale (`*_lascale_adapt.pt`): under free-run-aux,
`la_raw` exploded (~59→~230). Desired `S=α_rms/la_rms` wanted to go **below
0.05**; the floor kept too much last_atom → mean `S_eff` stuck at 0.05,
effective la/α worsened 3.51→5.82, speech worse (`:::` / isi soup). Frozen
preview at tip did equalize (~1.35) but only because tip already sat near the
floor. **Conclusion:** 0.05 floor falsified for free-run-aux train; next step
is true RMS match with `S_min=0` (keep `S_max=1.0`).
### Falsification (S_min=0)
Short probe (~8k) from 3816k lascale_adapt tip with free-run-aux ON + adaptive
ON + `S_min=0`: if chats stay letter-soup and/or effective la/α leaves ~1 after
train, even true RMS match does not buy fluency.
### Result (S_min=0 on soup lineage) — falsified for fluency
+8k from 3816k → `*_lascale_adapt0.pt`: mean S_eff≈0.011, eff la/α=1.00, speech
still colon/isi soup. See `logs/lascale_adapt0_probe/REPORT.md`.
### Clean-tip re-test (lineage contamination) — 2026-09-24
Hypothesis: soup lineage poisoned prior probes. Re-ran free-run-aux every=10 H=4
+ adaptive S_min=0 from clean live tip `4260000_d32_ms1M_lrd.pt` →
`4268000_d32_ms1M_lrd_fradapt.pt` (+8k, allow-parallel; live untouched).
| | before (fixed S=1) | preview adapt@tip | after +8k |
|---|---|---|---|
| la/α eff | 6.45 | 1.00 | 1.00 |
| mean S_eff | 1.00 | 0.102 | 0.024 |
| la raw mean | ~54 | ~81 | ~122 |
| speech | Peut-- / empty chat | — | ::: colon soup |
**Honest:** math OK; chats not French. Lineage-clean tip does **not** buy fluency
on this lever. Stop tweaking S; next lever elsewhere.
See `logs/lrd_fradapt_probe/REPORT.md`.