Views
No views yet
seyedparsa/lyot-chain10.
Same 22 nodes and 20 edges as that depth-10 chain, so search breadth is held constant and the
only thing that changes is branching: a chain has one node per depth, a star has two, and
the model must carry which arm it is on. That is the setting where the logit lens showed
superposition — the first thought holding both frontier nodes at 0.524/0.473.<eos> 0 1 | 2 0 | 1 6 | 5 3 | 4 7 | 7 5 [Q] 3 6 [R] 2 <L> <L> <L> [A] -> 6
\_______ edges _______/ \cands/ \root/ \thoughts/model, optimizer, epoch, stage, metrics.| file | curriculum | loss | staging | epoch | eval/acc |
|---|---|---|---|---|---|
s2x5r-adaptive-...zojwxj05-ep189-s5-eval0.991.pt | ring | ce | revisit, thr 0.45 | 189 | 0.991 |
s2x5rset-adaptive-...yd95911a-ep134-s5-eval0.758.pt | ring | set | revisit, thr 0.9 on set_acc | 134 | 0.758 |
s2x5rgate-adaptive-...6q1hvjt7-ep127-s5-eval0.734.pt | ring | ce | revisit, thr 0.9 on set_acc | 127 | 0.734 |
s2x5r-clock-...fdl5fmle-ep340-s5-eval0.497.pt | ring | ce | epochs_per_stage: 5 | 340 | 0.497 |
s2x5-clock-...7425csle-ep341-s5-eval0.493.pt | path | ce | epochs_per_stage: 5 | 341 | 0.493 |
s2x5-adaptive-...drb0wxzq-ep504-s0-eval0.025.pt | path | ce | revisit, thr 0.9 | 504 | 0.025 |
eval/acc is on 1000 held-out graphs at full difficulty and full latent budget. Filenames
embed the wandb run id (project lyot-star2x5). All arms share the recipe that solved
chain-10: uniform_prob 0.5, reset_optimizer true, shuffle_nodes false, 2 layers.s2x5r-adaptive reaches 0.999 where the same
configuration with curriculum: path never leaves stage 0 in 504 epochs (0.025). On a star
the path curriculum supervises one specific arm's node at each depth — a coin flip before the
model knows which arm the target is on — while the ring supervises the frontier, which is
well defined without that knowledge. Both clock arms sit at chance regardless of curriculum.s2x5r-adaptive's own checkpoint, scoring each stage at its own budget:| stage | s0 | s1 | s2 | s3 | s4 |
|---|---|---|---|---|---|
| exact match | 0.592 | 0.383 | 0.592 | 0.375 | 0.483 |
| named a valid frontier node | 1.000 | 1.000 | 1.000 | 0.975 | 1.000 |
s2x5rset-adaptive (0.765) and
s2x5rgate-adaptive (0.800) differ by less than noise, and both were stopped ~60 epochs
younger than the arm they are compared against.1import torch
2from huggingface_hub import hf_hub_download
3
4path = hf_hub_download("seyedparsa/lyot-star2x5",
5 "s2x5r-adaptive-lyot-star2x5_zojwxj05-ep189-s5-eval0.991.pt")
6ckpt = torch.load(path, map_location="cpu", weights_only=False)
7print(ckpt["epoch"], ckpt["stage"], ckpt["metrics"]["eval/acc"])
8state = ckpt["model"]n_layer=2, n_head=8, n_embd=768, n_positions=1024, method=coconut,
c_thought=1, max_latent_stage=5, lr=1e-4, batch_size=128.