TinyCast: Probabilistic Zero-Shot Forecasting with Computed Periodicity
Armin Steinhauser
cs.LG, cs.AI
2026-08-16
TinyCast is a 146K-parameter, attention-free zero-shot forecaster that computes periods and emits nine quantiles, posting nWQL 0.545 on GIFT-Eval.
Time series foundation models replace one model per signal with a single pretrained forecaster used zero-shot. Two properties rarely shrink together: the weights have to fit the MCU already on the unit, and the forecast has to carry uncertainty, because control loops and alarm thresholds act on an interval, not a point. On GIFT-Eval, among zero-shot entries that declare no test leakage and publish per-configuration scores, models below a million parameters almost always emit one value per step.
TinyCast asks how small a probabilistic forecaster can be. The premise is that at this budget, capacity spent rediscovering seasonality is capacity stolen from structure no fixed computation supplies. Periods are measured from the context at zero parameter cost; learned weights cover the rest.
The model has 146,505 parameters and no attention. Context length is 2048, min-max normalized per window to [0, 1]. A zero-parameter detector takes a real FFT of the DC-removed context, keeps local peaks that pass Fisher's harmonic test at α=0.05 with Bonferroni correction, and rounds up to four integer periods. Failed slots zero their phase channels.
A parameter-free encoding writes sin/cos at those periods plus five recency channels. The encoder is ten dilated causal depthwise-separable convolutions, width 64, kernel 3, dilations 1 to 512, receptive field 2047. One SwiGLU is tied across the ten blocks in the ALBERT sense; those two choices drop 191,680 parameters. The decoder emits nine quantiles (0.1 through 0.9) for a 48-step block in one pass, feeds the median back, and stacks blocks out to 720 steps. Three readouts build each future query: a pooled summary, phase binning that folds encoder states into a 16-bin cycle template (the largest single contributor in its family), and a convolutional correction along the horizon.
Training is zero-shot on GIFT-Eval-Pretrain after dropping overlap with GIFT-Eval and Chronos-ZS tests, plus Chronos KernelSynth and four synthetic shards. The loss is nine-quantile pinball plus a gated committing term (λ=0.3) that fires only where copying the last cycle would have beaten the median, and hinges off once the median catches the copy. Released weights average the last eight checkpoints. Two host-only tricks stay off the device: sign symmetrization, and decimating a context onto a canonical daily period before interpolating back.
GIFT-Eval has 97 configurations. Scores are geometric-mean ratios to seasonal naive; 1.0 is a tie. The host profile (unquantized, both inference tricks on) records nGMASE 0.774, nWQL 0.545, nMSIS 0.554. It is the smallest census entry whose parameter count can be established. Reverso-Nano at 200K is close on point error at 0.760, without a real predictive distribution. The census point-accuracy best is Reverso at 2.6M with 0.711. Every Table 1 model with a lower nWQL carries at least 1.4M parameters: TTM-R3 reaches 0.520 at 1.4M, FlowState-9.1M reaches 0.502.
| Model | Params | nGMASE | nWQL |
| TinyCast | 146K | 0.774 | 0.545 |
| Reverso-Nano | 200K | 0.760 | no distribution |
| TTM-R3 | 1.4M | 0.724 | 0.520 |
| Reverso | 2.6M | 0.711 | no distribution |
| FlowState-9.1M | 9.1M | 0.726 | 0.502 |
| FLAIR (no pretrain) | 0 | 0.838 | 0.587 |
On Chronos-ZS, relative MASE is 0.880 and relative WQL 0.722. AutoARIMA and AutoTheta lead on point error by 1-2%, the only place a statistical method wins across the three boards. On fev-bench, relative MASE is 0.819 and relative WQL 0.658; every neural model ahead is at least 28× larger. Twelve of those tasks name corpus subsets used in training, so disjointness is not established.
Retraining the same 146,505 parameters with the detector off moves nGMASE from 0.7743 to 0.7814, a 0.0071 gap, about eight times the 0.0009 spread across three seeds. Phase binning is the largest single move in its family, −0.098 nGMASE versus a dilated-convolution base. Static W8A8 on the host is 0.790 / 0.553, a 2.14% and 1.26% drop versus the matched float run. The firmware profile (quantized, both tricks off) is 0.833 / 0.581 and still beats seasonal naive on 72 of 97 configurations. On an STM32H753 Cortex-M7 at 480 MHz, one core call takes 4.08 s, INT8 weights occupy 138.1 KiB, and peak RAM is about 731 KiB.
This is a size-versus-probabilistic-accuracy frontier, not a claim that small models are "good enough." What embedded fleets lack is one firmware image that emits intervals for a signal the unit has not seen, with no per-signal data collection and no retraining. Convolutions and matrix multiplies are the mixing path that fits both the parameter budget and an integer runtime, which is why the board needed no distillation and no new operators.
Against Reverso-Nano, TinyCast wins a larger share of configurations the benchmark marks aseasonal than of seasonal ones. The mechanism is returned capacity, not a bet that every series is seasonal. Period detection is simply a cheap place to take that return.
Every forecast re-encodes the full 2048-step window. A streaming variant lost accuracy on short contexts. The model is univariate: it ignores covariates on 46 of 100 fev-bench tasks and cross-series structure on 35 multivariate ones. Out-of-regime inputs fail silently. Periods are rounded spectrum bins, so resolution falls with the window-to-period ratio, and min-max normalization is brittle to a single extreme.
Ablation families ran at 340-445K parameters, not the shipped 146K, so their deltas bound rather than measure the deployed model. GIFT-Eval informed architecture and inference choices; Chronos-ZS is the held-out process test. Canonical-period alignment changes only 2 of 97 configurations, and resampling cannot separate that gain from zero. Quantization, dropping symmetrization, and dropping alignment interact on the firmware path; adding the three penalties understates the deployment cost by about 0.023 nGMASE.