Time Series Forecasting
tirex-2
TiRex-2 / README.md
lukfischer's picture
Update README.md (#1)
282c692
|
Raw
History Blame Contribute Delete
4.52 kB
metadata
datasets:
  - autogluon/chronos_datasets
  - Salesforce/lotsa_data
pipeline_tag: time-series-forecasting
library_name: tirex-2
license: apache-2.0
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

📖 For a detailed guide — including pip installation, a Google Colab demo, covariate examples, and benchmark reproduction — see our GitHub repository.

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: