goia-forecast-nano-v0

A 4.73M-parameter probabilistic time-series foundation model, trained from scratch on a single consumer GPU and evaluated zero-shot on GIFT-Eval: CRPS 0.553 / MASE 0.815 (geometric mean over 97 configs, normalized by seasonal naive). Per-config it is statistically on par in CRPS with models 40–100Γ— its size such as chronos_bolt_base and timesfm_2_0_500m. Full training code, data pipeline and failure analysis: see the GitHub repository.

Zero-shot forecasts (median, q30–q70 and q10–q90 bands; red dashed = held-out truth):

AirPassengers zero-shot forecast

Hourly series with strong daily cycle, 192-step forecast

Usage

The repo ships a standalone inference.py (only needs torch, safetensors, numpy, pandas):

from huggingface_hub import hf_hub_download
import importlib.util

path = hf_hub_download("gredio/goia-forecast-nano-v0", "inference.py")
spec = importlib.util.spec_from_file_location("goia_inference", path)
mod = importlib.util.module_from_spec(spec); spec.loader.exec_module(mod)

fc = mod.Forecaster.from_pretrained("gredio/goia-forecast-nano-v0")
pred = fc.predict(series, horizon=96)   # 1D list / numpy array / pandas Series
pred.median, pred.q(0.1), pred.q(0.9)

Or clone the GitHub repo and from inference import Forecaster directly.

Native horizon: 1024 steps, 9 quantiles (0.1–0.9), any context length up to 4096 (longer contexts are truncated). Longer horizons are produced by median-feedback rollout.

Model description

RevIN normalization β†’ adaptive multi-scale patch encoder (16/32/64, top-2 router with spectral features) β†’ 6 dilated causal-conv blocks with one local and one global attention layer β†’ cross-attention decoder emitting all quantiles for the full horizon in a single forward pass (quantiles sorted at inference).

Training data and teacher

Trained on the GiftEvalPretrain corpus (90%), the TempoPFN synthetic corpus (7%) and KernelSynth synthetic series from the Chronos project (~3%). The ground-truth quantile loss is always present; ~40% of batches additionally add an auxiliary distillation term from Chronos-2 (Apache-2.0) β€” about 22% of the total training signal β€” with targets computed on our own pretraining corpus only. No GIFT-Eval train or test data was used at any stage (zero-shot; disclosed in the leaderboard submission).

Scope and behavior

Strictly univariate: no covariates and no multivariate support (forecast each channel separately). Outputs 9 fixed quantiles (0.1–0.9); the point forecast is the median β€” there is no mean. NaN/inf values in the context are linearly interpolated automatically, and each series needs at least 8 finite observations.

Limitations

Weakest on hourly data with strong deterministic seasonality (e.g. solar), near-deterministic weather signals, and sub-minute frequencies (worse than naive at 10S). The median forecast lags the quantile calibration. See the repository README for the full failure analysis and roadmap.

Downloads last month
20
Safetensors
Model size
4.73M params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Dataset used to train gredio/goia-forecast-nano-v0