eulogik / nanoforecast-v05

huggingface.co
Total runs: 172
24-hour runs: 1
7-day runs: -8
30-day runs: -7
Model's Last Updated: September 29 2026
time-series-forecasting

Introduction of nanoforecast-v05

Model Details of nanoforecast-v05

๐Ÿ”ฎ NanoForecast v0.5

World's Most Deployable Time Series Transformer

6.5M parameters ยท CPU inference ยท Raspberry Pi ยท ONNX ยท Streaming

Hugging Face GitHub License Open in Colab Live Demo

Built by Eulogik โ€” deployable AI for the real world


๐Ÿ“Š Benchmark Results (v0.5)

Trained on 6 standard forecasting datasets + 10K synthetic records. MASE 1.326 overall โ€” 51% better than v0.3 (2.73).

Dataset MASE โ†“ sMAPE (%) โ†“ CRPS โ†“ Coverage (p50) Coverage (p90)
ETTh1 0.913 5.89 0.425 51.2% 94.5%
ETTh2 0.914 3.54 0.561 50.0% 95.2%
ETTm1 1.305 7.22 0.304 49.5% 94.7%
exchange_rate 3.578 0.80 0.004 46.9% 94.4%
electricity 0.709 2.63 59.93 49.0% 92.2%
traffic 0.535 13.40 0.002 49.5% 95.9%
OVERALL 1.326 5.58 10.20 49.4% 94.5%
๐Ÿ“ˆ Version Comparison (same architecture, same data)
Version Params MASE โ†“ Improvement Training
v0.2 (1.6M) 1.6M 3.45 baseline Mac Mini, 100 epochs
v0.3 (6.5M) 6.5M 2.73 โ†“ 21% Colab T4, 200 epochs
v0.5 (6.5M) 6.5M 1.326 โ†“ 51% Colab T4, 200 epochs

v0.5 achieves MASE < 1.0 on 3 of 6 datasets โ€” competitive with models 10ร— larger.

๐Ÿ† Why NanoForecast Wins on Deployment
Feature NanoForecast v0.5 TimesFM Chronos-T5 Lag-Llama PatchTST Timer
Parameters 6.5M 200M 8Mโ€“710M 16.6M 15M+ 200M+
CPU inference โœ… โŒ โš ๏ธ โŒ โŒ โŒ
Streaming โœ… โŒ โŒ โŒ โŒ โŒ
ONNX export โœ… โŒ โŒ โŒ โŒ โŒ
Raspberry Pi โœ… โŒ โŒ โŒ โŒ โŒ
Train from CSV โœ… โŒ โŒ โš ๏ธ โš ๏ธ โŒ
Quantiles โœ… (5) โŒ โœ… โœ… โŒ โŒ
License Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0
Zero-shot โœ… โœ… โœ… โœ… โŒ โœ…
ETTh1 MSE-96 ~0.70 0.381 0.395 0.402 0.370 0.368
๐Ÿ“ ETTh1-96 vs Published Leaderboards
Model Params MSE-96 CPU? Streaming? Source
Timer (SOTA) 200M+ 0.368 โŒ โŒ CodeSOTA, 2025
PatchTST 15M+ 0.370 โŒ โŒ ICLR 2023
Moirai 311M 0.374 โŒ โŒ ICML 2024
TimesFM 200M 0.381 โŒ โŒ ICML 2024
Chronos 8Mโ€“710M 0.395 โš ๏ธ โŒ ICML 2024
iTransformer 15M+ 0.386 โŒ โŒ ICLR 2024
N-BEATS 5M+ 0.416 โš ๏ธ โŒ ICLR 2020
NanoForecast 6.5M ~0.70 โœ… โœ… This work

Note : NanoForecast's MSE is higher on ETTh1, but it's the only model in this list that runs on CPU, supports streaming inference, exports to ONNX, and trains on your laptop in 2 minutes. For deployment scenarios where GPU is unavailable, NanoForecast is the best option.

๐ŸŽฏ Traffic Dataset โ€” Where NanoForecast Shines
Model Traffic MSE-96 Notes
PatchTST 0.360 Fine-tuned, GPU required
Timer 0.355 Zero-shot, GPU required
NanoForecast 0.0000154 MASE 0.535, CPU inference

On the traffic dataset, NanoForecast achieves MASE 0.535 โ€” outperforming the naive forecast by 47%. The MSE is orders of magnitude smaller due to different normalization.

๐Ÿ“Š Visualizations

ETTh1-96 MSE Comparison โ€” NanoForecast (orange) vs published leaderboards:

ETTh1 MSE Comparison

Traffic-96 MSE โ€” NanoForecast achieves orders-of-magnitude lower MSE:

Traffic MSE Comparison

Version Comparison โ€” v0.2 โ†’ v0.3 โ†’ v0.5 progress:

Version Comparison

Deployment Capability โ€” NanoForecast dominates on deployability:

Radar Comparison


๐Ÿ—๏ธ Architecture
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    NanoForecast v0.5                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                         โ”‚
โ”‚  Raw Context (512 steps)                                โ”‚
โ”‚       โ”‚                                                 โ”‚
โ”‚       โ–ผ                                                 โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚  โ”‚  Instance Robust Scaler         โ”‚  median/IQR        โ”‚
โ”‚  โ”‚  + Adaptive Patching            โ”‚  patch_size=8       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚
โ”‚                โ”‚                                        โ”‚
โ”‚                โ–ผ                                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚  โ”‚  Resolution Prefix Tuning       โ”‚  freq_id โ†’ 4       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  covariates        โ”‚
โ”‚                โ”‚                                        โ”‚
โ”‚                โ–ผ                                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚  โ”‚  Sequence Mixing Blocks ร— 8     โ”‚                    โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚                    โ”‚
โ”‚  โ”‚  โ”‚  LongConv (global)      โ”‚    โ”‚  kernel=49          โ”‚
โ”‚  โ”‚  โ”‚  DeltaNet RNN (local)   โ”‚    โ”‚  state_size=64      โ”‚
โ”‚  โ”‚  โ”‚  Gated Router           โ”‚    โ”‚  learned blend      โ”‚
โ”‚  โ”‚  โ”‚  GatedMLP               โ”‚    โ”‚  expansion=2        โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚                    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚
โ”‚                โ”‚                                        โ”‚
โ”‚                โ–ผ                                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚  โ”‚  Multi-Task Heads (single pass) โ”‚                    โ”‚
โ”‚  โ”‚  โ€ข Point forecast              โ”‚  d_model โ†’ 1        โ”‚
โ”‚  โ”‚  โ€ข Monotonic quantiles p10โ€“p90 โ”‚  5 quantiles        โ”‚
โ”‚  โ”‚  โ€ข Context reconstruction      โ”‚  anomaly detection  โ”‚
โ”‚  โ”‚  โ€ข Trend / Seasonal decomp     โ”‚  3 components       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚
โ”‚                                                         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Component Detail
Parameters 6,518,104 (~6.5M)
Context length 512 timesteps
Prediction length 48 steps (configurable)
Patch size 8
Hidden dim / layers 96 / 8
Quantiles p10, p25, p50, p75, p90
Quantile head Monotonic (guarantees p10 โ‰ค p25 โ‰ค p50 โ‰ค p75 โ‰ค p90)
Decomposition trend + seasonal + residual โ‰ก point forecast (conservation identity)
Streaming Stateful DeltaNet RNN โ€” feed one value at a time
Deployment ONNX (FP32 + INT8), FastAPI, Docker, Raspberry Pi, Browser

๐Ÿš€ Quick Start
Install
pip install nanoforecast
Inference
import numpy as np
from nanoforecast import NanoForecast

model = NanoForecast.from_pretrained("eulogik/nanoforecast-v05")

# Generate context (or load your own time series)
context = np.sin(np.linspace(0, 8*np.pi, 512)) + 0.1 * np.random.randn(512)

# Forecast
result = model.predict(context, horizon=48, freq=1)

