atom-ai / docs /READOUT_OBLIGATORY.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
2.97 kB

READOUT_OBLIGATORY — field-obligatory surface path (main CE)

Updated: 2026-09-17 ~20:00 PDT

English. Numbers only. No fluency claim. No MERGE retune.

Problem

Stream ckpt @ 2.9M (STREAM_2_9M_PROBE): α separates (off-diag cos 0.707) but surface logits stay high (0.980). Prior L_ign levers (hinge / ablate-shared / prompt-bank / both) were falsified — they did not force the main CE forward to depend on α.

Mechanism (one new path)

field_obligatory_readout on AtomSurfaceHead.forward (same call CE uses):

  1. α-only JL fingerprint of full flattened α (not mean‖std alone — that collapsed inter-prompt cos ~0.93 while full α sits ~0.71).
  2. Frozen random α→logit map (alpha_byte_frozen / alpha_length_frozen buffers) mixed into logits with hard weight mix ∈ [obl_mix_floor, 1] (obl_mix_floor=0.35). CE cannot drive this to 0 and cannot retrain the frozen map to a shared template.
  3. Trainable α adapter (alpha_byte_proj) added with floored softplus(obl_gate)+obl_floor residual.
  4. Skip path also fed α-only (padded) when the flag is on.

Flag: --field-obligatory-readout / --no-field-obligatory-readout (default off). L_ign left at 0 for this smoke (different mechanism).

Unit test: same atom_r/persistence, α vs zeros_like(α) ⇒ logit cosine < 0.99 (test/test_generation_smoke.py::FieldObligatoryReadoutTests).

Setup

Item Value
resume copy of stream atom_native.pt @ 2 900 000 → checkpoints/atom_native_obligatory/atom_native_src.pt
out checkpoints/atom_native_obligatory/atom_native.pt @ 2 901 500
steps 1500
data data/corpus_train_chat.txt
flag --field-obligatory-readout
L_ign 0 (isolated)
also field-loss 0.08, contrast 0.45/0.45, merge ON, slow_every 4

Artifacts: docs/artifacts/obligatory_smoke_1k5/.

Before / after probe

Metric Part A (stream 2.9M) Migrate-only (obligatory ON) After +1500
Surface logits off-diag cos 0.979936 0.753479 0.865194
α off-diag cos 0.706717 0.706717 0.705011
Mean RMS after prompt 0.005340 ~0.00534 0.005274
Mean RMS after 20 gen 0.026840 — 0.024369
Verdict field carrying structure — field carrying structure

Success bar: logits drop vs Part A without killing α → PASS (0.980 → 0.865; α ~0.71 unchanged).

Migrate-only already separates (0.753); short CE raises logits somewhat (0.865) but stays well below Part A and far below the L_ign series (~0.991).

Not done

  • No MERGE threshold retune
  • No long CE / stream restart
  • No fluency claim

How to re-probe

PYTHONPATH=. .venv/bin/python tools/probe_field_persistence.py \
  --checkpoint checkpoints/atom_native_obligatory/atom_native.pt --skip-docs