6.5M parameters ยท CPU inference ยท Raspberry Pi ยท ONNX ยท Streaming
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:
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 forecastprint(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 timefor new_val in incoming_stream:
result = model.predict_step(new_val, state, horizon=48)
forecast = result["forecast"][0] # updated forecast instantly
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}
}
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 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:
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.