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.
TiRex-2 generalizes our original univariate model, TiRex, to multivariate forecasting with past and future covariates.
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.
Access to Model Weights
TiRex-2's model weights are gated on Hugging Face. To be able to access them, either log in via the Hugging Face CLI, or generate yourself a Hugging Face access token (make sure to enable Read access to contents of all public gated repos you can access) and set it before loading the model:
CLI:
huggingface-cli login
Access Token:
import os
os.environ["HF_TOKEN"] = "<insert-hf-token>"
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 minimalruns above code and creates a plot of the forecast.pixi run comparisonshowcases 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.
TiRex-2 Pro
TiRex-2 already provides state-of-the-art performance for zero-shot prediction, so you can use this open-source release without training on your own data.
Our pro version extends TiRex-2 with additional capabilities, including:
Streaming: incremental forecast updates as new observations arrive, without recomputing over the full history. Speed: performance-optimized inference, including optimization for dedicated hardware such as edge, embedded, and industrial PC deployments. Finetuning: models fine-tuned on your data or with different pretraining. Classification & Regression: TiRex-2 adapted for classification and regression tasks. If you are interested in any of these, please contact us at contact@nx-ai.com.
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:
- TiRex-2-g: excludes any overlap with the GiftEval datasets (pretrain and evaluation) from pretraining.
- TiRex-2-gp: includes the GiftEval-Pretrain collection in the pretraining corpus (for comparison against TiRex-2-g).
- TiRex-2-f: excludes all fev-bench eval datasets from pretraining, using the same approach as for GiftEval.