From 72ab64166cc8caa7e5878d0bf00320fe546090b3 Mon Sep 17 00:00:00 2001 From: Abdul Fatir Date: Tue, 26 Nov 2024 17:47:14 +0100 Subject: [PATCH] :zap: Add support for Chronos-Bolt models (#204) *Issue #, if available:* N/A *Description of changes:* This PR adds support for Chronos-Bolt models. TODOs: - [x] Update evaluation script - [x] Fix and add tests for Bolt - [x] Update docstrings - [x] Update README example and mention Chronos-Bolt - [x] Update results bar plot in README - [x] Add versions for libraries in `pyproject.toml` - [x] Check that the training and eval scripts work - [x] Change `autogluon` -> `amazon` in model names Post Merge: - [ ] Update Citation style in README, both Github and HuggingFace repos - [ ] Remove note about AutoGluon - [ ] Update READMEs of original Chronos models to refer to Chronos-Bolt NOTE: To be merged after Chronos-Bolt models are available under the `amazon` namespace on HF. By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice. --------- Co-authored-by: Abdul Fatir Ansari Co-authored-by: Caner Turkmen Co-authored-by: Lorenzo Stella --- README.md | 43 +- figures/zero_shot-agg_scaled_score.png | Bin 325734 -> 0 bytes figures/zero_shot-agg_scaled_score.svg | 4875 +++++++++++++++++ pyproject.toml | 12 +- scripts/evaluation/agg-relative-score.py | 60 + scripts/evaluation/evaluate.py | 106 +- .../chronos-bolt-base-agg-rel-scores.csv | 5 + .../results/chronos-bolt-base-in-domain.csv | 16 + .../results/chronos-bolt-base-zero-shot.csv | 28 + .../chronos-bolt-mini-agg-rel-scores.csv | 5 + .../results/chronos-bolt-mini-in-domain.csv | 16 + .../results/chronos-bolt-mini-zero-shot.csv | 28 + .../chronos-bolt-small-agg-rel-scores.csv | 5 + .../results/chronos-bolt-small-in-domain.csv | 16 + .../results/chronos-bolt-small-zero-shot.csv | 28 + .../chronos-bolt-tiny-agg-rel-scores.csv | 5 + .../results/chronos-bolt-tiny-in-domain.csv | 16 + .../results/chronos-bolt-tiny-zero-shot.csv | 28 + .../chronos-t5-base-agg-rel-scores.csv | 5 + .../results/chronos-t5-base-in-domain.csv | 16 + .../results/chronos-t5-base-zero-shot.csv | 28 + .../chronos-t5-large-agg-rel-scores.csv | 5 + .../results/chronos-t5-large-in-domain.csv | 16 + .../results/chronos-t5-large-zero-shot.csv | 28 + .../chronos-t5-mini-agg-rel-scores.csv | 5 + .../results/chronos-t5-mini-in-domain.csv | 16 + .../results/chronos-t5-mini-zero-shot.csv | 28 + .../chronos-t5-small-agg-rel-scores.csv | 5 + .../results/chronos-t5-small-in-domain.csv | 16 + .../results/chronos-t5-small-zero-shot.csv | 28 + .../chronos-t5-tiny-agg-rel-scores.csv | 5 + .../results/chronos-t5-tiny-in-domain.csv | 16 + .../results/chronos-t5-tiny-zero-shot.csv | 28 + src/chronos/__init__.py | 6 + src/chronos/base.py | 162 + src/chronos/chronos.py | 77 +- src/chronos/chronos_bolt.py | 587 ++ src/chronos/utils.py | 20 + test/dummy-chronos-bolt-model/config.json | 50 + .../model.safetensors | Bin 0 -> 85408 bytes test/test_chronos.py | 92 +- test/test_chronos_bolt.py | 246 + 42 files changed, 6693 insertions(+), 84 deletions(-) delete mode 100644 figures/zero_shot-agg_scaled_score.png create mode 100644 figures/zero_shot-agg_scaled_score.svg create mode 100644 scripts/evaluation/agg-relative-score.py create mode 100644 scripts/evaluation/results/chronos-bolt-base-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-bolt-base-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-bolt-base-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-bolt-mini-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-bolt-mini-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-bolt-mini-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-bolt-small-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-bolt-small-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-bolt-small-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-bolt-tiny-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-bolt-tiny-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-bolt-tiny-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-t5-base-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-t5-base-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-t5-base-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-t5-large-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-t5-large-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-t5-large-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-t5-mini-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-t5-mini-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-t5-mini-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-t5-small-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-t5-small-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-t5-small-zero-shot.csv create mode 100644 scripts/evaluation/results/chronos-t5-tiny-agg-rel-scores.csv create mode 100644 scripts/evaluation/results/chronos-t5-tiny-in-domain.csv create mode 100644 scripts/evaluation/results/chronos-t5-tiny-zero-shot.csv create mode 100644 src/chronos/base.py create mode 100644 src/chronos/chronos_bolt.py create mode 100644 src/chronos/utils.py create mode 100644 test/dummy-chronos-bolt-model/config.json create mode 100644 test/dummy-chronos-bolt-model/model.safetensors create mode 100644 test/test_chronos_bolt.py diff --git a/README.md b/README.md index 145733b..1b9b647 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,8 @@ ## 🚀 News -- **27 June 2024**: 🚀 [Released datasets](https://huggingface.co/datasets/autogluon/chronos_datasets) used in the paper and an [evaluation script](./scripts/README.md#evaluating-chronos-models) to compute the WQL and MASE scores reported in the paper. +- **26 Nov 2024**: ⚡️ Chronos-Bolt models released [on HuggingFace](https://huggingface.co/collections/amazon/chronos-models-65f1791d630a8d57cb718444). Chronos-Bolt models are more accurate (5% lower error), up to 250x faster and 20x more memory efficient than the original Chronos models of the same size! +- **27 Jun 2024**: 🚀 [Released datasets](https://huggingface.co/datasets/autogluon/chronos_datasets) used in the paper and an [evaluation script](./scripts/README.md#evaluating-chronos-models) to compute the WQL and MASE scores reported in the paper. - **17 May 2024**: 🐛 Fixed an off-by-one error in bin indices in the `output_transform`. This simple fix significantly improves the overall performance of Chronos. We will update the results in the next revision on ArXiv. - **10 May 2024**: 🚀 We added the code for pretraining and fine-tuning Chronos models. You can find it in [this folder](./scripts/training). We also added [a script](./scripts/kernel-synth.py) for generating synthetic time series data from Gaussian processes (KernelSynth; see Section 4.2 in the paper for details). Check out the [usage examples](./scripts/). - **19 Apr 2024**: 🚀 Chronos is now supported on [AutoGluon-TimeSeries](https://auto.gluon.ai/stable/tutorials/timeseries/index.html), the powerful AutoML package for time series forecasting which enables model ensembles, cloud deployments, and much more. Get started with the [tutorial](https://auto.gluon.ai/stable/tutorials/timeseries/forecasting-chronos.html). @@ -52,62 +53,72 @@ The models in this repository are based on the [T5 architecture](https://arxiv.o | [**chronos-t5-small**](https://huggingface.co/amazon/chronos-t5-small) | 46M | [t5-efficient-small](https://huggingface.co/google/t5-efficient-small) | | [**chronos-t5-base**](https://huggingface.co/amazon/chronos-t5-base) | 200M | [t5-efficient-base](https://huggingface.co/google/t5-efficient-base) | | [**chronos-t5-large**](https://huggingface.co/amazon/chronos-t5-large) | 710M | [t5-efficient-large](https://huggingface.co/google/t5-efficient-large) | +| [**chronos-bolt-tiny**](https://huggingface.co/amazon/chronos-bolt-tiny) | 9M | [t5-efficient-tiny](https://huggingface.co/google/t5-efficient-tiny) | +| [**chronos-bolt-mini**](https://huggingface.co/amazon/chronos-bolt-mini) | 21M | [t5-efficient-mini](https://huggingface.co/google/t5-efficient-mini) | +| [**chronos-bolt-small**](https://huggingface.co/amazon/chronos-bolt-small) | 48M | [t5-efficient-small](https://huggingface.co/google/t5-efficient-small) | +| [**chronos-bolt-base**](https://huggingface.co/amazon/chronos-bolt-base) | 205M | [t5-efficient-base](https://huggingface.co/google/t5-efficient-base) | ### Zero-Shot Results -The following figure showcases the remarkable **zero-shot** performance of Chronos models on 27 datasets against local models, task-specific models and other pretrained models. For details on the evaluation setup and other results, please refer to [the paper](https://arxiv.org/abs/2403.07815). +The following figure showcases the remarkable **zero-shot** performance of Chronos and Chronos-Bolt models on 27 datasets against local models, task-specific models and other pretrained models. For details on the evaluation setup and other results, please refer to [the paper](https://arxiv.org/abs/2403.07815).

- +
- Fig. 2: Performance of different models on Benchmark II, comprising 27 datasets not seen by Chronos models during training. This benchmark provides insights into the zero-shot performance of Chronos models against local statistical models, which fit parameters individually for each time series, task-specific models trained on each task, and pretrained models trained on a large corpus of time series. Pretrained Models (Other) indicates that some (or all) of the datasets in Benchmark II may have been in the training corpus of these models. The probabilistic (WQL) and point (MASE) forecasting metrics were normalized using the scores of the Seasonal Naive baseline and aggregated through a geometric mean to obtain the Agg. Relative WQL and MASE, respectively. + Fig. 2: Performance of different models on Benchmark II, comprising 27 datasets not seen by Chronos and Chronos-Bolt models during training. This benchmark provides insights into the zero-shot performance of Chronos and Chronos-Bolt models against local statistical models, which fit parameters individually for each time series, task-specific models trained on each task, and pretrained models trained on a large corpus of time series. Pretrained Models (Other) indicates that some (or all) of the datasets in Benchmark II may have been in the training corpus of these models. The probabilistic (WQL) and point (MASE) forecasting metrics were normalized using the scores of the Seasonal Naive baseline and aggregated through a geometric mean to obtain the Agg. Relative WQL and MASE, respectively.

## 📈 Usage -To perform inference with Chronos models, install this package by running: +To perform inference with Chronos or Chronos-Bolt models, install this package by running: ``` pip install git+https://github.com/amazon-science/chronos-forecasting.git ``` > [!TIP] -> The recommended way of using Chronos for production use cases is through [AutoGluon](https://auto.gluon.ai), which features ensembling with other statistical and machine learning models for time series forecasting as well as seamless deployments on AWS with SageMaker 🧠. Check out the AutoGluon Chronos [tutorial](https://auto.gluon.ai/stable/tutorials/timeseries/forecasting-chronos.html). +> This repository is intended for research purposes and provides a minimal interface to Chronos models. The recommended way of using Chronos for production use cases is through [AutoGluon](https://auto.gluon.ai), which features effortless fine-tuning, augmenting Chronos models with exogenous information through covariate regressors, ensembling with other statistical and machine learning models, as well as seamless deployments on AWS with SageMaker 🧠. Check out the AutoGluon Chronos [tutorial](https://auto.gluon.ai/stable/tutorials/timeseries/forecasting-chronos.html). ### Forecasting -A minimal example showing how to perform forecasting using Chronos models: +A minimal example showing how to perform forecasting using Chronos and Chronos-Bolt models: ```python import pandas as pd # requires: pip install pandas import torch -from chronos import ChronosPipeline +from chronos import BaseChronosPipeline -pipeline = ChronosPipeline.from_pretrained( - "amazon/chronos-t5-small", +pipeline = BaseChronosPipeline.from_pretrained( + "amazon/chronos-t5-small", # use "amazon/chronos-bolt-small" for the corresponding Chronos-Bolt model device_map="cuda", # use "cpu" for CPU inference and "mps" for Apple Silicon torch_dtype=torch.bfloat16, ) -df = pd.read_csv("https://raw.githubusercontent.com/AileenNielsen/TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv") +df = pd.read_csv( + "https://raw.githubusercontent.com/AileenNielsen/TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv" +) # context must be either a 1D tensor, a list of 1D tensors, # or a left-padded 2D tensor with batch as the first dimension -# forecast shape: [num_series, num_samples, prediction_length] +# The original Chronos models generate forecast samples, so forecast has shape +# [num_series, num_samples, prediction_length]. +# Chronos-Bolt models generate quantile forecasts, so forecast has shape +# [num_series, num_quantiles, prediction_length]. forecast = pipeline.predict( - context=torch.tensor(df["#Passengers"]), - prediction_length=12, - num_samples=20, + context=torch.tensor(df["#Passengers"]), prediction_length=12 ) ``` More options for `pipeline.predict` can be found with: ```python -print(ChronosPipeline.predict.__doc__) +from chronos import ChronosPipeline, ChronosBoltPipeline + +print(ChronosPipeline.predict.__doc__) # for Chronos models +print(ChronosBoltPipeline.predict.__doc__) # for Chronos-Bolt models ``` We can now visualize the forecast: diff --git a/figures/zero_shot-agg_scaled_score.png b/figures/zero_shot-agg_scaled_score.png deleted file mode 100644 index 0210d1cc6467fb4314295fc9a3fc7a6a06cdadb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325734 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

GVfI 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�w#25XN~9TH6~_O9QKO8dM-3T$OyR#BP`7) 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̪ivv1rczj)zYjDDK+AELswU3t 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 diff --git a/figures/zero_shot-agg_scaled_score.svg b/figures/zero_shot-agg_scaled_score.svg new file mode 100644 index 0000000..560c4de --- /dev/null +++ b/figures/zero_shot-agg_scaled_score.svg @@ -0,0 +1,4875 @@ + + + + + + + + 2024-11-26T17:40:11.488708 + image/svg+xml + + + Matplotlib v3.9.2, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pyproject.toml b/pyproject.toml index 55dd210..c3b916d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,19 +1,19 @@ [project] name = "chronos" -version = "1.2.1" +version = "1.3.0" requires-python = ">=3.8" license = { file = "LICENSE" } dependencies = [ - "torch~=2.0", # package was tested on 2.2 - "transformers~=4.30", - "accelerate", + "torch>=2.0,<2.6", # package was tested on 2.2 + "transformers>=4.30,<4.48", + "accelerate>=0.32,<1", ] [project.optional-dependencies] test = ["pytest~=8.0", "numpy~=1.21"] typecheck = ["mypy~=1.9"] -training = ["gluonts[pro]", "numpy", "tensorboard", "typer", "typer-config", "joblib", "scikit-learn"] -evaluation = ["gluonts[pro]", "datasets", "numpy", "typer"] +training = ["gluonts[pro]~=0.15", "numpy~=1.21", "datasets~=2.18", "typer", "typer-config", "joblib", "scikit-learn", "tensorboard"] +evaluation = ["gluonts[pro]~=0.15", "numpy~=1.21", "datasets~=2.18", "typer"] [tool.mypy] ignore_missing_imports = true diff --git a/scripts/evaluation/agg-relative-score.py b/scripts/evaluation/agg-relative-score.py new file mode 100644 index 0000000..0a308e7 --- /dev/null +++ b/scripts/evaluation/agg-relative-score.py @@ -0,0 +1,60 @@ +import pandas as pd +import typer +from scipy.stats import gmean +from pathlib import Path + +app = typer.Typer(pretty_exceptions_enable=False) +DEFAULT_RESULTS_DIR = Path(__file__).parent / "results" + + +def agg_relative_score(model_csv: Path, baseline_csv: Path): + model_df = pd.read_csv(model_csv).set_index("dataset") + baseline_df = pd.read_csv(baseline_csv).set_index("dataset") + relative_score = model_df.drop("model", axis="columns") / baseline_df.drop( + "model", axis="columns" + ) + return relative_score.agg(gmean) + + +@app.command() +def main( + model_name: str, + baseline_name: str = "seasonal-naive", + results_dir: Path = DEFAULT_RESULTS_DIR, +): + """ + Compute the aggregated relative score as reported in the Chronos paper. + Results will be saved to {results_dir}/{model_name}-agg-rel-scores.csv + + Parameters + ---------- + model_name : str + Name of the model used in the CSV files. The in-domain and zero-shot CSVs + are expected to be named {model_name}-in-domain.csv and {model_name}-zero-shot.csv. + results_dir : Path, optional, default = results/ + Directory where results CSVs generated by evaluate.py are stored + """ + + in_domain_agg_score_df = agg_relative_score( + results_dir / f"{model_name}-in-domain.csv", + results_dir / f"{baseline_name}-in-domain.csv", + ) + in_domain_agg_score_df.name = "value" + in_domain_agg_score_df.index.name = "metric" + + zero_shot_agg_score_df = agg_relative_score( + results_dir / f"{model_name}-zero-shot.csv", + results_dir / f"{baseline_name}-zero-shot.csv", + ) + zero_shot_agg_score_df.name = "value" + zero_shot_agg_score_df.index.name = "metric" + + agg_score_df = pd.concat( + {"in-domain": in_domain_agg_score_df, "zero-shot": zero_shot_agg_score_df}, + names=["benchmark"], + ) + agg_score_df.to_csv(f"{results_dir}/{model_name}-agg-rel-scores.csv") + + +if __name__ == "__main__": + app() diff --git a/scripts/evaluation/evaluate.py b/scripts/evaluation/evaluate.py index 756f544..8995e31 100644 --- a/scripts/evaluation/evaluate.py +++ b/scripts/evaluation/evaluate.py @@ -12,10 +12,15 @@ from gluonts.dataset.split import split from gluonts.ev.metrics import MASE, MeanWeightedSumQuantileLoss from gluonts.itertools import batcher from gluonts.model.evaluation import evaluate_forecasts -from gluonts.model.forecast import SampleForecast +from gluonts.model.forecast import QuantileForecast, SampleForecast from tqdm.auto import tqdm -from chronos import ChronosPipeline +from chronos import ( + BaseChronosPipeline, + ChronosBoltPipeline, + ChronosPipeline, + ForecastType, +) app = typer.Typer(pretty_exceptions_enable=False) @@ -228,37 +233,45 @@ def load_and_split_dataset(backtest_config: dict): return test_data -def generate_sample_forecasts( +def generate_forecasts( test_data_input: Iterable, - pipeline: ChronosPipeline, + pipeline: BaseChronosPipeline, prediction_length: int, batch_size: int, - num_samples: int, **predict_kwargs, ): - # Generate forecast samples - forecast_samples = [] + # Generate forecasts + forecast_outputs = [] for batch in tqdm(batcher(test_data_input, batch_size=batch_size)): context = [torch.tensor(entry["target"]) for entry in batch] - forecast_samples.append( + forecast_outputs.append( pipeline.predict( context, prediction_length=prediction_length, - num_samples=num_samples, **predict_kwargs, ).numpy() ) - forecast_samples = np.concatenate(forecast_samples) + forecast_outputs = np.concatenate(forecast_outputs) - # Convert forecast samples into gluonts SampleForecast objects - sample_forecasts = [] - for item, ts in zip(forecast_samples, test_data_input): + # Convert forecast samples into gluonts Forecast objects + forecasts = [] + for item, ts in zip(forecast_outputs, test_data_input): forecast_start_date = ts["start"] + len(ts["target"]) - sample_forecasts.append( - SampleForecast(samples=item, start_date=forecast_start_date) - ) - return sample_forecasts + if pipeline.forecast_type == ForecastType.SAMPLES: + forecasts.append( + SampleForecast(samples=item, start_date=forecast_start_date) + ) + elif pipeline.forecast_type == ForecastType.QUANTILES: + forecasts.append( + QuantileForecast( + forecast_arrays=item, + forecast_keys=list(map(str, pipeline.quantiles)), + start_date=forecast_start_date, + ) + ) + + return forecasts @app.command() @@ -274,17 +287,65 @@ def main( top_k: Optional[int] = None, top_p: Optional[float] = None, ): + """Evaluate Chronos models. + + Parameters + ---------- + config_path : Path + Path to the evaluation config. See ./configs/. + metrics_path : Path + Path to the CSV file where metrics will be saved. + chronos_model_id : str, optional, default = "amazon/chronos-t5-small" + HuggingFace ID of the Chronos model or local path + Available models on HuggingFace: + Chronos: + - amazon/chronos-t5-tiny + - amazon/chronos-t5-mini + - amazon/chronos-t5-small + - amazon/chronos-t5-base + - amazon/chronos-t5-large + Chronos-Bolt: + - amazon/chronos-bolt-tiny + - amazon/chronos-bolt-mini + - amazon/chronos-bolt-small + - amazon/chronos-bolt-base + device : str, optional, default = "cuda" + Device on which inference will be performed + torch_dtype : str, optional + Model's dtype, by default "bfloat16" + batch_size : int, optional, default = 32 + Batch size for inference. For Chronos-Bolt models, significantly larger + batch sizes can be used + num_samples : int, optional, default = 20 + Number of samples to draw when using the original Chronos models + temperature : Optional[float], optional, default = 1.0 + Softmax temperature to used for the original Chronos models + top_k : Optional[int], optional, default = 50 + Top-K sampling, by default None + top_p : Optional[float], optional, default = 1.0 + Top-p sampling, by default None + """ if isinstance(torch_dtype, str): torch_dtype = getattr(torch, torch_dtype) assert isinstance(torch_dtype, torch.dtype) # Load Chronos - pipeline = ChronosPipeline.from_pretrained( + pipeline = BaseChronosPipeline.from_pretrained( chronos_model_id, device_map=device, torch_dtype=torch_dtype, ) + if isinstance(pipeline, ChronosPipeline): + predict_kwargs = dict( + num_samples=num_samples, + temperature=temperature, + top_k=top_k, + top_p=top_p, + ) + elif isinstance(pipeline, ChronosBoltPipeline): + predict_kwargs = {} + # Load backtest configs with open(config_path) as fp: backtest_configs = yaml.safe_load(fp) @@ -301,21 +362,18 @@ def main( f"Generating forecasts for {dataset_name} " f"({len(test_data.input)} time series)" ) - sample_forecasts = generate_sample_forecasts( + forecasts = generate_forecasts( test_data.input, pipeline=pipeline, prediction_length=prediction_length, batch_size=batch_size, - num_samples=num_samples, - temperature=temperature, - top_k=top_k, - top_p=top_p, + **predict_kwargs, ) logger.info(f"Evaluating forecasts for {dataset_name}") metrics = ( evaluate_forecasts( - sample_forecasts, + forecasts, test_data=test_data, metrics=[ MASE(), diff --git a/scripts/evaluation/results/chronos-bolt-base-agg-rel-scores.csv b/scripts/evaluation/results/chronos-bolt-base-agg-rel-scores.csv new file mode 100644 index 0000000..3912150 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-base-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.6800133628315155 +in-domain,WQL,0.5339263811489279 +zero-shot,MASE,0.7914551113353537 +zero-shot,WQL,0.6241424984163773 diff --git a/scripts/evaluation/results/chronos-bolt-base-in-domain.csv b/scripts/evaluation/results/chronos-bolt-base-in-domain.csv new file mode 100644 index 0000000..abe3347 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-base-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-bolt-base,0.41069374835605243,0.0703533790998506 +m4_daily,amazon/chronos-bolt-base,3.205192517121196,0.02110308498174413 +m4_hourly,amazon/chronos-bolt-base,0.8350129849014075,0.025353803894164 +m4_monthly,amazon/chronos-bolt-base,0.9491758928362231,0.09382496106659234 +m4_weekly,amazon/chronos-bolt-base,2.0847827409162742,0.03816605075768161 +monash_electricity_hourly,amazon/chronos-bolt-base,1.254966217685461,0.09442192616975713 +monash_electricity_weekly,amazon/chronos-bolt-base,1.8391546050108039,0.06410971963960499 +monash_kdd_cup_2018,amazon/chronos-bolt-base,0.6405985809360102,0.2509172188706336 +monash_london_smart_meters,amazon/chronos-bolt-base,0.701398572604996,0.3218915088923906 +monash_pedestrian_counts,amazon/chronos-bolt-base,0.2646412642278343,0.18789459806066328 +monash_rideshare,amazon/chronos-bolt-base,0.7695376426829713,0.11637119433040358 +monash_temperature_rain,amazon/chronos-bolt-base,0.8983612698773724,0.6050555216496304 +taxi_30min,amazon/chronos-bolt-base,0.7688908266765317,0.2363178601205094 +uber_tlc_daily,amazon/chronos-bolt-base,0.8231767493519677,0.0926036406916842 +uber_tlc_hourly,amazon/chronos-bolt-base,0.6632193728217927,0.14987786887626975 diff --git a/scripts/evaluation/results/chronos-bolt-base-zero-shot.csv b/scripts/evaluation/results/chronos-bolt-base-zero-shot.csv new file mode 100644 index 0000000..833658a --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-base-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-bolt-base,0.7479154031956647,0.07062173821055001 +ETTm,amazon/chronos-bolt-base,0.6334357237512225,0.052261607745858835 +dominick,amazon/chronos-bolt-base,0.8560272479913918,0.3453573743726445 +ercot,amazon/chronos-bolt-base,0.6933217425507392,0.02142183038021456 +exchange_rate,amazon/chronos-bolt-base,1.7095176257412634,0.01200682136751536 +m4_quarterly,amazon/chronos-bolt-base,1.2244670010522907,0.0771066518089854 +m4_yearly,amazon/chronos-bolt-base,3.513752058541554,0.12142798053483984 +m5,amazon/chronos-bolt-base,0.9152230096463854,0.561999688057527 +monash_australian_electricity,amazon/chronos-bolt-base,0.7403239930185613,0.03584034231329335 +monash_car_parts,amazon/chronos-bolt-base,0.8550263912438314,0.9945122291263591 +monash_cif_2016,amazon/chronos-bolt-base,0.9988541862779904,0.016456104842296485 +monash_covid_deaths,amazon/chronos-bolt-base,38.901749109066415,0.047410971217640714 +monash_fred_md,amazon/chronos-bolt-base,0.6468787708795645,0.04185083716355386 +monash_hospital,amazon/chronos-bolt-base,0.6883138394434054,0.057032869931903894 +monash_m1_monthly,amazon/chronos-bolt-base,1.0997677446267855,0.1392311148066238 +monash_m1_quarterly,amazon/chronos-bolt-base,1.7737851980875563,0.1007118219350403 +monash_m1_yearly,amazon/chronos-bolt-base,4.404672537832342,0.1504617654430952 +monash_m3_monthly,amazon/chronos-bolt-base,0.8510696834878182,0.09269673913736748 +monash_m3_quarterly,amazon/chronos-bolt-base,1.2890908822598466,0.07615133571216029 +monash_m3_yearly,amazon/chronos-bolt-base,2.9067097980770082,0.12934285625258413 +monash_nn5_weekly,amazon/chronos-bolt-base,0.9158766337957451,0.08352114810139548 +monash_tourism_monthly,amazon/chronos-bolt-base,1.5283388458731357,0.09026425492612797 +monash_tourism_quarterly,amazon/chronos-bolt-base,1.756127005530011,0.06448060953595125 +monash_tourism_yearly,amazon/chronos-bolt-base,3.691545772463519,0.16548820700844424 +monash_traffic,amazon/chronos-bolt-base,0.7843310867739336,0.23148632068725078 +monash_weather,amazon/chronos-bolt-base,0.8115247139672316,0.13350830777170594 +nn5,amazon/chronos-bolt-base,0.5764084996361287,0.1500519584148468 diff --git a/scripts/evaluation/results/chronos-bolt-mini-agg-rel-scores.csv b/scripts/evaluation/results/chronos-bolt-mini-agg-rel-scores.csv new file mode 100644 index 0000000..9fba001 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-mini-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.7268373301543752 +in-domain,WQL,0.565140251955324 +zero-shot,MASE,0.8221798917822493 +zero-shot,WQL,0.6441645845380903 diff --git a/scripts/evaluation/results/chronos-bolt-mini-in-domain.csv b/scripts/evaluation/results/chronos-bolt-mini-in-domain.csv new file mode 100644 index 0000000..fac01bf --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-mini-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-bolt-mini,0.44185193304080733,0.0731477927531107 +m4_daily,amazon/chronos-bolt-mini,3.1342608828747456,0.0206872246743766 +m4_hourly,amazon/chronos-bolt-mini,0.9218285923038745,0.024383114886067574 +m4_monthly,amazon/chronos-bolt-mini,0.9628339921394529,0.09502498697494888 +m4_weekly,amazon/chronos-bolt-mini,2.2330452369879255,0.039393515325238534 +monash_electricity_hourly,amazon/chronos-bolt-mini,1.6195944363428718,0.11468972600782207 +monash_electricity_weekly,amazon/chronos-bolt-mini,1.866105365159433,0.06019900031840434 +monash_kdd_cup_2018,amazon/chronos-bolt-mini,0.74790954883436,0.3012661161484388 +monash_london_smart_meters,amazon/chronos-bolt-mini,0.7187830347765344,0.32984510693830227 +monash_pedestrian_counts,amazon/chronos-bolt-mini,0.308633944815819,0.23331301029432483 +monash_rideshare,amazon/chronos-bolt-mini,0.818948044410056,0.1297966960374544 +monash_temperature_rain,amazon/chronos-bolt-mini,0.9035244443682741,0.605031064086567 +taxi_30min,amazon/chronos-bolt-mini,0.812010120941363,0.25232294549917317 +uber_tlc_daily,amazon/chronos-bolt-mini,0.8507256206478295,0.10101757743084538 +uber_tlc_hourly,amazon/chronos-bolt-mini,0.6685484898085609,0.1515245941548974 diff --git a/scripts/evaluation/results/chronos-bolt-mini-zero-shot.csv b/scripts/evaluation/results/chronos-bolt-mini-zero-shot.csv new file mode 100644 index 0000000..2060004 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-mini-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-bolt-mini,0.8057126710113404,0.07740387596411452 +ETTm,amazon/chronos-bolt-mini,0.6100793941108849,0.05129333450944573 +dominick,amazon/chronos-bolt-mini,0.8664152477208024,0.3499696999160997 +ercot,amazon/chronos-bolt-mini,0.6871250728215426,0.02448804863744021 +exchange_rate,amazon/chronos-bolt-mini,1.3520551553333662,0.00934663373172766 +m4_quarterly,amazon/chronos-bolt-mini,1.2569644266281508,0.07833787023275976 +m4_yearly,amazon/chronos-bolt-mini,3.7611003052413796,0.12931927951165456 +m5,amazon/chronos-bolt-mini,0.9188876472137485,0.5661303206519673 +monash_australian_electricity,amazon/chronos-bolt-mini,0.8823559450287066,0.04493688824488474 +monash_car_parts,amazon/chronos-bolt-mini,0.8604081423647779,1.0041876404811494 +monash_cif_2016,amazon/chronos-bolt-mini,1.0762361363763873,0.017641893717784202 +monash_covid_deaths,amazon/chronos-bolt-mini,38.83915011538576,0.06098317835750057 +monash_fred_md,amazon/chronos-bolt-mini,0.6169859211923081,0.03256236965040934 +monash_hospital,amazon/chronos-bolt-mini,0.6924431064606051,0.05766349075348645 +monash_m1_monthly,amazon/chronos-bolt-mini,1.147893030263777,0.13270222658510553 +monash_m1_quarterly,amazon/chronos-bolt-mini,1.8662100001165818,0.09846363409254102 +monash_m1_yearly,amazon/chronos-bolt-mini,5.319154632748303,0.16167328827180308 +monash_m3_monthly,amazon/chronos-bolt-mini,0.8758452776118432,0.09493431248614057 +monash_m3_quarterly,amazon/chronos-bolt-mini,1.3555175243802005,0.07808062465932723 +monash_m3_yearly,amazon/chronos-bolt-mini,3.605769430055575,0.15711010456482008 +monash_nn5_weekly,amazon/chronos-bolt-mini,0.9347141924977239,0.08522899825844342 +monash_tourism_monthly,amazon/chronos-bolt-mini,1.649587479665881,0.0979648261309891 +monash_tourism_quarterly,amazon/chronos-bolt-mini,1.8471553663088986,0.06501077791766902 +monash_tourism_yearly,amazon/chronos-bolt-mini,3.9932920493826245,0.1743539122097316 +monash_traffic,amazon/chronos-bolt-mini,0.8355442361271347,0.24351051123330386 +monash_weather,amazon/chronos-bolt-mini,0.800013628350165,0.13041050756802045 +nn5,amazon/chronos-bolt-mini,0.611917632501032,0.1570111102680171 diff --git a/scripts/evaluation/results/chronos-bolt-small-agg-rel-scores.csv b/scripts/evaluation/results/chronos-bolt-small-agg-rel-scores.csv new file mode 100644 index 0000000..0652750 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-small-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.7030801652116672 +in-domain,WQL,0.5443547623341555 +zero-shot,MASE,0.8192127745093378 +zero-shot,WQL,0.6356097843099521 diff --git a/scripts/evaluation/results/chronos-bolt-small-in-domain.csv b/scripts/evaluation/results/chronos-bolt-small-in-domain.csv new file mode 100644 index 0000000..7c17064 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-small-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-bolt-small,0.44920089250026723,0.08115291306964295 +m4_daily,amazon/chronos-bolt-small,3.201966619014735,0.02143368277732494 +m4_hourly,amazon/chronos-bolt-small,0.8686298207618999,0.020368729287465817 +m4_monthly,amazon/chronos-bolt-small,0.9537717737278778,0.0939247807527992 +m4_weekly,amazon/chronos-bolt-small,2.1236755094789177,0.03785184715517262 +monash_electricity_hourly,amazon/chronos-bolt-small,1.3728906161330452,0.09452411472431674 +monash_electricity_weekly,amazon/chronos-bolt-small,1.8703239487242378,0.06648479071326366 +monash_kdd_cup_2018,amazon/chronos-bolt-small,0.6458631909979771,0.25148489931571666 +monash_london_smart_meters,amazon/chronos-bolt-small,0.7126939688565166,0.326874529903459 +monash_pedestrian_counts,amazon/chronos-bolt-small,0.3015070035798365,0.2285590441093863 +monash_rideshare,amazon/chronos-bolt-small,0.823726965741684,0.12409769473500927 +monash_temperature_rain,amazon/chronos-bolt-small,0.8980348827836525,0.5984819599873311 +taxi_30min,amazon/chronos-bolt-small,0.7597818149895785,0.2348569752311862 +uber_tlc_daily,amazon/chronos-bolt-small,0.8460854328036702,0.09666483354735897 +uber_tlc_hourly,amazon/chronos-bolt-small,0.6662547495017634,0.1524256346268063 diff --git a/scripts/evaluation/results/chronos-bolt-small-zero-shot.csv b/scripts/evaluation/results/chronos-bolt-small-zero-shot.csv new file mode 100644 index 0000000..e9f4134 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-small-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-bolt-small,0.792521748651108,0.07590654063011319 +ETTm,amazon/chronos-bolt-small,0.6209623928936988,0.05056189722606397 +dominick,amazon/chronos-bolt-small,0.8706134610400587,0.34811141409475416 +ercot,amazon/chronos-bolt-small,0.7562857616685997,0.02596064260343696 +exchange_rate,amazon/chronos-bolt-small,1.774835301692689,0.011363548847621512 +m4_quarterly,amazon/chronos-bolt-small,1.2478142413437487,0.07808795122806232 +m4_yearly,amazon/chronos-bolt-small,3.6925595655002574,0.12772564181388502 +m5,amazon/chronos-bolt-small,0.9195435643571084,0.5668430814831332 +monash_australian_electricity,amazon/chronos-bolt-small,0.8128424798841111,0.041509852162861564 +monash_car_parts,amazon/chronos-bolt-small,0.8584574663781737,1.0074689402521324 +monash_cif_2016,amazon/chronos-bolt-small,1.0182471909074982,0.01581964877692293 +monash_covid_deaths,amazon/chronos-bolt-small,36.467595559655145,0.0427382859406882 +monash_fred_md,amazon/chronos-bolt-small,0.6132863794635253,0.03730410577241995 +monash_hospital,amazon/chronos-bolt-small,0.6954489513780618,0.058119864671526154 +monash_m1_monthly,amazon/chronos-bolt-small,1.1277621848099244,0.1335656174632902 +monash_m1_quarterly,amazon/chronos-bolt-small,1.8356144904231688,0.09363028483838018 +monash_m1_yearly,amazon/chronos-bolt-small,5.098146069746402,0.15669928873371905 +monash_m3_monthly,amazon/chronos-bolt-small,0.8685125121306435,0.09396568468255145 +monash_m3_quarterly,amazon/chronos-bolt-small,1.3269103591066727,0.07691022995374203 +monash_m3_yearly,amazon/chronos-bolt-small,3.40993282700627,0.1547639821304127 +monash_nn5_weekly,amazon/chronos-bolt-small,0.9266513350636507,0.08452821221908001 +monash_tourism_monthly,amazon/chronos-bolt-small,1.6106732721197876,0.09362336754317802 +monash_tourism_quarterly,amazon/chronos-bolt-small,1.8357819365308639,0.06734337535269994 +monash_tourism_yearly,amazon/chronos-bolt-small,3.8963100495394194,0.16766064312072784 +monash_traffic,amazon/chronos-bolt-small,0.8598507749866499,0.25173786112983054 +monash_weather,amazon/chronos-bolt-small,0.8020408743877911,0.13258563963844888 +nn5,amazon/chronos-bolt-small,0.5833047644729239,0.15066847836762787 diff --git a/scripts/evaluation/results/chronos-bolt-tiny-agg-rel-scores.csv b/scripts/evaluation/results/chronos-bolt-tiny-agg-rel-scores.csv new file mode 100644 index 0000000..72e98ec --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-tiny-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.7403252781013574 +in-domain,WQL,0.5733728165523524 +zero-shot,MASE,0.8445407343705457 +zero-shot,WQL,0.6678781905023173 diff --git a/scripts/evaluation/results/chronos-bolt-tiny-in-domain.csv b/scripts/evaluation/results/chronos-bolt-tiny-in-domain.csv new file mode 100644 index 0000000..bf2ffb5 --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-tiny-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-bolt-tiny,0.4676384089765091,0.0861229808117837 +m4_daily,amazon/chronos-bolt-tiny,3.1789994761356795,0.020961883512815756 +m4_hourly,amazon/chronos-bolt-tiny,0.9348005698736752,0.021087527284114574 +m4_monthly,amazon/chronos-bolt-tiny,0.965298729632761,0.0950380483243082 +m4_weekly,amazon/chronos-bolt-tiny,2.261575511029903,0.04093653263178429 +monash_electricity_hourly,amazon/chronos-bolt-tiny,1.5739346351263623,0.10808418398945202 +monash_electricity_weekly,amazon/chronos-bolt-tiny,1.8628689103722829,0.05773335283584782 +monash_kdd_cup_2018,amazon/chronos-bolt-tiny,0.6869549985391232,0.28012801092758166 +monash_london_smart_meters,amazon/chronos-bolt-tiny,0.7284234905933779,0.33496438244693033 +monash_pedestrian_counts,amazon/chronos-bolt-tiny,0.32338947321773864,0.2530637833749087 +monash_rideshare,amazon/chronos-bolt-tiny,0.8562780835002918,0.1304317657933891 +monash_temperature_rain,amazon/chronos-bolt-tiny,0.9030707620825977,0.6064087080755548 +taxi_30min,amazon/chronos-bolt-tiny,0.9122159603256838,0.28002194370731626 +uber_tlc_daily,amazon/chronos-bolt-tiny,0.9087055420190513,0.11193388685815164 +uber_tlc_hourly,amazon/chronos-bolt-tiny,0.6716569179590032,0.15310845458208555 diff --git a/scripts/evaluation/results/chronos-bolt-tiny-zero-shot.csv b/scripts/evaluation/results/chronos-bolt-tiny-zero-shot.csv new file mode 100644 index 0000000..4ec181e --- /dev/null +++ b/scripts/evaluation/results/chronos-bolt-tiny-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-bolt-tiny,0.7941225847155844,0.07480860969990633 +ETTm,amazon/chronos-bolt-tiny,0.6508270995240056,0.05440068825429993 +dominick,amazon/chronos-bolt-tiny,0.876060127216559,0.35175949052933253 +ercot,amazon/chronos-bolt-tiny,0.7309134980173839,0.02468604544464515 +exchange_rate,amazon/chronos-bolt-tiny,1.6857262567077134,0.011477224264784112 +m4_quarterly,amazon/chronos-bolt-tiny,1.2605908919338378,0.0789049420017836 +m4_yearly,amazon/chronos-bolt-tiny,3.7118394116161757,0.1286932555969197 +m5,amazon/chronos-bolt-tiny,0.9195469670062033,0.5634881835998845 +monash_australian_electricity,amazon/chronos-bolt-tiny,0.8419304693259403,0.042040993880313904 +monash_car_parts,amazon/chronos-bolt-tiny,0.8625579150452282,1.0009987800801836 +monash_cif_2016,amazon/chronos-bolt-tiny,1.095219642027011,0.017550336784241796 +monash_covid_deaths,amazon/chronos-bolt-tiny,40.674057986280744,0.06723714516685976 +monash_fred_md,amazon/chronos-bolt-tiny,0.6127387450520702,0.04747523852271518 +monash_hospital,amazon/chronos-bolt-tiny,0.6980246281225624,0.05864223243167421 +monash_m1_monthly,amazon/chronos-bolt-tiny,1.1625495971731141,0.13142237467151166 +monash_m1_quarterly,amazon/chronos-bolt-tiny,1.8941765599193754,0.09972207844232561 +monash_m1_yearly,amazon/chronos-bolt-tiny,5.136332694531757,0.160331813128038 +monash_m3_monthly,amazon/chronos-bolt-tiny,0.8744553726704598,0.09435519378597752 +monash_m3_quarterly,amazon/chronos-bolt-tiny,1.364563776692303,0.07875066385737857 +monash_m3_yearly,amazon/chronos-bolt-tiny,3.3685961410254928,0.15158076519486274 +monash_nn5_weekly,amazon/chronos-bolt-tiny,0.9324436794013877,0.0847385189968909 +monash_tourism_monthly,amazon/chronos-bolt-tiny,1.7895936775088157,0.1058167042693116 +monash_tourism_quarterly,amazon/chronos-bolt-tiny,2.095262637810499,0.0710732570354461 +monash_tourism_yearly,amazon/chronos-bolt-tiny,4.042821441327848,0.172613367251472 +monash_traffic,amazon/chronos-bolt-tiny,0.8836032533767518,0.2574297134210491 +monash_weather,amazon/chronos-bolt-tiny,0.8005348255663177,0.13111355494466076 +nn5,amazon/chronos-bolt-tiny,0.7228248498869763,0.1816913098894226 diff --git a/scripts/evaluation/results/chronos-t5-base-agg-rel-scores.csv b/scripts/evaluation/results/chronos-t5-base-agg-rel-scores.csv new file mode 100644 index 0000000..56492d3 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-base-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.7007558507277635 +in-domain,WQL,0.5786300105297922 +zero-shot,MASE,0.8155209321160994 +zero-shot,WQL,0.6424634919486323 diff --git a/scripts/evaluation/results/chronos-t5-base-in-domain.csv b/scripts/evaluation/results/chronos-t5-base-in-domain.csv new file mode 100644 index 0000000..7925271 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-base-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-t5-base,0.39879754957261204,0.07738953262286181 +m4_daily,amazon/chronos-t5-base,3.160575865614404,0.02194256368254537 +m4_hourly,amazon/chronos-t5-base,0.6938747745332102,0.026354948301302205 +m4_monthly,amazon/chronos-t5-base,0.971951848755026,0.10355213196432872 +m4_weekly,amazon/chronos-t5-base,2.0143841267657945,0.03639741235815474 +monash_electricity_hourly,amazon/chronos-t5-base,1.5717251971297332,0.1078882125804548 +monash_electricity_weekly,amazon/chronos-t5-base,1.7862927210886668,0.06255982783148449 +monash_kdd_cup_2018,amazon/chronos-t5-base,0.6335225775496138,0.2684272353843692 +monash_london_smart_meters,amazon/chronos-t5-base,0.8362014889190201,0.4265549499082726 +monash_pedestrian_counts,amazon/chronos-t5-base,0.2817708325561419,0.20810108090665583 +monash_rideshare,amazon/chronos-t5-base,0.8614480533175364,0.1356591190888703 +monash_temperature_rain,amazon/chronos-t5-base,0.9692405156151607,0.660155448791624 +taxi_30min,amazon/chronos-t5-base,0.8186287575356217,0.26236060366367003 +uber_tlc_daily,amazon/chronos-t5-base,0.8338648311528079,0.0970875577681834 +uber_tlc_hourly,amazon/chronos-t5-base,0.6647193438331641,0.15436646659512512 diff --git a/scripts/evaluation/results/chronos-t5-base-zero-shot.csv b/scripts/evaluation/results/chronos-t5-base-zero-shot.csv new file mode 100644 index 0000000..6078311 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-base-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-t5-base,0.7653491494991778,0.08087267701042929 +ETTm,amazon/chronos-t5-base,0.7737006634032871,0.07008650633028274 +dominick,amazon/chronos-t5-base,0.8194044957573132,0.33201307438298133 +ercot,amazon/chronos-t5-base,0.5014399265038706,0.013589435745554596 +exchange_rate,amazon/chronos-t5-base,2.055616906406159,0.011066070028466317 +m4_quarterly,amazon/chronos-t5-base,1.2253036947743137,0.08327936201395683 +m4_yearly,amazon/chronos-t5-base,3.639991540990927,0.13539258375263963 +m5,amazon/chronos-t5-base,0.9391874615167101,0.5867234116216755 +monash_australian_electricity,amazon/chronos-t5-base,1.2944069383163321,0.07070604202031877 +monash_car_parts,amazon/chronos-t5-base,0.9071940271035218,1.077797124337994 +monash_cif_2016,amazon/chronos-t5-base,0.9840747802099565,0.011825556826558836 +monash_covid_deaths,amazon/chronos-t5-base,42.68503365359237,0.042229910495746356 +monash_fred_md,amazon/chronos-t5-base,0.4857773806790164,0.021204829049512715 +monash_hospital,amazon/chronos-t5-base,0.7053005021431749,0.05630687524507516 +monash_m1_monthly,amazon/chronos-t5-base,1.1153039466137842,0.12724419775326076 +monash_m1_quarterly,amazon/chronos-t5-base,1.746093728928804,0.1123583549291933 +monash_m1_yearly,amazon/chronos-t5-base,4.401291522370069,0.18541586641719554 +monash_m3_monthly,amazon/chronos-t5-base,0.8627172231908679,0.09640536232169555 +monash_m3_quarterly,amazon/chronos-t5-base,1.1696030904401578,0.07392876900131434 +monash_m3_yearly,amazon/chronos-t5-base,3.1298600218573775,0.1486674447940158 +monash_nn5_weekly,amazon/chronos-t5-base,0.9334860602210187,0.08972736821598823 +monash_tourism_monthly,amazon/chronos-t5-base,1.7937702435879332,0.10260220444264027 +monash_tourism_quarterly,amazon/chronos-t5-base,1.7791494997972261,0.06852507950474919 +monash_tourism_yearly,amazon/chronos-t5-base,3.8359926053603197,0.20722699382964643 +monash_traffic,amazon/chronos-t5-base,0.8015262383138622,0.25565153982140926 +monash_weather,amazon/chronos-t5-base,0.8159511190589147,0.13802320967454584 +nn5,amazon/chronos-t5-base,0.5927076179914024,0.1630476065585159 diff --git a/scripts/evaluation/results/chronos-t5-large-agg-rel-scores.csv b/scripts/evaluation/results/chronos-t5-large-agg-rel-scores.csv new file mode 100644 index 0000000..94beef1 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-large-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.6944869734691035 +in-domain,WQL,0.5596857927462495 +zero-shot,MASE,0.8213682201405101 +zero-shot,WQL,0.6504834081319559 diff --git a/scripts/evaluation/results/chronos-t5-large-in-domain.csv b/scripts/evaluation/results/chronos-t5-large-in-domain.csv new file mode 100644 index 0000000..63f4b18 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-large-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-t5-large,0.3866310906621673,0.07759528615667297 +m4_daily,amazon/chronos-t5-large,3.134560968849699,0.02158279722410466 +m4_hourly,amazon/chronos-t5-large,0.6975930649233378,0.02086427219957674 +m4_monthly,amazon/chronos-t5-large,0.9585550091429409,0.10091221432814867 +m4_weekly,amazon/chronos-t5-large,2.0191422600104425,0.036912838355537186 +monash_electricity_hourly,amazon/chronos-t5-large,1.4069912853901292,0.09642382339452431 +monash_electricity_weekly,amazon/chronos-t5-large,1.7501880036182798,0.05765306465830232 +monash_kdd_cup_2018,amazon/chronos-t5-large,0.6788042816175427,0.2853553329804835 +monash_london_smart_meters,amazon/chronos-t5-large,0.8290300790418726,0.4235436387853963 +monash_pedestrian_counts,amazon/chronos-t5-large,0.2764118100521592,0.18692234491663473 +monash_rideshare,amazon/chronos-t5-large,0.8758058784466208,0.140260325368757 +monash_temperature_rain,amazon/chronos-t5-large,0.9738403865035117,0.6604571928063249 +taxi_30min,amazon/chronos-t5-large,0.8245662397270109,0.2653520120326771 +uber_tlc_daily,amazon/chronos-t5-large,0.8044165990021739,0.09499035584302248 +uber_tlc_hourly,amazon/chronos-t5-large,0.6700665937164474,0.15190288476653066 diff --git a/scripts/evaluation/results/chronos-t5-large-zero-shot.csv b/scripts/evaluation/results/chronos-t5-large-zero-shot.csv new file mode 100644 index 0000000..020c100 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-large-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-t5-large,0.78160443631164,0.07884375667736107 +ETTm,amazon/chronos-t5-large,0.7325919639389967,0.06656858270921162 +dominick,amazon/chronos-t5-large,0.8200108271155829,0.3311575649734524 +ercot,amazon/chronos-t5-large,0.6050812633742764,0.01822996942395577 +exchange_rate,amazon/chronos-t5-large,2.3439287001928744,0.014841231672174684 +m4_quarterly,amazon/chronos-t5-large,1.2169666607868148,0.08235162400898562 +m4_yearly,amazon/chronos-t5-large,3.5524979814018947,0.1325675848907479 +m5,amazon/chronos-t5-large,0.9422990989146737,0.585615077637479 +monash_australian_electricity,amazon/chronos-t5-large,1.480849838497958,0.07973968848149568 +monash_car_parts,amazon/chronos-t5-large,0.901547374873302,1.0467398096496576 +monash_cif_2016,amazon/chronos-t5-large,0.9906388185665337,0.011966178555329998 +monash_covid_deaths,amazon/chronos-t5-large,44.07354193681227,0.06108999981222163 +monash_fred_md,amazon/chronos-t5-large,0.5184400880318044,0.01675533888399231 +monash_hospital,amazon/chronos-t5-large,0.7055308474630898,0.0552450850258613 +monash_m1_monthly,amazon/chronos-t5-large,1.0888995301234758,0.12729911122909737 +monash_m1_quarterly,amazon/chronos-t5-large,1.7477134564031453,0.10618253695380094 +monash_m1_yearly,amazon/chronos-t5-large,4.250667049416348,0.17128879333643188 +monash_m3_monthly,amazon/chronos-t5-large,0.8559326975903808,0.09572577431396007 +monash_m3_quarterly,amazon/chronos-t5-large,1.1867267751420676,0.07449254281607631 +monash_m3_yearly,amazon/chronos-t5-large,3.0239493021840635,0.14814710375646464 +monash_nn5_weekly,amazon/chronos-t5-large,0.9228721852437364,0.08948447200571868 +monash_tourism_monthly,amazon/chronos-t5-large,1.7304427846580348,0.09983169221760163 +monash_tourism_quarterly,amazon/chronos-t5-large,1.6437184365114073,0.0690906057781915 +monash_tourism_yearly,amazon/chronos-t5-large,3.6268503118928535,0.17732007043832695 +monash_traffic,amazon/chronos-t5-large,0.7985975530866148,0.25313515740581755 +monash_weather,amazon/chronos-t5-large,0.8187388457436171,0.1387756772600068 +nn5,amazon/chronos-t5-large,0.5755260854173723,0.15733693855465292 diff --git a/scripts/evaluation/results/chronos-t5-mini-agg-rel-scores.csv b/scripts/evaluation/results/chronos-t5-mini-agg-rel-scores.csv new file mode 100644 index 0000000..abd06f0 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-mini-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.7249816823595568 +in-domain,WQL,0.5965372489622094 +zero-shot,MASE,0.8411995116926901 +zero-shot,WQL,0.6888397962259065 diff --git a/scripts/evaluation/results/chronos-t5-mini-in-domain.csv b/scripts/evaluation/results/chronos-t5-mini-in-domain.csv new file mode 100644 index 0000000..196d3e9 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-mini-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-t5-mini,0.4446629660227641,0.08114657599239496 +m4_daily,amazon/chronos-t5-mini,3.1533349226194005,0.022000507013584743 +m4_hourly,amazon/chronos-t5-mini,0.7616830292996938,0.024630575107847653 +m4_monthly,amazon/chronos-t5-mini,0.9934074425853089,0.10402168689068064 +m4_weekly,amazon/chronos-t5-mini,2.1407189608104416,0.04138058102434373 +monash_electricity_hourly,amazon/chronos-t5-mini,1.3698378948313894,0.09189698159081384 +monash_electricity_weekly,amazon/chronos-t5-mini,1.9238345295706893,0.07015383787479901 +monash_kdd_cup_2018,amazon/chronos-t5-mini,0.6027861468526459,0.25493489598663444 +monash_london_smart_meters,amazon/chronos-t5-mini,0.8570035850603943,0.4356582737588471 +monash_pedestrian_counts,amazon/chronos-t5-mini,0.30374539593979855,0.2374083216051065 +monash_rideshare,amazon/chronos-t5-mini,0.8157349455509949,0.12963515638823117 +monash_temperature_rain,amazon/chronos-t5-mini,1.010161905102516,0.6919171702485583 +taxi_30min,amazon/chronos-t5-mini,0.9318379552979712,0.31229508015999674 +uber_tlc_daily,amazon/chronos-t5-mini,0.9213437323817685,0.10475291429149586 +uber_tlc_hourly,amazon/chronos-t5-mini,0.6812621470377416,0.15982192635434303 diff --git a/scripts/evaluation/results/chronos-t5-mini-zero-shot.csv b/scripts/evaluation/results/chronos-t5-mini-zero-shot.csv new file mode 100644 index 0000000..bdc383f --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-mini-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-t5-mini,0.789678971785092,0.08068969536800001 +ETTm,amazon/chronos-t5-mini,0.7521219674190734,0.06791782942706617 +dominick,amazon/chronos-t5-mini,0.8207116999488602,0.34004499734299765 +ercot,amazon/chronos-t5-mini,0.5462749489237783,0.015035001020343136 +exchange_rate,amazon/chronos-t5-mini,2.1326718165798657,0.015073846769933199 +m4_quarterly,amazon/chronos-t5-mini,1.271761811062081,0.08575942238385105 +m4_yearly,amazon/chronos-t5-mini,3.7340853642679126,0.13938781939783162 +m5,amazon/chronos-t5-mini,0.9421556321929742,0.5961689098871504 +monash_australian_electricity,amazon/chronos-t5-mini,1.046297291920238,0.05424453772723559 +monash_car_parts,amazon/chronos-t5-mini,0.8913523483805221,1.0174797526818506 +monash_cif_2016,amazon/chronos-t5-mini,1.0674111822055679,0.016800831829085764 +monash_covid_deaths,amazon/chronos-t5-mini,43.69727825485175,0.08788117644141617 +monash_fred_md,amazon/chronos-t5-mini,0.46227452519609524,0.01871860604459728 +monash_hospital,amazon/chronos-t5-mini,0.7112593459108532,0.05831005112661489 +monash_m1_monthly,amazon/chronos-t5-mini,1.1756557848450433,0.14192178371159841 +monash_m1_quarterly,amazon/chronos-t5-mini,1.795009199698074,0.11760148522768847 +monash_m1_yearly,amazon/chronos-t5-mini,5.078889706085604,0.1882823108615221 +monash_m3_monthly,amazon/chronos-t5-mini,0.900404391663476,0.09935931092075681 +monash_m3_quarterly,amazon/chronos-t5-mini,1.2604342624229292,0.07807204797138119 +monash_m3_yearly,amazon/chronos-t5-mini,3.4395976709464255,0.16085249526114198 +monash_nn5_weekly,amazon/chronos-t5-mini,0.9459117943913629,0.09042762527674755 +monash_tourism_monthly,amazon/chronos-t5-mini,1.920865545569713,0.10791754513335952 +monash_tourism_quarterly,amazon/chronos-t5-mini,1.7957439111869486,0.07514539225156464 +monash_tourism_yearly,amazon/chronos-t5-mini,4.134958090482728,0.2202036957350168 +monash_traffic,amazon/chronos-t5-mini,0.8546792774237857,0.2668831661775284 +monash_weather,amazon/chronos-t5-mini,0.8607748244159247,0.15031866806333247 +nn5,amazon/chronos-t5-mini,0.6497211196906223,0.17352254058241523 diff --git a/scripts/evaluation/results/chronos-t5-small-agg-rel-scores.csv b/scripts/evaluation/results/chronos-t5-small-agg-rel-scores.csv new file mode 100644 index 0000000..43947fb --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-small-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.7296140269944743 +in-domain,WQL,0.6086958548874499 +zero-shot,MASE,0.8303721909132112 +zero-shot,WQL,0.6649587072099045 diff --git a/scripts/evaluation/results/chronos-t5-small-in-domain.csv b/scripts/evaluation/results/chronos-t5-small-in-domain.csv new file mode 100644 index 0000000..206ec82 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-small-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-t5-small,0.4115559557750193,0.08085148902238105 +m4_daily,amazon/chronos-t5-small,3.1384304946608896,0.02129901023419818 +m4_hourly,amazon/chronos-t5-small,0.7300874075370588,0.024686127211237932 +m4_monthly,amazon/chronos-t5-small,0.9797264456494642,0.10297069145186107 +m4_weekly,amazon/chronos-t5-small,2.0802214537692607,0.03959222330783002 +monash_electricity_hourly,amazon/chronos-t5-small,1.530308399040219,0.10765947926209926 +monash_electricity_weekly,amazon/chronos-t5-small,1.9249616494404531,0.07593976499899265 +monash_kdd_cup_2018,amazon/chronos-t5-small,0.6911172359201715,0.2863722811236367 +monash_london_smart_meters,amazon/chronos-t5-small,0.8405756252443325,0.4300875548402115 +monash_pedestrian_counts,amazon/chronos-t5-small,0.30836963006151696,0.2442543970311678 +monash_rideshare,amazon/chronos-t5-small,0.8436277753840817,0.1363421932158997 +monash_temperature_rain,amazon/chronos-t5-small,1.0176003932416664,0.6847726381172435 +taxi_30min,amazon/chronos-t5-small,0.976277213614167,0.32770172988517626 +uber_tlc_daily,amazon/chronos-t5-small,0.8694727058784919,0.0994889223610958 +uber_tlc_hourly,amazon/chronos-t5-small,0.6738672444888639,0.1573990617753753 diff --git a/scripts/evaluation/results/chronos-t5-small-zero-shot.csv b/scripts/evaluation/results/chronos-t5-small-zero-shot.csv new file mode 100644 index 0000000..f3a970a --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-small-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-t5-small,0.8516754221042285,0.08667817580712385 +ETTm,amazon/chronos-t5-small,0.6825432730635727,0.06076472147001207 +dominick,amazon/chronos-t5-small,0.8108766032127683,0.3368104617474581 +ercot,amazon/chronos-t5-small,0.564879593858422,0.015547628920969682 +exchange_rate,amazon/chronos-t5-small,1.8143459139100264,0.014492477372711763 +m4_quarterly,amazon/chronos-t5-small,1.2415331521819728,0.08383826063189778 +m4_yearly,amazon/chronos-t5-small,3.738749650935195,0.1384514201649314 +m5,amazon/chronos-t5-small,0.9368713240675598,0.5896066252181699 +monash_australian_electricity,amazon/chronos-t5-small,1.2241146217392032,0.06951399165882449 +monash_car_parts,amazon/chronos-t5-small,0.8917508090523597,1.0314986717260015 +monash_cif_2016,amazon/chronos-t5-small,1.0187937383419037,0.014633240218233142 +monash_covid_deaths,amazon/chronos-t5-small,42.298997211368935,0.06339512778191682 +monash_fred_md,amazon/chronos-t5-small,0.4742159923922472,0.01486734736993978 +monash_hospital,amazon/chronos-t5-small,0.709814741753487,0.05704674270057172 +monash_m1_monthly,amazon/chronos-t5-small,1.1723041163998773,0.13799049510465802 +monash_m1_quarterly,amazon/chronos-t5-small,1.8077827825737092,0.11323432989795904 +monash_m1_yearly,amazon/chronos-t5-small,4.739967673537301,0.1730738338876877 +monash_m3_monthly,amazon/chronos-t5-small,0.8856577322724943,0.09985251429658573 +monash_m3_quarterly,amazon/chronos-t5-small,1.278907982396775,0.08094041554590593 +monash_m3_yearly,amazon/chronos-t5-small,3.382470310192457,0.157363937435307 +monash_nn5_weekly,amazon/chronos-t5-small,0.9277396908126303,0.08963913763368506 +monash_tourism_monthly,amazon/chronos-t5-small,1.9251180766131313,0.10943962474253494 +monash_tourism_quarterly,amazon/chronos-t5-small,1.7623454951333655,0.06862432764377493 +monash_tourism_yearly,amazon/chronos-t5-small,3.987690476709746,0.19960492460202509 +monash_traffic,amazon/chronos-t5-small,0.8204223927835267,0.2571189517024486 +monash_weather,amazon/chronos-t5-small,0.8550633590487968,0.1479701971025123 +nn5,amazon/chronos-t5-small,0.6130789183153671,0.16771392719859998 diff --git a/scripts/evaluation/results/chronos-t5-tiny-agg-rel-scores.csv b/scripts/evaluation/results/chronos-t5-tiny-agg-rel-scores.csv new file mode 100644 index 0000000..440cc39 --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-tiny-agg-rel-scores.csv @@ -0,0 +1,5 @@ +benchmark,metric,value +in-domain,MASE,0.7649019745781727 +in-domain,WQL,0.6288613368129368 +zero-shot,MASE,0.8704764463925718 +zero-shot,WQL,0.7108912052035352 diff --git a/scripts/evaluation/results/chronos-t5-tiny-in-domain.csv b/scripts/evaluation/results/chronos-t5-tiny-in-domain.csv new file mode 100644 index 0000000..e30632f --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-tiny-in-domain.csv @@ -0,0 +1,16 @@ +dataset,model,MASE,WQL +electricity_15min,amazon/chronos-t5-tiny,0.5091784254243783,0.08236334376190152 +m4_daily,amazon/chronos-t5-tiny,3.203164895930929,0.022152192084951595 +m4_hourly,amazon/chronos-t5-tiny,0.8171321441164723,0.027490760558343874 +m4_monthly,amazon/chronos-t5-tiny,1.005839207921131,0.10388015368939435 +m4_weekly,amazon/chronos-t5-tiny,2.2148332313370735,0.043429655561156084 +monash_electricity_hourly,amazon/chronos-t5-tiny,1.6190021089002615,0.10967453530956882 +monash_electricity_weekly,amazon/chronos-t5-tiny,2.0774597917676734,0.08159998975612164 +monash_kdd_cup_2018,amazon/chronos-t5-tiny,0.6730886827096076,0.2616610603634618 +monash_london_smart_meters,amazon/chronos-t5-tiny,0.8830447519225436,0.4499607073491794 +monash_pedestrian_counts,amazon/chronos-t5-tiny,0.3042105240185045,0.23387631681117071 +monash_rideshare,amazon/chronos-t5-tiny,0.8431350112476247,0.1378817076926394 +monash_temperature_rain,amazon/chronos-t5-tiny,0.9887398447367799,0.6957797286648015 +taxi_30min,amazon/chronos-t5-tiny,1.035544060665179,0.3450476958104713 +uber_tlc_daily,amazon/chronos-t5-tiny,0.93025919000775,0.1105323649942084 +uber_tlc_hourly,amazon/chronos-t5-tiny,0.697558054147913,0.16320255844336232 diff --git a/scripts/evaluation/results/chronos-t5-tiny-zero-shot.csv b/scripts/evaluation/results/chronos-t5-tiny-zero-shot.csv new file mode 100644 index 0000000..83d377c --- /dev/null +++ b/scripts/evaluation/results/chronos-t5-tiny-zero-shot.csv @@ -0,0 +1,28 @@ +dataset,model,MASE,WQL +ETTh,amazon/chronos-t5-tiny,0.8184074113571701,0.08578203438707048 +ETTm,amazon/chronos-t5-tiny,0.9103621000781905,0.07975361086322658 +dominick,amazon/chronos-t5-tiny,0.8538295532466194,0.3597090770361857 +ercot,amazon/chronos-t5-tiny,0.7273437589773705,0.020843170924006626 +exchange_rate,amazon/chronos-t5-tiny,1.6621128608546154,0.01085145980896454 +m4_quarterly,amazon/chronos-t5-tiny,1.2696259955861924,0.0861404188925996 +m4_yearly,amazon/chronos-t5-tiny,3.5293881164900527,0.13281575565500411 +m5,amazon/chronos-t5-tiny,0.9394059505709506,0.5981531758388589 +monash_australian_electricity,amazon/chronos-t5-tiny,1.4558820561269024,0.07673567331332948 +monash_car_parts,amazon/chronos-t5-tiny,0.9058206654011024,1.0236307963149358 +monash_cif_2016,amazon/chronos-t5-tiny,1.09349564130852,0.014066593076202984 +monash_covid_deaths,amazon/chronos-t5-tiny,46.53079664940016,0.09201919385053775 +monash_fred_md,amazon/chronos-t5-tiny,0.48008374212956456,0.03219550761153211 +monash_hospital,amazon/chronos-t5-tiny,0.7062562198194838,0.05790409320432609 +monash_m1_monthly,amazon/chronos-t5-tiny,1.214892145549996,0.14723095246308077 +monash_m1_quarterly,amazon/chronos-t5-tiny,1.8968576926613199,0.11026972972622998 +monash_m1_yearly,amazon/chronos-t5-tiny,4.829453202075546,0.17286063726000958 +monash_m3_monthly,amazon/chronos-t5-tiny,0.9095746605884618,0.10117875324490073 +monash_m3_quarterly,amazon/chronos-t5-tiny,1.3234957548639883,0.08209032993637215 +monash_m3_yearly,amazon/chronos-t5-tiny,3.1489371074890093,0.1492445630072877 +monash_nn5_weekly,amazon/chronos-t5-tiny,0.9637480731663901,0.09205994784693056 +monash_tourism_monthly,amazon/chronos-t5-tiny,2.151677532807024,0.11356761694754255 +monash_tourism_quarterly,amazon/chronos-t5-tiny,1.9116538900950555,0.07191734222366106 +monash_tourism_yearly,amazon/chronos-t5-tiny,3.820615532600914,0.19709256337364625 +monash_traffic,amazon/chronos-t5-tiny,0.878709088458116,0.2632101606272236 +monash_weather,amazon/chronos-t5-tiny,0.8504899606521996,0.14787595319625085 +nn5,amazon/chronos-t5-tiny,0.7021735456568664,0.19071330483289695 diff --git a/src/chronos/__init__.py b/src/chronos/__init__.py index 4474e8e..3088d7e 100644 --- a/src/chronos/__init__.py +++ b/src/chronos/__init__.py @@ -1,6 +1,7 @@ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 +from .base import BaseChronosPipeline, ForecastType from .chronos import ( ChronosConfig, ChronosModel, @@ -8,11 +9,16 @@ from .chronos import ( ChronosTokenizer, MeanScaleUniformBins, ) +from .chronos_bolt import ChronosBoltConfig, ChronosBoltPipeline __all__ = [ + "BaseChronosPipeline", + "ForecastType", "ChronosConfig", "ChronosModel", "ChronosPipeline", "ChronosTokenizer", "MeanScaleUniformBins", + "ChronosBoltConfig", + "ChronosBoltPipeline", ] diff --git a/src/chronos/base.py b/src/chronos/base.py new file mode 100644 index 0000000..3dc1775 --- /dev/null +++ b/src/chronos/base.py @@ -0,0 +1,162 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# Authors: Caner Turkmen , Abdul Fatir Ansari , Lorenzo Stella +# Original source: +# https://github.com/autogluon/autogluon/blob/f57beb26cb769c6e0d484a6af2b89eab8aee73a8/timeseries/src/autogluon/timeseries/models/chronos/pipeline/base.py + +from enum import Enum +from pathlib import Path +from typing import TYPE_CHECKING, Dict, List, Optional, Tuple, Union + +import torch + +if TYPE_CHECKING: + from transformers import PreTrainedModel + +from .utils import left_pad_and_stack_1D + + +class ForecastType(Enum): + SAMPLES = "samples" + QUANTILES = "quantiles" + + +class PipelineRegistry(type): + REGISTRY: Dict[str, "PipelineRegistry"] = {} + + def __new__(cls, name, bases, attrs): + """See, https://github.com/faif/python-patterns.""" + new_cls = type.__new__(cls, name, bases, attrs) + if name is not None: + cls.REGISTRY[name] = new_cls + + return new_cls + + +class BaseChronosPipeline(metaclass=PipelineRegistry): + forecast_type: ForecastType + dtypes = {"bfloat16": torch.bfloat16, "float32": torch.float32} + + def __init__(self, inner_model: "PreTrainedModel"): + """ + Parameters + ---------- + inner_model : PreTrainedModel + A hugging-face transformers PreTrainedModel, e.g., T5ForConditionalGeneration + """ + # for easy access to the inner HF-style model + self.inner_model = inner_model + + def _prepare_and_validate_context( + self, context: Union[torch.Tensor, List[torch.Tensor]] + ): + if isinstance(context, list): + context = left_pad_and_stack_1D(context) + assert isinstance(context, torch.Tensor) + if context.ndim == 1: + context = context.unsqueeze(0) + assert context.ndim == 2 + + return context + + def predict( + self, + context: Union[torch.Tensor, List[torch.Tensor]], + prediction_length: Optional[int] = None, + **kwargs, + ): + """ + Get forecasts for the given time series. + + Parameters + ---------- + context + Input series. This is either a 1D tensor, or a list + of 1D tensors, or a 2D tensor whose first dimension + is batch. In the latter case, use left-padding with + ``torch.nan`` to align series of different lengths. + prediction_length + Time steps to predict. Defaults to a model-dependent + value if not given. + + Returns + ------- + forecasts + Tensor containing forecasts. The layout and meaning + of the forecasts values depends on ``self.forecast_type``. + """ + raise NotImplementedError() + + def predict_quantiles( + self, + context: Union[torch.Tensor, List[torch.Tensor]], + prediction_length: Optional[int] = None, + quantile_levels: List[float] = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9], + **kwargs, + ) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Get quantile and mean forecasts for given time series. + + Parameters + ---------- + context : Union[torch.Tensor, List[torch.Tensor]] + Input series. This is either a 1D tensor, or a list + of 1D tensors, or a 2D tensor whose first dimension + is batch. In the latter case, use left-padding with + ``torch.nan`` to align series of different lengths. + prediction_length : Optional[int], optional + Time steps to predict. Defaults to a model-dependent + value if not given. + quantile_levels : List[float], optional + Quantile levels to compute, by default [0.1, 0.2, ..., 0.9] + + Returns + ------- + quantiles + Tensor containing quantile forecasts. Shape + (batch_size, prediction_length, num_quantiles) + mean + Tensor containing mean (point) forecasts. Shape + (batch_size, prediction_length) + """ + raise NotImplementedError() + + @classmethod + def from_pretrained( + cls, + pretrained_model_name_or_path: Union[str, Path], + *model_args, + **kwargs, + ): + """ + Load the model, either from a local path or from the HuggingFace Hub. + Supports the same arguments as ``AutoConfig`` and ``AutoModel`` + from ``transformers``. + """ + from transformers import AutoConfig + + torch_dtype = kwargs.get("torch_dtype", "auto") + if torch_dtype != "auto" and isinstance(torch_dtype, str): + kwargs["torch_dtype"] = cls.dtypes[torch_dtype] + + config = AutoConfig.from_pretrained(pretrained_model_name_or_path, **kwargs) + is_valid_config = hasattr(config, "chronos_pipeline_class") or hasattr( + config, "chronos_config" + ) + + if not is_valid_config: + raise ValueError("Not a Chronos config file") + + pipeline_class_name = getattr( + config, "chronos_pipeline_class", "ChronosPipeline" + ) + class_ = PipelineRegistry.REGISTRY.get(pipeline_class_name) + if class_ is None: + raise ValueError( + f"Trying to load unknown pipeline class: {pipeline_class_name}" + ) + + return class_.from_pretrained( # type: ignore[attr-defined] + pretrained_model_name_or_path, *model_args, **kwargs + ) diff --git a/src/chronos/chronos.py b/src/chronos/chronos.py index 000dc67..ef226f6 100644 --- a/src/chronos/chronos.py +++ b/src/chronos/chronos.py @@ -1,7 +1,9 @@ # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -import warnings +# Authors: Abdul Fatir Ansari , Lorenzo Stella , Caner Turkmen + +import logging from dataclasses import dataclass from typing import Any, Dict, List, Literal, Optional, Tuple, Union @@ -16,6 +18,10 @@ from transformers import ( ) import chronos +from chronos.base import BaseChronosPipeline, ForecastType +from chronos.utils import left_pad_and_stack_1D + +logger = logging.getLogger(__file__) @dataclass @@ -364,21 +370,7 @@ class ChronosModel(nn.Module): return preds.reshape(input_ids.size(0), num_samples, -1) -def left_pad_and_stack_1D(tensors: List[torch.Tensor]) -> torch.Tensor: - max_len = max(len(c) for c in tensors) - padded = [] - for c in tensors: - assert isinstance(c, torch.Tensor) - assert c.ndim == 1 - padding = torch.full( - size=(max_len - len(c),), fill_value=torch.nan, device=c.device - ) - padded.append(torch.concat((padding, c), dim=-1)) - return torch.stack(padded).to(tensors[0]) - - -@dataclass -class ChronosPipeline: +class ChronosPipeline(BaseChronosPipeline): """ A ``ChronosPipeline`` uses the given tokenizer and model to forecast input time series. @@ -396,6 +388,12 @@ class ChronosPipeline: tokenizer: ChronosTokenizer model: ChronosModel + forecast_type: ForecastType = ForecastType.SAMPLES + + def __init__(self, tokenizer, model): + super().__init__(inner_model=model.model) + self.tokenizer = tokenizer + self.model = model def _prepare_and_validate_context( self, context: Union[torch.Tensor, List[torch.Tensor]] @@ -445,7 +443,7 @@ class ChronosPipeline: ).cpu() return embeddings, tokenizer_state - def predict( + def predict( # type: ignore[override] self, context: Union[torch.Tensor, List[torch.Tensor]], prediction_length: Optional[int] = None, @@ -453,21 +451,16 @@ class ChronosPipeline: temperature: Optional[float] = None, top_k: Optional[int] = None, top_p: Optional[float] = None, - limit_prediction_length: bool = True, + limit_prediction_length: bool = False, ) -> torch.Tensor: """ Get forecasts for the given time series. - Parameters - ---------- - context - Input series. This is either a 1D tensor, or a list - of 1D tensors, or a 2D tensor whose first dimension - is batch. In the latter case, use left-padding with - ``torch.nan`` to align series of different lengths. - prediction_length - Time steps to predict. Defaults to what specified - in ``self.model.config``. + Refer to the base method (``BaseChronosPipeline.predict``) + for details on shared parameters. + + Additional parameters + --------------------- num_samples Number of sample paths to predict. Defaults to what specified in ``self.model.config``. @@ -482,7 +475,7 @@ class ChronosPipeline: Defaults to what specified in ``self.model.config``. limit_prediction_length Force prediction length smaller or equal than the - built-in prediction length from the model. True by + built-in prediction length from the model. False by default. When true, fail loudly if longer predictions are requested, otherwise longer predictions are allowed. @@ -505,7 +498,7 @@ class ChronosPipeline: if limit_prediction_length: msg += "You can turn off this check by setting `limit_prediction_length=False`." raise ValueError(msg) - warnings.warn(msg) + logger.warning(msg) input_dtype = context_tensor.dtype input_device = context_tensor.device @@ -542,6 +535,30 @@ class ChronosPipeline: return torch.cat(predictions, dim=-1).to(dtype=input_dtype, device=input_device) + def predict_quantiles( + self, + context: Union[torch.Tensor, List[torch.Tensor]], + prediction_length: Optional[int] = None, + quantile_levels: List[float] = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9], + **predict_kwargs, + ) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Refer to the base method (``BaseChronosPipeline.predict_quantiles``). + """ + prediction_samples = ( + self.predict(context, prediction_length=prediction_length, **predict_kwargs) + .detach() + .swapaxes(1, 2) + ) + mean = prediction_samples.mean(dim=-1) + quantiles = torch.quantile( + prediction_samples, + q=torch.tensor(quantile_levels, dtype=prediction_samples.dtype), + dim=-1, + ).permute(1, 2, 0) + + return quantiles, mean + @classmethod def from_pretrained(cls, *args, **kwargs): """ diff --git a/src/chronos/chronos_bolt.py b/src/chronos/chronos_bolt.py new file mode 100644 index 0000000..e3182f9 --- /dev/null +++ b/src/chronos/chronos_bolt.py @@ -0,0 +1,587 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +# Authors: Abdul Fatir Ansari , Caner Turkmen , Lorenzo Stella +# Original source: +# https://github.com/autogluon/autogluon/blob/f57beb26cb769c6e0d484a6af2b89eab8aee73a8/timeseries/src/autogluon/timeseries/models/chronos/pipeline/chronos_bolt.py + +import copy +import logging +import warnings +from dataclasses import dataclass +from typing import List, Optional, Tuple, Union + +import torch +import torch.nn as nn +from transformers import AutoConfig +from transformers.models.t5.modeling_t5 import ( + ACT2FN, + T5Config, + T5LayerNorm, + T5PreTrainedModel, + T5Stack, +) +from transformers.utils import ModelOutput + +from .base import BaseChronosPipeline, ForecastType + + +logger = logging.getLogger(__file__) + + +@dataclass +class ChronosBoltConfig: + context_length: int + prediction_length: int + input_patch_size: int + input_patch_stride: int + quantiles: List[float] + use_reg_token: bool = False + + +@dataclass +class ChronosBoltOutput(ModelOutput): + loss: Optional[torch.Tensor] = None + quantile_preds: Optional[torch.Tensor] = None + attentions: Optional[torch.Tensor] = None + cross_attentions: Optional[torch.Tensor] = None + + +class Patch(nn.Module): + def __init__(self, patch_size: int, patch_stride: int) -> None: + super().__init__() + self.patch_size = patch_size + self.patch_stride = patch_stride + + def forward(self, x: torch.Tensor) -> torch.Tensor: + length = x.shape[-1] + + if length % self.patch_size != 0: + padding_size = ( + *x.shape[:-1], + self.patch_size - (length % self.patch_size), + ) + padding = torch.full( + size=padding_size, fill_value=torch.nan, dtype=x.dtype, device=x.device + ) + x = torch.concat((padding, x), dim=-1) + + x = x.unfold(dimension=-1, size=self.patch_size, step=self.patch_stride) + return x + + +class InstanceNorm(nn.Module): + """ + See, also, RevIN. Apply standardization along the last dimension. + """ + + def __init__(self, eps: float = 1e-5) -> None: + super().__init__() + self.eps = eps + + def forward( + self, + x: torch.Tensor, + loc_scale: Optional[Tuple[torch.Tensor, torch.Tensor]] = None, + ) -> Tuple[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]: + if loc_scale is None: + loc = torch.nan_to_num(torch.nanmean(x, dim=-1, keepdim=True), nan=0.0) + scale = torch.nan_to_num( + torch.nanmean((x - loc).square(), dim=-1, keepdim=True).sqrt(), nan=1.0 + ) + scale = torch.where(scale == 0, torch.abs(loc) + self.eps, scale) + else: + loc, scale = loc_scale + + return (x - loc) / scale, (loc, scale) + + def inverse( + self, x: torch.Tensor, loc_scale: Tuple[torch.Tensor, torch.Tensor] + ) -> torch.Tensor: + loc, scale = loc_scale + return x * scale + loc + + +class ResidualBlock(nn.Module): + def __init__( + self, + in_dim: int, + h_dim: int, + out_dim: int, + act_fn_name: str, + dropout_p: float = 0.0, + use_layer_norm: bool = False, + ) -> None: + super().__init__() + + self.dropout = nn.Dropout(dropout_p) + self.hidden_layer = nn.Linear(in_dim, h_dim) + self.act = ACT2FN[act_fn_name] + self.output_layer = nn.Linear(h_dim, out_dim) + self.residual_layer = nn.Linear(in_dim, out_dim) + + self.use_layer_norm = use_layer_norm + if use_layer_norm: + self.layer_norm = T5LayerNorm(out_dim) + + def forward(self, x: torch.Tensor): + hid = self.act(self.hidden_layer(x)) + out = self.dropout(self.output_layer(hid)) + res = self.residual_layer(x) + + out = out + res + + if self.use_layer_norm: + return self.layer_norm(out) + return out + + +class ChronosBoltModelForForecasting(T5PreTrainedModel): + _keys_to_ignore_on_load_missing = [ + r"input_patch_embedding\.", + r"output_patch_embedding\.", + ] + _keys_to_ignore_on_load_unexpected = [r"lm_head.weight"] + _tied_weights_keys = ["encoder.embed_tokens.weight", "decoder.embed_tokens.weight"] + + def __init__(self, config: T5Config): + assert hasattr(config, "chronos_config"), "Not a Chronos config file" + + super().__init__(config) + self.model_dim = config.d_model + + self.chronos_config = ChronosBoltConfig(**config.chronos_config) + + # Only decoder_start_id (and optionally REG token) + if self.chronos_config.use_reg_token: + config.reg_token_id = 1 + + config.vocab_size = 2 if self.chronos_config.use_reg_token else 1 + self.shared = nn.Embedding(config.vocab_size, config.d_model) + + # Input patch embedding layer + self.input_patch_embedding = ResidualBlock( + in_dim=self.chronos_config.input_patch_size * 2, + h_dim=config.d_ff, + out_dim=config.d_model, + act_fn_name=config.dense_act_fn, + dropout_p=config.dropout_rate, + ) + + # patching layer + self.patch = Patch( + patch_size=self.chronos_config.input_patch_size, + patch_stride=self.chronos_config.input_patch_stride, + ) + + # instance normalization, also referred to as "scaling" in Chronos and GluonTS + self.instance_norm = InstanceNorm() + + encoder_config = copy.deepcopy(config) + encoder_config.is_decoder = False + encoder_config.use_cache = False + encoder_config.is_encoder_decoder = False + self.encoder = T5Stack(encoder_config, self.shared) + + self._init_decoder(config) + + self.num_quantiles = len(self.chronos_config.quantiles) + quantiles = torch.tensor(self.chronos_config.quantiles, dtype=self.dtype) + self.register_buffer("quantiles", quantiles, persistent=False) + + self.output_patch_embedding = ResidualBlock( + in_dim=config.d_model, + h_dim=config.d_ff, + out_dim=self.num_quantiles * self.chronos_config.prediction_length, + act_fn_name=config.dense_act_fn, + dropout_p=config.dropout_rate, + ) + + # Initialize weights and apply final processing + self.post_init() + + # Model parallel + self.model_parallel = False + self.device_map = None + + def _init_weights(self, module): + super()._init_weights(module) + """Initialize the weights""" + factor = self.config.initializer_factor + if isinstance(module, (self.__class__)): + module.shared.weight.data.normal_(mean=0.0, std=factor * 1.0) + elif isinstance(module, ResidualBlock): + module.hidden_layer.weight.data.normal_( + mean=0.0, + std=factor * ((self.chronos_config.input_patch_size * 2) ** -0.5), + ) + if ( + hasattr(module.hidden_layer, "bias") + and module.hidden_layer.bias is not None + ): + module.hidden_layer.bias.data.zero_() + + module.residual_layer.weight.data.normal_( + mean=0.0, + std=factor * ((self.chronos_config.input_patch_size * 2) ** -0.5), + ) + if ( + hasattr(module.residual_layer, "bias") + and module.residual_layer.bias is not None + ): + module.residual_layer.bias.data.zero_() + + module.output_layer.weight.data.normal_( + mean=0.0, std=factor * ((self.config.d_ff) ** -0.5) + ) + if ( + hasattr(module.output_layer, "bias") + and module.output_layer.bias is not None + ): + module.output_layer.bias.data.zero_() + + def forward( + self, + context: torch.Tensor, + mask: Optional[torch.Tensor] = None, + target: Optional[torch.Tensor] = None, + target_mask: Optional[torch.Tensor] = None, + ) -> ChronosBoltOutput: + mask = ( + mask.to(context.dtype) + if mask is not None + else torch.isnan(context).logical_not().to(context.dtype) + ) + + batch_size, _ = context.shape + if context.shape[-1] > self.chronos_config.context_length: + context = context[..., -self.chronos_config.context_length :] + mask = mask[..., -self.chronos_config.context_length :] + + # scaling + context, loc_scale = self.instance_norm(context) + + # the scaling op above is done in 32-bit precision, + # then the context is moved to model's dtype + context = context.to(self.dtype) + mask = mask.to(self.dtype) + + # patching + patched_context = self.patch(context) + patched_mask = torch.nan_to_num(self.patch(mask), nan=0.0) + patched_context = torch.where(patched_mask > 0.0, patched_context, 0.0) + # concat context and mask along patch dim + patched_context = torch.cat([patched_context, patched_mask], dim=-1) + + # attention_mask = 1 if at least one item in the patch is observed + attention_mask = ( + patched_mask.sum(dim=-1) > 0 + ) # (batch_size, patched_seq_length) + + input_embeds = self.input_patch_embedding(patched_context) + + if self.chronos_config.use_reg_token: + # Append [REG] + reg_input_ids = torch.full( + (batch_size, 1), + self.config.reg_token_id, + device=input_embeds.device, + ) + reg_embeds = self.shared(reg_input_ids) + input_embeds = torch.cat([input_embeds, reg_embeds], dim=-2) + attention_mask = torch.cat( + [ + attention_mask.to(self.dtype), + torch.ones_like(reg_input_ids).to(self.dtype), + ], + dim=-1, + ) + + encoder_outputs = self.encoder( + attention_mask=attention_mask, + inputs_embeds=input_embeds, + ) + hidden_states = encoder_outputs[0] + + sequence_output = self.decode(input_embeds, attention_mask, hidden_states) + + quantile_preds_shape = ( + batch_size, + self.num_quantiles, + self.chronos_config.prediction_length, + ) + quantile_preds = self.output_patch_embedding(sequence_output).view( + *quantile_preds_shape + ) + + loss = None + if target is not None: + # normalize target + target, _ = self.instance_norm(target, loc_scale) + target = target.unsqueeze(1) # type: ignore + assert self.chronos_config.prediction_length >= target.shape[-1] + + target = target.to(quantile_preds.device) + target_mask = ( + target_mask.unsqueeze(1).to(quantile_preds.device) + if target_mask is not None + else ~torch.isnan(target) + ) + target[~target_mask] = 0.0 + + # pad target and target_mask if they are shorter than model's prediction_length + if self.chronos_config.prediction_length > target.shape[-1]: + padding_shape = ( + *target.shape[:-1], + self.chronos_config.prediction_length - target.shape[-1], + ) + target = torch.cat( + [target, torch.zeros(padding_shape).to(target)], dim=-1 + ) + target_mask = torch.cat( + [target_mask, torch.zeros(padding_shape).to(target_mask)], dim=-1 + ) + + loss = ( + 2 + * torch.abs( + (target - quantile_preds) + * ( + (target <= quantile_preds).float() + - self.quantiles.view(1, self.num_quantiles, 1) + ) + ) + * target_mask.float() + ) + loss = loss.mean(dim=-2) # Mean over prediction horizon + loss = loss.sum(dim=-1) # Sum over quantile levels + loss = loss.mean() # Mean over batch + + # Unscale predictions + quantile_preds = self.instance_norm.inverse( + quantile_preds.view(batch_size, -1), + loc_scale, + ).view(*quantile_preds_shape) + + return ChronosBoltOutput( + loss=loss, + quantile_preds=quantile_preds, + ) + + def _init_decoder(self, config): + decoder_config = copy.deepcopy(config) + decoder_config.is_decoder = True + decoder_config.is_encoder_decoder = False + decoder_config.num_layers = config.num_decoder_layers + self.decoder = T5Stack(decoder_config, self.shared) + + def decode( + self, + input_embeds, + attention_mask, + hidden_states, + output_attentions=False, + ): + """ + Parameters + ---------- + input_embeds: torch.Tensor + Patched and embedded inputs. Shape (batch_size, patched_context_length, d_model) + attention_mask: torch.Tensor + Attention mask for the patched context. Shape (batch_size, patched_context_length), type: torch.int64 + hidden_states: torch.Tensor + Hidden states returned by the encoder. Shape (batch_size, patched_context_length, d_model) + + Returns + ------- + last_hidden_state + Last hidden state returned by the decoder, of shape (batch_size, 1, d_model) + """ + batch_size = input_embeds.shape[0] + decoder_input_ids = torch.full( + (batch_size, 1), + self.config.decoder_start_token_id, + device=input_embeds.device, + ) + decoder_outputs = self.decoder( + input_ids=decoder_input_ids, + encoder_hidden_states=hidden_states, + encoder_attention_mask=attention_mask, + output_attentions=output_attentions, + return_dict=True, + ) + + return decoder_outputs.last_hidden_state # sequence_outputs, b x 1 x d_model + + +class ChronosBoltPipeline(BaseChronosPipeline): + forecast_type: ForecastType = ForecastType.QUANTILES + default_context_length: int = 2048 + + def __init__(self, model: ChronosBoltModelForForecasting): + super().__init__(inner_model=model) + self.model = model + + @property + def quantiles(self) -> List[float]: + return self.model.config.chronos_config["quantiles"] + + def predict( # type: ignore[override] + self, + context: Union[torch.Tensor, List[torch.Tensor]], + prediction_length: Optional[int] = None, + limit_prediction_length: bool = False, + ) -> torch.Tensor: + """ + Get forecasts for the given time series. + + Refer to the base method (``BaseChronosPipeline.predict``) + for details on shared parameters. + Additional parameters + --------------------- + limit_prediction_length + Force prediction length smaller or equal than the + built-in prediction length from the model. False by + default. When true, fail loudly if longer predictions + are requested, otherwise longer predictions are allowed. + + Returns + ------- + torch.Tensor + Forecasts of shape (batch_size, num_quantiles, prediction_length) + where num_quantiles is the number of quantiles the model has been + trained to output. For official Chronos-Bolt models, the value of + num_quantiles is 9 for [0.1, 0.2, ..., 0.9]-quantiles. + + Raises + ------ + ValueError + When limit_prediction_length is True and the prediction_length is + greater than model's trainig prediction_length. + """ + context_tensor = self._prepare_and_validate_context(context=context) + + model_context_length = self.model.config.chronos_config["context_length"] + model_prediction_length = self.model.config.chronos_config["prediction_length"] + if prediction_length is None: + prediction_length = model_prediction_length + + if prediction_length > model_prediction_length: + msg = ( + f"We recommend keeping prediction length <= {model_prediction_length}. " + "The quality of longer predictions may degrade since the model is not optimized for it. " + ) + if limit_prediction_length: + msg += "You can turn off this check by setting `limit_prediction_length=False`." + raise ValueError(msg) + warnings.warn(msg) + + predictions = [] + remaining = prediction_length + + # We truncate the context here because otherwise batches with very long + # context could take up large amounts of GPU memory unnecessarily. + if context_tensor.shape[-1] > model_context_length: + context_tensor = context_tensor[..., -model_context_length:] + + # TODO: We unroll the forecast of Chronos Bolt greedily with the full forecast + # horizon that the model was trained with (i.e., 64). This results in variance collapsing + # every 64 steps. + while remaining > 0: + with torch.no_grad(): + prediction = self.model( + context=context_tensor.to( + device=self.model.device, + dtype=torch.float32, # scaling should be done in 32-bit precision + ), + ).quantile_preds.to(context_tensor) + + predictions.append(prediction) + remaining -= prediction.shape[-1] + + if remaining <= 0: + break + + central_idx = torch.abs(torch.tensor(self.quantiles) - 0.5).argmin() + central_prediction = prediction[:, central_idx] + + context_tensor = torch.cat([context_tensor, central_prediction], dim=-1) + + return torch.cat(predictions, dim=-1)[..., :prediction_length] + + def predict_quantiles( + self, + context: Union[torch.Tensor, List[torch.Tensor]], + prediction_length: Optional[int] = None, + quantile_levels: List[float] = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9], + **predict_kwargs, + ) -> Tuple[torch.Tensor, torch.Tensor]: + """ + Refer to the base method (``BaseChronosPipeline.predict_quantiles``). + """ + # shape (batch_size, prediction_length, len(training_quantile_levels)) + predictions = ( + self.predict(context, prediction_length=prediction_length, **predict_kwargs) + .detach() + .swapaxes(1, 2) + ) + + training_quantile_levels = self.quantiles + + if set(quantile_levels).issubset(set(training_quantile_levels)): + # no need to perform intra/extrapolation + quantiles = predictions[ + ..., [training_quantile_levels.index(q) for q in quantile_levels] + ] + else: + # we rely on torch for interpolating quantiles if quantiles that + # Chronos Bolt was trained on were not provided + if min(quantile_levels) < min(training_quantile_levels) or max( + quantile_levels + ) > max(training_quantile_levels): + logger.warning( + f"\tQuantiles to be predicted ({quantile_levels}) are not within the range of " + f"quantiles that Chronos-Bolt was trained on ({training_quantile_levels}). " + "Quantile predictions will be set to the minimum/maximum levels at which Chronos-Bolt " + "was trained on. This may significantly affect the quality of the predictions." + ) + + # TODO: this is a hack that assumes the model's quantiles during training (training_quantile_levels) + # made up an equidistant grid along the quantile dimension. i.e., they were (0.1, 0.2, ..., 0.9). + # While this holds for official Chronos-Bolt models, this may not be true in the future, and this + # function may have to be revised. + augmented_predictions = torch.cat( + [predictions[..., [0]], predictions, predictions[..., [-1]]], + dim=-1, + ) + quantiles = torch.quantile( + augmented_predictions, + q=torch.tensor(quantile_levels, dtype=augmented_predictions.dtype), + dim=-1, + ).permute(1, 2, 0) + # NOTE: the median is returned as the mean here + mean = predictions[:, :, training_quantile_levels.index(0.5)] + return quantiles, mean + + @classmethod + def from_pretrained(cls, *args, **kwargs): + """ + Load the model, either from a local path or from the HuggingFace Hub. + Supports the same arguments as ``AutoConfig`` and ``AutoModel`` + from ``transformers``. + """ + + config = AutoConfig.from_pretrained(*args, **kwargs) + assert hasattr(config, "chronos_config"), "Not a Chronos config file" + + architecture = config.architectures[0] + class_ = globals().get(architecture) + + if class_ is None: + logger.warning( + f"Unknown architecture: {architecture}, defaulting to ChronosBoltModelForForecasting" + ) + class_ = ChronosBoltModelForForecasting + + model = class_.from_pretrained(*args, **kwargs) + return cls(model=model) diff --git a/src/chronos/utils.py b/src/chronos/utils.py new file mode 100644 index 0000000..9248d5a --- /dev/null +++ b/src/chronos/utils.py @@ -0,0 +1,20 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + + +from typing import List + +import torch + + +def left_pad_and_stack_1D(tensors: List[torch.Tensor]) -> torch.Tensor: + max_len = max(len(c) for c in tensors) + padded = [] + for c in tensors: + assert isinstance(c, torch.Tensor) + assert c.ndim == 1 + padding = torch.full( + size=(max_len - len(c),), fill_value=torch.nan, device=c.device + ) + padded.append(torch.concat((padding, c), dim=-1)) + return torch.stack(padded).to(tensors[0]) diff --git a/test/dummy-chronos-bolt-model/config.json b/test/dummy-chronos-bolt-model/config.json new file mode 100644 index 0000000..96eb29a --- /dev/null +++ b/test/dummy-chronos-bolt-model/config.json @@ -0,0 +1,50 @@ +{ + "architectures": [ + "ChronosBoltModelForForecasting" + ], + "chronos_config": { + "context_length": 512, + "input_patch_size": 16, + "input_patch_stride": 16, + "prediction_length": 64, + "quantiles": [ + 0.1, + 0.2, + 0.3, + 0.4, + 0.5, + 0.6, + 0.7, + 0.8, + 0.9 + ], + "use_reg_token": true + }, + "chronos_pipeline_class": "ChronosBoltPipeline", + "classifier_dropout": 0.0, + "d_ff": 8, + "d_kv": 4, + "d_model": 8, + "decoder_start_token_id": 0, + "dense_act_fn": "relu", + "dropout_rate": 0.1, + "eos_token_id": 1, + "feed_forward_proj": "relu", + "initializer_factor": 0.05, + "is_encoder_decoder": true, + "is_gated_act": false, + "layer_norm_epsilon": 1e-06, + "model_type": "t5", + "n_positions": 512, + "num_decoder_layers": 4, + "num_heads": 4, + "num_layers": 4, + "pad_token_id": 0, + "reg_token_id": 1, + "relative_attention_max_distance": 128, + "relative_attention_num_buckets": 32, + "torch_dtype": "float32", + "transformers_version": "4.40.2", + "use_cache": true, + "vocab_size": 2 +} diff --git a/test/dummy-chronos-bolt-model/model.safetensors b/test/dummy-chronos-bolt-model/model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..b7b5b4e75a5318c4a952358fa0f98ac6812d3783 GIT binary patch literal 85408 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 a+)BzeF`=@i-@=JgiGs None: +def validate_tensor( + a: torch.Tensor, shape: Tuple[int, ...], dtype: Optional[torch.dtype] = None +) -> None: assert isinstance(a, torch.Tensor) assert a.shape == shape - assert a.dtype == dtype + + if dtype is not None: + assert a.dtype == dtype @pytest.mark.parametrize("model_dtype", [torch.float32, torch.bfloat16]) @@ -179,7 +192,9 @@ def test_pipeline_predict(model_dtype: torch.dtype, input_dtype: torch.dtype): validate_tensor(samples, shape=(4, 12, 3), dtype=input_dtype) with pytest.raises(ValueError): - samples = pipeline.predict(context, num_samples=7, prediction_length=65) + samples = pipeline.predict( + context, num_samples=7, prediction_length=65, limit_prediction_length=True + ) samples = pipeline.predict( context, num_samples=7, prediction_length=65, limit_prediction_length=False @@ -192,7 +207,12 @@ def test_pipeline_predict(model_dtype: torch.dtype, input_dtype: torch.dtype): validate_tensor(samples, shape=(4, 12, 3), dtype=input_dtype) with pytest.raises(ValueError): - samples = pipeline.predict(list(context), num_samples=7, prediction_length=65) + samples = pipeline.predict( + list(context), + num_samples=7, + prediction_length=65, + limit_prediction_length=True, + ) samples = pipeline.predict( list(context), @@ -208,17 +228,73 @@ def test_pipeline_predict(model_dtype: torch.dtype, input_dtype: torch.dtype): validate_tensor(samples, shape=(1, 12, 3), dtype=input_dtype) with pytest.raises(ValueError): - samples = pipeline.predict(context[0, ...], num_samples=7, prediction_length=65) + samples = pipeline.predict( + context[0, ...], + num_samples=7, + prediction_length=65, + limit_prediction_length=True, + ) samples = pipeline.predict( context[0, ...], num_samples=7, prediction_length=65, - limit_prediction_length=False, ) validate_tensor(samples, shape=(1, 7, 65), dtype=input_dtype) +@pytest.mark.parametrize("model_dtype", [torch.float32, torch.bfloat16]) +@pytest.mark.parametrize("prediction_length", [3, 65]) +@pytest.mark.parametrize( + "quantile_levels", [[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9], [0.1, 0.5, 0.9]] +) +def test_pipeline_predict_quantiles( + model_dtype: torch.dtype, + prediction_length: int, + quantile_levels: list[int], +): + pipeline = ChronosPipeline.from_pretrained( + Path(__file__).parent / "dummy-chronos-model", + device_map="cpu", + torch_dtype=model_dtype, + ) + context = 10 * torch.rand(size=(4, 16)) + 10 + + num_expected_quantiles = len(quantile_levels) + # input: tensor of shape (batch_size, context_length) + + quantiles, mean = pipeline.predict_quantiles( + context, + num_samples=12, + prediction_length=prediction_length, + quantile_levels=quantile_levels, + ) + validate_tensor(quantiles, (4, prediction_length, num_expected_quantiles)) + validate_tensor(mean, (4, prediction_length)) + + # input: batch_size-long list of tensors of shape (context_length,) + + quantiles, mean = pipeline.predict_quantiles( + list(context), + num_samples=12, + prediction_length=prediction_length, + quantile_levels=quantile_levels, + ) + validate_tensor(quantiles, (4, prediction_length, num_expected_quantiles)) + validate_tensor(mean, (4, prediction_length)) + + # input: tensor of shape (context_length,) + + quantiles, mean = pipeline.predict_quantiles( + context[0, ...], + num_samples=12, + prediction_length=prediction_length, + quantile_levels=quantile_levels, + ) + validate_tensor(quantiles, (1, prediction_length, num_expected_quantiles)) + validate_tensor(mean, (1, prediction_length)) + + @pytest.mark.parametrize("model_dtype", [torch.float32, torch.bfloat16]) @pytest.mark.parametrize("input_dtype", [torch.float32, torch.bfloat16]) def test_pipeline_embed(model_dtype: torch.dtype, input_dtype: torch.dtype): diff --git a/test/test_chronos_bolt.py b/test/test_chronos_bolt.py new file mode 100644 index 0000000..c4c3db7 --- /dev/null +++ b/test/test_chronos_bolt.py @@ -0,0 +1,246 @@ +from pathlib import Path +from typing import Tuple + +import pytest +import torch + +from chronos import BaseChronosPipeline, ChronosBoltPipeline +from chronos.chronos_bolt import InstanceNorm, Patch + + +def validate_tensor(input: torch.Tensor, shape: Tuple[int, ...]) -> None: + assert isinstance(input, torch.Tensor) + assert input.shape == shape + + +def test_base_chronos_pipeline_loads_from_huggingface(): + BaseChronosPipeline.from_pretrained("amazon/chronos-bolt-tiny", device_map="cpu") + + +@pytest.mark.parametrize("torch_dtype", [torch.float32, torch.bfloat16]) +def test_pipeline_predict(torch_dtype: str): + pipeline = ChronosBoltPipeline.from_pretrained( + Path(__file__).parent / "dummy-chronos-bolt-model", + device_map="cpu", + torch_dtype=torch_dtype, + ) + context = 10 * torch.rand(size=(4, 16)) + 10 + expected_num_quantiles = len(pipeline.quantiles) + + # input: tensor of shape (batch_size, context_length) + + quantiles = pipeline.predict(context, prediction_length=3) + validate_tensor(quantiles, (4, expected_num_quantiles, 3)) + + with pytest.raises(ValueError): + quantiles = pipeline.predict( + context, prediction_length=65, limit_prediction_length=True + ) + + quantiles = pipeline.predict(context, prediction_length=65) + validate_tensor(quantiles, (4, expected_num_quantiles, 65)) + + # input: batch_size-long list of tensors of shape (context_length,) + + quantiles = pipeline.predict(list(context), prediction_length=3) + validate_tensor(quantiles, (4, expected_num_quantiles, 3)) + + with pytest.raises(ValueError): + quantiles = pipeline.predict( + list(context), + prediction_length=65, + limit_prediction_length=True, + ) + + quantiles = pipeline.predict(list(context), prediction_length=65) + validate_tensor(quantiles, (4, expected_num_quantiles, 65)) + + # input: tensor of shape (context_length,) + + quantiles = pipeline.predict(context[0, ...], prediction_length=3) + validate_tensor(quantiles, (1, expected_num_quantiles, 3)) + + with pytest.raises(ValueError): + quantiles = pipeline.predict( + context[0, ...], + prediction_length=65, + limit_prediction_length=True, + ) + + quantiles = pipeline.predict( + context[0, ...], + prediction_length=65, + ) + validate_tensor(quantiles, (1, expected_num_quantiles, 65)) + + +@pytest.mark.parametrize("torch_dtype", [torch.float32, torch.bfloat16]) +@pytest.mark.parametrize("prediction_length", [3, 65]) +@pytest.mark.parametrize( + "quantile_levels", [[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9], [0.1, 0.5, 0.9]] +) +def test_pipeline_predict_quantiles( + torch_dtype: str, prediction_length: int, quantile_levels: list[int] +): + pipeline = ChronosBoltPipeline.from_pretrained( + Path(__file__).parent / "dummy-chronos-bolt-model", + device_map="cpu", + torch_dtype=torch_dtype, + ) + context = 10 * torch.rand(size=(4, 16)) + 10 + + num_expected_quantiles = len(quantile_levels) + # input: tensor of shape (batch_size, context_length) + + quantiles, mean = pipeline.predict_quantiles( + context, + prediction_length=prediction_length, + quantile_levels=quantile_levels, + ) + validate_tensor(quantiles, (4, prediction_length, num_expected_quantiles)) + validate_tensor(mean, (4, prediction_length)) + + # input: batch_size-long list of tensors of shape (context_length,) + + quantiles, mean = pipeline.predict_quantiles( + list(context), + prediction_length=prediction_length, + quantile_levels=quantile_levels, + ) + validate_tensor(quantiles, (4, prediction_length, num_expected_quantiles)) + validate_tensor(mean, (4, prediction_length)) + + # input: tensor of shape (context_length,) + + quantiles, mean = pipeline.predict_quantiles( + context[0, ...], + prediction_length=prediction_length, + quantile_levels=quantile_levels, + ) + validate_tensor(quantiles, (1, prediction_length, num_expected_quantiles)) + validate_tensor(mean, (1, prediction_length)) + + +# The following tests have been taken from +# https://github.com/autogluon/autogluon/blob/f57beb26cb769c6e0d484a6af2b89eab8aee73a8/timeseries/tests/unittests/models/chronos/pipeline/test_chronos_bolt.py +# Author: Caner Turkmen + + +def test_given_even_data_patch_operator_output_is_correct(): + batch_size = 17 + patch_len = 16 + + patch = Patch(patch_len, patch_len) + + batch = ( + torch.stack([torch.arange(512)] * batch_size) + + torch.arange(batch_size)[:, None] + ) + output = patch(batch) + + assert output.shape == (batch_size, 512 // patch_len, patch_len) + + assert torch.allclose( + output[:, 0], + torch.stack([torch.arange(patch_len)] * batch_size) + + torch.arange(batch_size)[:, None], + atol=1e-5, + ) + assert torch.allclose( + output[:, 1], + torch.stack([torch.arange(patch_len, 2 * patch_len)] * batch_size) + + torch.arange(batch_size)[:, None], + atol=1e-5, + ) + assert not torch.isnan(output).any() + + +def test_given_even_data_and_strides_patch_operator_output_is_correct(): + batch_size = 17 + patch_len, patch_stride = 16, 8 + + patch = Patch(patch_len, patch_stride) + + offset = torch.arange(batch_size)[:, None] + batch = torch.stack([torch.arange(512)] * batch_size) + offset + output = patch(batch) + + assert torch.allclose( + output[:, 1], + torch.stack([torch.arange(patch_stride, patch_stride + patch_len)] * batch_size) + + offset, + atol=1e-5, + ) + assert not torch.isnan(output).any() + + +def test_given_uneven_data_patch_operator_pads_and_output_is_correct(): + batch_size = 17 + patch_len = 16 + + patch = Patch(patch_len, patch_len) + + batch = ( + torch.stack([torch.arange(512 - patch_len + 1)] * batch_size) + + torch.arange(batch_size)[:, None] + ).float() + output = patch(batch) + + assert output.shape == (batch_size, 512 // patch_len, patch_len) + + # check the first portion is padded + assert torch.isnan(output[:, 0, :-1]).all() + + # check nowhere else is nan + assert not torch.isnan(output[:, 1:]).any() + + +def test_when_instancenorm_applied_then_standardization_correct(): + inorm = InstanceNorm() + + input_ = torch.tensor( + [ + [1, 2, 3, 4, 5], + [2, 3, 4, 5, 6], + ] + ).float() + + normalized, (loc, scale) = inorm(input_) + + assert normalized.shape == input_.shape + assert torch.allclose(normalized[0], normalized[1]) + assert torch.allclose(loc.squeeze(), torch.tensor([3.0, 4.0])) + assert torch.allclose(scale.squeeze(), torch.tensor(1.41421)) + + +def test_when_instancenorm_applied_and_reversed_then_nans_preserved(): + inorm = InstanceNorm() + + input_ = torch.tensor( + [ + [1, torch.nan, 3, 4, 5], + [2, 3, 4, 5, torch.nan], + ] + ).float() + + normalized, (loc, scale) = inorm(input_) + assert torch.allclose(normalized.isnan(), input_.isnan()) + + output = inorm.inverse(normalized, (loc, scale)) + assert torch.allclose(output, input_, equal_nan=True) + + +def test_when_instancenorm_applied_and_reversed_then_output_correct(): + inorm = InstanceNorm() + + input_ = torch.tensor( + [ + [1, 2, 3, 4, 5], + [2, 3, 4, 5, 1000], + ] + ).float() + + normalized, loc_scale = inorm(input_) + output = inorm.inverse(normalized, loc_scale) + + assert torch.allclose(output, input_)