Manuscript revision and pending experiment work, snapshot before restructuring

Clarity pass over the main text (36-item audit), Discussion rewrite and cut,
acknowledgements, Souly et al. as ref 62, lettered SI panels, model section
moved under Results; plus the untracked curriculum/society/compose/smol
configs, runners, figures, stats and tests that the SI already cites.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
This commit is contained in:
Giorgio Gilestro 2026-09-13 16:54:09 +01:00
parent e4804adabc
commit 84124de143
450 changed files with 52813 additions and 1202 deletions

View file

@ -22,7 +22,7 @@ import matplotlib.pyplot as plt
import numpy as np
sys.path.insert(0, str(Path(__file__).parent))
from _figlib import load_bundle, mean_ci, savefig # noqa: E402
from _figlib import load_bundle, mean_ci, savefig, letter_axes # noqa: E402
_ARCH_ORDER = ["histogram", "rnn", "mlp"]
_ARCH_LABEL = {"histogram": "histogram\n(exact)", "rnn": "GRU\n(autoregressive)",
@ -47,14 +47,14 @@ def main(results_dir: str = "results/architectures") -> None:
ax.plot(s.index, s.values, ls, color=arch_colors[k], alpha=alpha, lw=1.8,
label=f"{k} (g={g:g})")
ax.set(xlabel="generation", ylabel=r"forward-KL $D(p^*\Vert\hat p)$",
title="Dry (solid) collapses; grounded (dashed) held —\nin every architecture")
title="No real data (solid) collapses;\ngrounded (dashed) holds in every architecture")
ax.legend(frameon=False, fontsize=7, ncol=1)
# Panels B & C: grouped bars, dry vs grounded per architecture.
def grouped_bar(ax, metric, title, ylabel):
x = np.arange(len(kinds))
w = 0.36
for off, g, lab, col in [(-w / 2, g_dry, f"dry (g={g_dry:g})", "#d62728"),
for off, g, lab, col in [(-w / 2, g_dry, f"no real data (g={g_dry:g})", "#d62728"),
(w / 2, g_wet, f"grounded (g={g_wet:g})", "#2ca02c")]:
means, errs = [], []
for k in kinds:
@ -72,9 +72,8 @@ def main(results_dir: str = "results/architectures") -> None:
grouped_bar(axes[2], "tail_frac_alive", "Tail-item survival rises with grounding",
"tail items alive")
fig.suptitle("architectures — dry collapse and grounding-rescue are architecture-general "
"(histogram, GRU, MLP)", y=1.02, fontsize=13)
fig.tight_layout()
letter_axes(fig)
savefig(fig, results_dir, "architectures")