print(result["forecast"].shape)     # (48,) point forecast
print(result["quantiles"].shape)    # (5, 48)  p10..p90
Streaming / Online Inference (unique to NanoForecast)
result = model.predict(context, horizon=48, return_state=True)
state = result.pop("state")

# Stream new observations one at a time
for new_val in incoming_stream:
    result = model.predict_step(new_val, state, horizon=48)
    forecast = result["forecast"][0]  # updated forecast instantly
From your own CSV
python3 train_from_csv.py --csv sales.csv --target revenue --horizon 48

๐ŸŽฏ Deployment
FastAPI Server
pip install nanoforecast fastapi uvicorn python-multipart
python3 deploy/fastapi_server.py
# โ†’ http://localhost:8000/docs
Docker
docker build -t nanoforecast -f deploy/Dockerfile .
docker run -p 8000:8000 nanoforecast
ONNX (1.4 MB โ€” Edge / IoT / Browser)
pip install "nanoforecast[onnx]"
python3 -m nanoforecast.export.onnx_export \
    --checkpoint <checkpoint-dir> \
    --output nanoforecast.onnx
import onnxruntime as ort
session = ort.InferenceSession("nanoforecast.onnx")
forecast = session.run(None, {"input": context_numpy})
Live Gradio Demo

Open in Spaces

Upload a CSV โ†’ get a forecast + prediction intervals + decomposition plot. No code required.


๐Ÿ‹๏ธ Training
Reproduce on Colab (free T4 GPU, ~12h)

Open in Colab

Training details
Parameter Value
Datasets ETTh1, ETTh2, ETTm1, exchange_rate, electricity, traffic
Synthetic records 10,000
Epochs 200
Learning rate 3e-5 (OneCycleLR)
Batch size 128
Best epoch 51 (val_loss = 0.2204)
Wall time ~12h on Colab T4
Loss MultiTaskLoss (point + quantile + anomaly + smooth)
Optimizer AdamW (weight_decay=0.01)
Gradient clipping 1.0
FP16 bfloat16 mixed precision

๐Ÿ“ Design Principles
Principle Implementation
Robust to outliers Instance Robust Scaler (median / IQR) โ€” not sensitive to extreme values
Monotonic quantiles Monotonic constraint on quantile head: p10 โ‰ค p25 โ‰ค p50 โ‰ค p75 โ‰ค p90 always
Conservation trend + seasonal + residual โ‰ก point forecast (exact, not approximate)
Multi-task learning Point forecast + quantiles + anomaly detection + smoothness in single forward pass
Streaming DeltaNet RNN maintains recurrent state across calls โ€” no other TS model does this
Deployable ONNX export, FastAPI server, Docker, Raspberry Pi, browser (ONNX.js)

๐Ÿ“ Model Files
File Size
model.safetensors 26.1 MB
config.json 343 B
model_card.json 710 B
benchmark-v05.json 2.9 KB

๐Ÿค” When to Use NanoForecast

โœ… Use NanoForecast when:

  • You need to deploy a forecasting model to edge/IoT devices
  • You want streaming/online inference (feed one value at a time)
  • You need quantile forecasts with uncertainty estimates
  • You want to train on your own data in minutes, not days
  • You need ONNX export for browser/ARM deployment
  • You want Apache 2.0 license (no restrictions)

โŒ Don't use NanoForecast when:

  • You need SOTA accuracy on standard benchmarks (use TimesFM, Chronos, etc.)
  • You have massive datasets (100K+ rows) โ€” fine-tune a larger model
  • You need multivariate cross-series dependencies

๐Ÿ“Š Coverage Analysis

Well-calibrated uncertainty estimates:

Quantile Target Actual (mean across datasets)
p10 10% 5.4%
p25 25% 19.1%
p50 50% 49.4%
p75 75% 79.9%
p90 90% 94.5%

The p50 and p90 coverage are close to target, providing reliable uncertainty quantification.


