Time Series Forecasting
tirex-2

You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

TiRex mascot

TiRex-2

This repository provides the pretrained TiRex-2 model and inference code for zero-shot multivariate forecasting with past and future-known covariates, as introduced in TiRex-2: Generalizing TiRex to Multivariate Data and Streaming.

TiRex-2 is a pretrained time series foundation model that forecasts one or many target variates directly from their history, optionally conditioned on past and future-known covariates. A single checkpoint serves both univariate and multivariate forecasting and operates in a streaming fashion as new observations arrive — all zero-shot, with no task-specific training or fine-tuning.

Key facts

  • Zero-shot multivariate forecasting: TiRex-2 forecasts multiple target variates out of the box, without training or fine-tuning on you data.

  • Past and future-known covariates: TiRex-2 natively conditions on past covariates and future-known covariates, such as calendar features, holidays, promotions, or scheduled interventions.

  • Small active footprint: TiRex-2 activates 38.4M parameters in univariate mode and an additional 44.1M parameters for multivariate forecasting.

Getting started

The environment is managed by Pixi. Run the following to install it on your machine

curl -fsSL https://pixi.sh/install.sh | sh
git clone https://github.com/NX-AI/tirex-2 && cd tirex-2
# activate the cpu-only env
eval "$(pixi shell-hook -e example)"  # to execute on GPUs use `example-cu128` or `example-cu126`

Minimal usage predicting a simple sine wave:

import matplotlib.pyplot as plt, torch
from tirex2 import TimeseriesType, load_model

model = load_model("NX-AI/TiRex-2", device="cpu")  # use `device="cuda"` if cuda is available
y = torch.sin(torch.arange(160).float() / 8) 
ts = TimeseriesType(target=y[:128].unsqueeze(0), past_covariates=None, future_covariates=None)
forecast = model.forecast([ts], prediction_length=32, output_type="numpy")[0][0]

We provide predefined Pixi tasks showcasing examplary forecasts. These run in the CPU-only example environment by default:

  • pixi run minimal runs above code and creates a plot of the forecast.
  • pixi run comparison showcases the additional benefit of future known covariates in forecasting a target.

For a more interactive demo of TiRex-2, we also provide a quick-start notebook.

Cite

If you use TiRex-2 in your research, please cite our work:

@misc{podest2026tirex2generalizingtirexmultivariate,
      title={TiRex-2: Generalizing TiRex to Multivariate Data and Streaming}, 
      author={Patrick Podest and Marco Pichler and Elias Bürger and Levente Zólyomi and Bernhard Voggenberger and Wilhelm Berghammer and Daniel Klotz and Sebastian Böck and Günter Klambauer and Sepp Hochreiter},
      year={2026},
      eprint={2607.01204},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2607.01204}, 
}

Other versions:

Alongside this pretrained checkpoint, we release decontaminated versions to enable fair zero-shot evaluation on specific benchmarks by excluding their data from pretraining:

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Datasets used to train NX-AI/TiRex-2

Paper for NX-AI/TiRex-2