Restructure: descriptive tier and experiment names, paper/manuscript
- paper/pnas -> paper/manuscript (venue-neutral)
- configs/layer1 -> configs/inheritance, src/knowledge -> src/inheritance
(imported as `inheritance`), make layer1 -> make inheritance; layer2 alias dropped
- inheritance and trained-network bundles named after the manuscript figure
they feed (fig2_grounding_sweep, figS3_rebaselining, ...), or descriptively
where they feed none; configs keep their `experiment:` value so parquet
hashes are unchanged, only output.dir moves
- figure scripts, SI figure sources, notebooks, REPRODUCING.md, README and the
SI Methods/tables updated; make clean no longer deletes tracked manifests;
reproduce.sh hashes the s{seed}/ layouts too
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
This commit is contained in:
parent
84124de143
commit
ab3dc10587
240 changed files with 477 additions and 476 deletions
35
results/fig2_grounding_sweep/README.md
Normal file
35
results/fig2_grounding_sweep/README.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# E2 — A tiny dose of real data rescues diversity (the headline)
|
||||
|
||||
**Claim tested:** how much *real* data must you mix back in each generation to stop collapse — a
|
||||
lot, or a little?
|
||||
|
||||
**Setup (Layer 1, pure math).** `K = 1000` items, Zipf truth `p*`, `n = 200` inherited samples per
|
||||
generation, 500 generations, 100 repeats. Each generation we also mix in `m` fresh **real** samples
|
||||
drawn from `p*`. The knob swept is the **grounding fraction** `g = m/(n+m)` — the share of the
|
||||
training pool that is real — across `g ∈ {0, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.4}`.
|
||||
|
||||
### Symbols
|
||||
- **`g`** grounding fraction (share of real data); **`g*`** the *critical* value that restores diversity.
|
||||
- **`p*`** truth, **`p_t`** model, **`H`** diversity, **`H*`** truth's diversity.
|
||||
- **grounding = "immigration"** in the genetics analogy: real samples are migrants that re-introduce alleles drift keeps killing.
|
||||
|
||||
### The four panels
|
||||
1. **Trajectories.** Diversity `H` over generations, one line per `g` (dark = dry, bright = more
|
||||
grounding). `g = 0` slides toward 0; any `g > 0` levels off on a plateau — the collapse is
|
||||
arrested.
|
||||
2. **The phase boundary (the headline).** Dots = stationary diversity vs `g`; the black dashed curve
|
||||
is the *exact* closed-form equilibrium `H_eq`; the red line marks the critical
|
||||
**`g* ≈ 0.048` (95% CI [0.047, 0.050])** where `H` reaches 95% of the truth's diversity. Only
|
||||
**~5% real data** buys back essentially all the diversity. The `g = 0` point is drawn hollow (it
|
||||
is still sliding — its true equilibrium is 0).
|
||||
3. **Tail coverage.** Fraction of the rare tail retained, by item-count (red) and truth-mass-weighted
|
||||
(purple). Both rise with `g` but stay modest at feasible grounding: a little grounding restores
|
||||
*diversity* long before it restores the *deep* tail — which motivates E4 (recombination) and E6.
|
||||
4. **Per-rarity band.** The tail split into rarity bands (bright = shallowest, dark = deepest). Deep
|
||||
bands lag: an item survives only once `m·p*ᵢ ≳ 1` (enough real samples per generation to land it
|
||||
at least once). The sharp threshold lives here, in discrete item survival — not in the smooth `H`.
|
||||
|
||||
### Takeaway
|
||||
There is a **critical grounding fraction `g* ≪ 1`**: a small, constant trickle of reality
|
||||
indefinitely holds off collapse. **Falsifier (not triggered):** if diversity had only recovered as
|
||||
`g → 1`, the practical thesis would die. It recovers at `g ≈ 0.05`.
|
||||
BIN
results/fig2_grounding_sweep/fig2_grounding_sweep.pdf
Normal file
BIN
results/fig2_grounding_sweep/fig2_grounding_sweep.pdf
Normal file
Binary file not shown.
BIN
results/fig2_grounding_sweep/fig2_grounding_sweep.png
Normal file
BIN
results/fig2_grounding_sweep/fig2_grounding_sweep.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 318 KiB |
14
results/fig2_grounding_sweep/manifest.json
Normal file
14
results/fig2_grounding_sweep/manifest.json
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"experiment": "E2_grounding_phase_boundary",
|
||||
"master_seed": 20260704,
|
||||
"git_commit": "a6eb9b75124779375fa1a0b3a64115ecd705b218",
|
||||
"python": "3.14.5",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
"scipy": "1.18.0",
|
||||
"pandas": "3.0.3",
|
||||
"pyarrow": "24.0.0"
|
||||
},
|
||||
"rows": 400800,
|
||||
"results_sha256": "aa8633171f833611b9c2cde3d13c61e65a81a7c9c6cef5bc76a79127d8af59a3"
|
||||
}
|
||||
305
results/fig2_grounding_sweep/resolved_config.yaml
Normal file
305
results/fig2_grounding_sweep/resolved_config.yaml
Normal file
|
|
@ -0,0 +1,305 @@
|
|||
experiment: E2_grounding_phase_boundary
|
||||
seed: 20260704
|
||||
n_replicates: 100
|
||||
source_config:
|
||||
experiment: E2_grounding_phase_boundary
|
||||
seed: 20260704
|
||||
n_replicates: 100
|
||||
generations: 500
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 0
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
sweep:
|
||||
- param: g
|
||||
values:
|
||||
- 0.0
|
||||
- 0.005
|
||||
- 0.01
|
||||
- 0.02
|
||||
- 0.05
|
||||
- 0.1
|
||||
- 0.2
|
||||
- 0.4
|
||||
output:
|
||||
dir: results/fig2_grounding_sweep
|
||||
grid:
|
||||
- label:
|
||||
g: 0.0
|
||||
m: 0
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 0
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
- label:
|
||||
g: 0.005
|
||||
m: 1
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 1
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
- label:
|
||||
g: 0.01
|
||||
m: 2
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 2
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
- label:
|
||||
g: 0.02
|
||||
m: 4
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 4
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
- label:
|
||||
g: 0.05
|
||||
m: 11
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 11
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
- label:
|
||||
g: 0.1
|
||||
m: 22
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 22
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
- label:
|
||||
g: 0.2
|
||||
m: 50
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 50
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
- label:
|
||||
g: 0.4
|
||||
m: 133
|
||||
lineage_cfg:
|
||||
truth:
|
||||
K: 1000
|
||||
R: 1
|
||||
tail: zipf
|
||||
zipf_s: 1.1
|
||||
tail_frac: 0.5
|
||||
tail_threshold: 0.001
|
||||
init: truth
|
||||
dynamics:
|
||||
n: 200
|
||||
teachers:
|
||||
K_T: 1
|
||||
rho: 0.0
|
||||
q: 1.0
|
||||
grounding:
|
||||
m: 133
|
||||
policy: proportional
|
||||
selection:
|
||||
mode: none
|
||||
novelty_alpha: 0.0
|
||||
remint:
|
||||
enabled: false
|
||||
period: null
|
||||
H_gate: null
|
||||
generations: 500
|
||||
metrics:
|
||||
kl_floor: 1.0e-09
|
||||
support_eps: 1.0e-09
|
||||
Loading…
Add table
Add a link
Reference in a new issue