Phase 4: dependency-free ASCII loss-curve plotter

- scripts/plot_loss.py: reads reports/loss-<config>.csv, renders train/val
  loss as a terminal ASCII chart, saves it to reports/loss-<config>.txt.
  Verified on a synthetic curve. Keeps deps at torch + numpy.
- README: documented plotting choice and the Phase 4 run commands.
This commit is contained in:
2026-07-12 11:32:34 -04:00
parent 234a37f8fd
commit 4947556c02
2 changed files with 103 additions and 3 deletions
+13 -3
View File
@@ -109,9 +109,19 @@ raw text ──► tokenizer training ──► tokenized corpus ──► pretr
- Runs on MPS; expected wall-clock for v1 is a few hours for ~100200M tokens
(roughly Chinchilla-optimal for this size — we don't need to see the whole
corpus).
- Loss curve logged to a plain CSV and plotted locally.
- Deliverables: `src/train.py`, `configs/v1.yaml` (or `.py`), checkpoints in
`checkpoints/` (gitignored), loss curves in `reports/`.
- Loss curve logged to a plain CSV (`reports/loss-v1.csv`) and rendered as an
ASCII chart by `scripts/plot_loss.py` — no plotting dependency; the chart is
also saved to `reports/loss-v1.txt` as a committable artifact.
- Deliverables: `src/train.py`, `configs/v1.py`, `scripts/plot_loss.py`,
checkpoints in `checkpoints/` (gitignored), loss log + chart in `reports/`.
Commands:
```sh
python src/train.py --config v1 --overfit # sanity check (loss -> ~0)
python src/train.py --config v1 # real run (resumable: --resume)
python scripts/plot_loss.py --config v1 # ASCII loss curve
```
### Phase 5 — Sampling & evaluation
- Autoregressive sampler with temperature and top-k.