Files
rzen 9fd56b6063 Add degradation experiments: one-parameter-at-a-time ablations
Controlled study of how the model degrades. Four variants, each = v1 with a
single field replaced (dataclasses.replace), so differences are attributable:
- small: capacity down (2L/64d, ~0.38M params)
- short: training time down (max_iters 20k->2k)
- ctx:   context window down (256->64)
- data:  data quantity down (max_train_tokens->1M; new TrainConfig knob + train.py slice)

- scripts/compare.py: sample same prompt across all trained configs with a
  shared seed, print side by side, write reports/compare.md
- tests/test_configs.py: enforces one-parameter-at-a-time (only intended fields
  differ from v1) + small param count (3 tests). Full suite: 29 passing.
2026-07-12 12:58:48 -04:00

15 lines
511 B
Python

"""Degradation experiment: same as v1, but a much smaller model.
Isolates *capacity*. Only the model dimensions change; context length and the
training schedule match v1 exactly. ~0.38M params vs v1's 4.26M — and only
~0.1M of those are non-embedding (the 4,096-token embedding table dominates a
model this small, so the actual 'reasoning' capacity shrinks even harder).
"""
from dataclasses import replace
import v1
model = replace(v1.model, n_layers=2, d_model=64, n_heads=2, d_ff=256)
train = v1.train