custom-fullctx-v5 — all-4096 target-efficiency + realistic seasonal shape
v5 keeps v4's winning geometry and upgrades the single highest-leverage content axis (seasonal shape), both verified against the trainer/eval code.
v4 base (kept, verified in cascade/trainer/toto2_trainer.py). Emit ONLY
full-context 4096-pt series (min_length = max_length = 4096). The trainer keeps
each series' last P = min(L//32, 128) patches and yields P−1 next-patch
targets, so total targets = BUDGET/32 − N. The stream stops at a fixed POINT
budget (stream.py: total += arr.size), so total points are fixed and
minimising the series count N — i.e. making every series the maximal 4096 —
maximises targets. All-4096 also (a) trains at the exact 128-patch context the
eval scores at instead of extrapolating from short series, and (b) fills every
batch bucket homogeneously (no padding waste). Numpy-only, ~4M pts/s (21× the
185k throughput wall), deterministic, matmul-free.
v5 change — peaky seasonality (the MASE lever). MASE normalises by
seasonal-naive error, so on seasonal series (Energy/Transport/Web/Healthcare
dominate the pool) the model's entire edge is modelling seasonality better than
naive. A pure sinusoid is exactly what seasonal-naive predicts — training on
sines teaches nothing past the denominator. Each seasonal component is now a
fundamental plus 1..4 decaying harmonics (h^-decay), spanning pointy peaks →
smooth sines per series. Load-bearing invariant: each component is
RMS-normalised to the energy a single sinusoid of the same amplitude carries, so
only the SHAPE changes — the seasonal-to-noise ratio the families were tuned
around is untouched, and n_harm == 1 recovers v4's sinusoid exactly.
Sub-Nyquist harmonics are dropped (no aliasing).
v5 change — bursty intermittent demand. Occurrences are now clustered (a slow latent random walk modulates the rate — a Cox process) instead of i.i.d. Bernoulli, matching real retail/logistics demand that arrives in runs. Gain is drawn from 0, so a fraction of series recover v4's i.i.d. behaviour.
Both changes are conservative generalisations of v4 (same energy budget, v4 recovered as a sub-case), targeting generalisation to real peaky/bursty series rather than adding speculative noise complexity (which a prior composite-family experiment showed the proxy under-rewards).
Verified locally
- determinism — two independent draws at the same seed are byte-identical
- contract — every series is 1-D float64, length 4096, finite, non-constant
- throughput — ~4M pts/s, far above the 185k wall (never starves the GPU)
NOT verified here (must run before deploy)
This box has no GPU, no torch, and no real eval windows, so the only true signal — train Toto2-4M on the corpus and score MASE+MWSQL against the live king on the private eval pool — cannot be run here. The v5 seasonal/intermittent bets are theory-grounded but unmeasured. Before any mainnet deploy (one hotkey = one submission for life), run the real A/B and clear the 0.02 LCB margin vs the fetched king; testnet (netuid 259, nothing burned) is the free way to get the first real heat result.