Antevisão · Latent Rehearsal
19

The inversion
that did not repeat

Chapter 15 recorded that, with enough data, the world model stopped costing the generator and started paying 3.38%. It was a single seed. With more seeds, and then with a validation measure that stopped swinging, the cost shows up in every round — and it grows with the size of the model.

Chapter 19 Prerequisite: 15 (what it costs and what it delivers) and 13 §12.3 (seeds)

1 What was written

Chapter 15 trained mini on the whole corpus, with the Chinchilla budget (1,961 steps, 64 million tokens), in two ways: generator only, and generator with the hierarchical world model with EMA target — the recipe that had done best in chapter 13. The generator alone reached 3.7503 validation loss; with the world model, 3.6236. That is 3.38% better, and the chapter read the result as an inversion: in the collection's short training the map cost about 1%, and with enough data it would start paying.

The reading had a reasonable explanation — with little data, predicting the next state competes with the generator for the same capacity; with a lot, it acts as a regulariser — and it matched what one expects from a predictive architecture. But it came from one round on each side, with a single seed, in a regime where the seed spread had never been measured. Chapter 13 §12.3 measured that spread on the duel: about 0.84% of the loss. On the ladder, nobody had measured it.

2 Two rounds

On 17/09, on an RTX 5090, the same pair was trained with seeds 2 and 3, with the same steps, the same batch and the same corpus. First, the round repeated the duel control, which gave 5.2577 validation, the same number as the 11/09 card to the fourth decimal: the machine is not the source of the difference. That round also brought the measurements for chapters 13 and 16.

Its result pointed at a problem in the ruler itself (§4), so there was a second round the same day, with validation measured another way: six mini rounds and four pequeno rounds, all with --eval-seed, the new option that makes every evaluation read the same batches.

3 Three seeds, with drawn validation

