| --- |
| datasets: |
| - autogluon/chronos_datasets |
| - Salesforce/lotsa_data |
| pipeline_tag: time-series-forecasting |
| library_name: tirex-2 |
| license: apache-2.0 |
| --- |
| <div align="left" class="flex items-baseline gap-2"> |
| <img src="tirex.svg" alt="TiRex mascot" width="33" height="40" /> |
| <h1 class="m-0">TiRex-2</h1> |
| </div> |
|
|
| 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](https://arxiv.org/abs/2607.01204). |
|
|
| 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](https://github.com/NX-AI/tirex-2). |
|
|
|
|
| The environment is managed by [Pixi](https://pixi.prefix.dev/latest/). Run the following to install it on your machine |
|
|
| ```bash |
| 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: |
| ```python |
| 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](https://github.com/NX-AI/tirex-2/blob/main/examples/getting_started.ipynb) notebook. |
|
|
| ## Cite |
| If you use TiRex-2 in your research, please cite our work: |
| ```bibtex |
| @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](https://huggingface.co/NX-AI/TiRex-2-gifteval-zs): excludes any overlap with |
| the GiftEval datasets ([pretrain](https://huggingface.co/datasets/Salesforce/GiftEvalPretrain) |
| and [evaluation](https://huggingface.co/datasets/Salesforce/GiftEval)) from pretraining. |
| - [TiRex-2-gp](https://huggingface.co/NX-AI/TiRex-2-gifteval-pretrain): includes the |
| [GiftEval-Pretrain collection](https://huggingface.co/datasets/Salesforce/GiftEvalPretrain) |
| in the pretraining corpus (for comparison against TiRex-2-g). |
| - [TiRex-2-f](https://huggingface.co/NX-AI/TiRex-2-fevbench): excludes all |
| [fev-bench eval datasets](https://huggingface.co/datasets/autogluon/fev_datasets) |
| from pretraining, using the same approach as for GiftEval. |