Timestral-209M

Timestral is a family of time series foundation models for zero-shot forecasting, available in 5M, 28M, 123M, and 209M parameter versions. This repository contains the 209M checkpoint.

Timestral supports univariate and multivariate forecasting, past-only and known-future covariates, and probabilistic predictions across 21 quantiles. It accepts up to 32,768 historical time steps and forecasts up to 1,024 steps in a single forward pass.

We’re releasing the source code in our GitHub repository to make it easy to run Timestral and reproduce our benchmark results.

Model Details

  • Size: 209M parameters.
  • Architecture: patch-based transformer with time attention and variate attention, 24 layers, embedding dimension 768.
  • Patching: 32 time steps per patch. Each patch is embedded from its values together with their missing-value indicators.
  • Context length: up to 32,768 time steps (1,024 patches).
  • Forecast horizon: Up to 1,024 time steps (32 patches) in a single forward pass. Longer horizons are forecast block by block, with each block's median forecast appended to the context.
  • Outputs: 21 quantiles (0.01, 0.05, 0.1, 0.15, …, 0.85, 0.9, 0.95, 0.99).
  • Inputs: univariate or multivariate target variates, plus past-only and known-future covariates, numeric or categorical (categorical covariates are target-encoded). Missing values are marked as NaN.
  • Inference: PyTorch on CPU or GPU.

Benchmarks

Timestral-209M achieves state-of-the-art zero-shot accuracy across three major forecasting benchmarks: GIFT-Eval, TIME, and fev-bench.

Timestral-209M compared with other models

Benchmark Metric Timestral-209M t0-gamma TimesFM-3 Toto-2.0-2.5B Chronos-2
GIFT-Eval MASE ↓ 0.658 0.661 0.667 0.696 0.698
CRPS ↓ 0.446 0.452 0.456 0.476 0.485
TIME MASE ↓ 0.626 0.637 0.640 0.642 0.662
CRPS ↓ 0.522 0.534 0.536 0.539 0.556
fev-bench SQL skill score ↑ 50.39 49.42 48.99 44.42 47.28
MASE skill score ↑ 39.49 37.99 37.82 32.54 35.50

Results across the Timestral family

Benchmark Metric Timestral-5M Timestral-28M Timestral-123M Timestral-209M
GIFT-Eval MASE ↓ 0.705 0.678 0.659 0.658
CRPS ↓ 0.479 0.461 0.448 0.446
TIME MASE ↓ 0.652 0.638 0.628 0.626
CRPS ↓ 0.545 0.534 0.525 0.522
fev-bench SQL skill score ↑ 46.19 48.42 50.18 50.39
MASE skill score ↑ 34.54 37.27 39.19 39.49

The Pareto-front plot below illustrates the trade-off between model size and forecasting performance across the Timestral family.

Pareto front of model size versus forecasting performance for the Timestral models

Usage

Install

Set up your environment:

pip install git+https://github.com/mistralai/timestral.git   # Python >= 3.10, torch >= 2.4

Or from a clone with uv, using the versions pinned in uv.lock:

git clone https://github.com/mistralai/timestral.git && cd timestral
uv sync --frozen
source .venv/bin/activate

Run the model

Here is a simple example using synthetic data.

import numpy as np
import torch
from timestral import TimestralForecaster

model = TimestralForecaster.from_pretrained(
    "mistralai/Timestral-209M",
    device="cuda" if torch.cuda.is_available() else "cpu"
)

# Synthetic example: one series with 1,000 historical observations.
context = np.random.default_rng(42).standard_normal(1000).cumsum()
forecast = model.forecast(context, prediction_length=96)

median = forecast.median
lower, upper = forecast.quantile(0.1), forecast.quantile(0.9)

Check out our GitHub repository for more details!

Additional Resources

License

Models have been released under a Modified MIT license: See here.

You must not use this model in a manner that infringes, misappropriates, or otherwise violates any third party’s rights, including intellectual property rights

Downloads last month
11
Safetensors
Model size
0.2B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including mistralai/Timestral-209M

Evaluation results