Validation loss of mini on the ladder (64 M tokens), per seed, under the original protocol: at each evaluation training draws 20 new batches from the validation set. "Best" is the lowest value among the 12 evaluations, which is what the report uses. Difference = how far the model with the map sits above (+) or below (−) the generator alone.
seedgenerator only+ mapdifference
1337 (chapter 15's)3.75033.6236−3.38%
23.57623.6401+1.79%
33.60913.7974+5.22%
mean ± spread3.6452 ± 0.09253.6870 ± 0.0959+1.15%

The data did not confirm the inversion. On both new seeds the map costs, and the mean of the three lands at +1.15% — the same cost chapter 13 had measured in short training. Seed 1337 is the only one where the model with the map comes out below, and it is also the seed where the generator alone had the worst result of the three (3.7503).

But the spread here is too wide to claim anything: 0.0925 for the generator alone, 2.5% of the loss, against the duel's 0.84%. The difference between the means, 0.042, is less than half of that spread. With this ruler, neither the inversion nor the cost holds up.

4 Why one seed misled

The large spread does not come only from initialization. It starts inside each round. At every evaluation, training draws 20 new batches from the validation set and measures the loss on them; two consecutive evaluations of the same model barely change the weights, but they change the sample.

The last six evaluations of three mini rounds on the ladder, with drawn validation. The minimum of each row is in bold.
roundstep 114713111475163918031960
generator only, seed 23.9643.8193.7353.5763.6483.719
generator only, seed 13373.9193.8783.7503.7643.7993.759
+ map, seed 24.0203.7733.6873.8213.6403.780

On seed 2, the generator alone scores 3.576 at step 1639 and 3.719 at the end of training. That is 0.14 between two measurements of the same nearly finished model — more than the 0.127 that separated the columns on seed 1337 and supported the inversion. The "best checkpoint" is the smallest of 12 numbers like these: in each round it picks the evaluation that landed on the easiest sample. Comparing two minima of noisy measurements largely compares who got luckier in the draw.

The fix is small and additive: model/train.py --eval-seed <n> makes every evaluation read the same validation batches. Without the option, behaviour stays as before, so comparisons with what is already recorded are not broken.

5 The same question, with a clean ruler

With fixed batches, the whole pair was trained again: three mini seeds and two pequeno seeds, on both sides. The numbers in this section do not compare with those in §3 — they are different validation samples — but they compare with each other, which is what the question asks.

Validation loss with --eval-seed, full corpus. With fixed batches the curve descends without peaks, and the best checkpoint is always the last one. mini: 1,961 steps, 64 M tokens. pequeno: 6,483 steps, 212 M tokens.
modelseedgenerator only+ mapdifference
mini13373.67293.6841+0.30%
23.62373.7141+2.50%
33.61363.7051+2.53%
mean ± spread3.6367 ± 0.03183.7011 ± 0.0154+1.77%
pequeno13372.94783.0978+5.09%
22.94753.0875+4.75%
mean ± spread2.9477 ± 0.00023.0927 ± 0.0073+4.92%

Three things change status with this table.

Validation curves for seed 1337 at both sizes, with fixed batches. Each column is one evaluation.
round123456789101112
mini, generator only5.7245.0694.7214.4794.2594.0733.9363.8353.7663.7203.6923.673
mini, + map5.7785.1174.7624.4954.2274.0153.8883.8073.7563.7233.6993.684
pequeno, generator only4.3423.5983.3933.2833.1963.1373.0843.0373.0042.9752.9602.948
pequeno, + map4.4853.6343.4163.3103.2413.1973.1593.1373.1173.1053.1003.098

The curves show where the cost is born. On mini, the model with the map is better in mid-training (3.888 against 3.936 at the seventh evaluation) and only loses at the end, when the generator alone keeps descending and it slows down. On pequeno, the same happens earlier and more strongly: from the sixth evaluation on, the curve with the map flattens, and the gap between the two grows until the end. The bigger the model, the earlier the map's loss seems to compete with the generator's.

The ruler that changes

Chapter 13 §12.3's rule — a difference below about 0.9% of the loss is not a result — was measured on the duel, with drawn validation, and it still holds for whatever is recorded under that ruler. With fixed validation batches, the seed spread on the ladder is the same 0.87% on mini and almost zero on pequeno, and small differences become legible again. From here on, ladder rounds run with --eval-seed.

6 What changes in the collection

Where the single-seed reading was, and what it became.
wherebeforenow
15 §5"at a real budget the world model stops costing and starts paying": −3.38%a table with both rulers: the map costs +1.77% on mini and +4.92% on pequeno; the inversion reading was withdrawn
17, table of measurements"3.38% better (PPL 37.5 against 42.5)"the map's cost to the generator, with fixed validation, at both sizes
model/train.pyvalidation batches drawn at every evaluation--eval-seed option: fixed batches; without it, the previous behaviour

The collection's sentences about the world model's cost to the generator, measured on 5.7 million tokens, still hold at 64 and at 212 million. What does not hold is the idea that more data alone turns that cost into a gain: with this recipe, the cost persists and grows with size. What the map delivers in return is measured in other chapters — the heading that steers generation (12), violation of expectation and the guardrail (13) — and none of that shows up in validation loss.

7 Limits of this measurement

Open questions
References

The sources of the ideas and the method used here. The numbers were measured in the project.

  1. Assran, M., Duval, Q., Misra, I., Bojanowski, P., Vincent, P., Rabbat, M., LeCun, Y. and Ballas, N. (2023). Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture. CVPR 2023 (I-JEPA, EMA teacher target). arXiv:2301.08243
  2. Grill, J.-B. et al. (2020). Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning. NeurIPS 2020 (BYOL, exponential moving average target). arXiv:2006.07733
  3. Bouthillier, X. et al. (2021). Accounting for Variance in Machine Learning Benchmarks. MLSys 2021 (sources of variance between runs and how many repetitions a comparison needs). arXiv:2103.03098
  4. Dodge, J., Ilharco, G., Schwartz, R., Farhadi, A., Hajishirzi, H. and Smith, N. (2020). Fine-Tuning Pretrained Language Models: Weight Initializations, Data Orders, and Early Stopping. (effect of the seed and of checkpoint selection). arXiv:2002.06305
  5. Chapter 15 of this collection, What it costs and what it delivers, §5.

Trained on an RTX 5090 on 17/09/2026 (cloud/round_1709.sh and cloud/round_1709b.sh). Data in out/gpu_1709/, model/runs/*-escala and model/runs/*-escalafix.