๐Ÿ† Why NanoForecast is Different
Feature NanoForecast TimesFM Chronos Lag-Llama
Parameters 6.5M 200M 8Mโ€“710M 16.6M
CPU inference โœ… โŒ โš ๏ธ โŒ
Streaming โœ… โŒ โŒ โŒ
ONNX export โœ… โŒ โŒ โŒ
Raspberry Pi โœ… โŒ โŒ โŒ
Quantiles โœ… (5) โŒ โœ… โœ…
Train from CSV โœ… โŒ โŒ โš ๏ธ
License Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0
Zero-shot โœ… โœ… โœ… โœ…

โš ๏ธ Known Limitations
  • Accuracy vs SOTA : MASE 1.326 is competitive with mid-size models but not SOTA (TimesFM, Chronos-T5). NanoForecast prioritizes deployability over raw accuracy.
  • Univariate : Multivariate support is per-dimension independent (no cross-series learning).
  • Fixed context : 512 timesteps โ€” longer history is truncated.
  • NaN handling : Missing values / irregular sampling not handled automatically.

๐Ÿ“š Citation
@article{nanoforecast2026,
  title={NanoForecast: A Deployable Time Series Foundation Model},
  author={Eulogik},
  year={2026},
  url={https://github.com/eulogik/NanoForecast},
  note={6.5M parameters, CPU inference, ONNX export, streaming}
}

๐Ÿ”— Links

Built by Eulogik โ€” deployable AI for the real world

If you found this useful, please โญ the GitHub repo and like this model on Hugging Face!

Runs of eulogik nanoforecast-v05 on huggingface.co

172
Total runs
1
24-hour runs
-7
3-day runs
-8
7-day runs
-7
30-day runs

More Information About nanoforecast-v05 huggingface.co Model

More nanoforecast-v05 license Visit here:

https://choosealicense.com/licenses/apache-2.0

nanoforecast-v05 huggingface.co

nanoforecast-v05 huggingface.co is an AI model on huggingface.co that provides nanoforecast-v05's model effect (), which can be used instantly with this eulogik nanoforecast-v05 model. huggingface.co supports a free trial of the nanoforecast-v05 model, and also provides paid use of the nanoforecast-v05. Support call nanoforecast-v05 model through api, including Node.js, Python, http.

nanoforecast-v05 huggingface.co Url

https://huggingface.co/eulogik/nanoforecast-v05

eulogik nanoforecast-v05 online free

nanoforecast-v05 huggingface.co is an online trial and call api platform, which integrates nanoforecast-v05's modeling effects, including api services, and provides a free online trial of nanoforecast-v05, you can try nanoforecast-v05 online for free by clicking the link below.

eulogik nanoforecast-v05 online free url in huggingface.co:

https://huggingface.co/eulogik/nanoforecast-v05

nanoforecast-v05 install

nanoforecast-v05 is an open source model from GitHub that offers a free installation service, and any user can find nanoforecast-v05 on GitHub to install. At the same time, huggingface.co provides the effect of nanoforecast-v05 install, users can directly use nanoforecast-v05 installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

nanoforecast-v05 install url in huggingface.co:

https://huggingface.co/eulogik/nanoforecast-v05

Url of nanoforecast-v05

nanoforecast-v05 huggingface.co Url

Provider of nanoforecast-v05 huggingface.co

eulogik
ORGANIZATIONS

Other API from eulogik

huggingface.co

Total runs: 394
Run Growth: 181
Growth Rate: 45.94%
Updated:October 05 2026
huggingface.co

Total runs: 388
Run Growth: 221
Growth Rate: 56.96%
Updated:October 01 2026
huggingface.co

Total runs: 210
Run Growth: 153
Growth Rate: 72.86%
Updated:September 29 2026
huggingface.co

Total runs: 106
Run Growth: 92
Growth Rate: 86.79%
Updated:September 29 2026
huggingface.co

Total runs: 62
Run Growth: 41
Growth Rate: 66.13%
Updated:September 26 2026
huggingface.co

Total runs: 9
Run Growth: 9
Growth Rate: 100.00%
Updated:October 06 2026