From 81dc60c086d34b6d9edad68c2f08e9b1eae1d8bb Mon Sep 17 00:00:00 2001 From: Yichen Zhou Date: Tue, 30 Apr 2024 10:58:13 -0700 Subject: [PATCH] No public description PiperOrigin-RevId: 631148246 No public description PiperOrigin-RevId: 629465861 No public description PiperOrigin-RevId: 629538727 No public description PiperOrigin-RevId: 629803430 No public description PiperOrigin-RevId: 629838772 No public description PiperOrigin-RevId: 629875841 No public description PiperOrigin-RevId: 630194303 No public description PiperOrigin-RevId: 630212078 No public description PiperOrigin-RevId: 630215811 No public description PiperOrigin-RevId: 630402195 No public description PiperOrigin-RevId: 630452190 No public description PiperOrigin-RevId: 630511573 No public description PiperOrigin-RevId: 630706657 No public description PiperOrigin-RevId: 630712978 No public description PiperOrigin-RevId: 630735187 --- LICENSE | 202 ++++++ README.md | 157 +++++ __init__.py | 21 + datasets/download_data.sh | 19 + docs/contributing.md | 32 + environment.yml | 25 + environment_cpu.yml | 24 + experiments/extended_benchmarks/README.md | 26 + .../extended_benchmarks/run_timesfm.py | 146 +++++ .../extended_benchmarks/tfm_results.png | Bin 0 -> 336480 bytes experiments/extended_benchmarks/utils.py | 278 ++++++++ experiments/long_horizon_benchmarks/README.md | 36 ++ .../long_horizon_benchmarks/data_loader.py | 261 ++++++++ .../long_horizon_benchmarks/run_eval.py | 255 ++++++++ .../tfm_long_horizon.png | Bin 0 -> 197577 bytes .../long_horizon_benchmarks/time_features.py | 215 +++++++ pyproject.toml | 24 + src/patched_decoder.py | 461 ++++++++++++++ src/timesfm.py | 594 ++++++++++++++++++ 19 files changed, 2776 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 __init__.py create mode 100644 datasets/download_data.sh create mode 100644 docs/contributing.md create mode 100644 environment.yml create mode 100644 environment_cpu.yml create mode 100644 experiments/extended_benchmarks/README.md create mode 100644 experiments/extended_benchmarks/run_timesfm.py create mode 100644 experiments/extended_benchmarks/tfm_results.png create mode 100644 experiments/extended_benchmarks/utils.py create mode 100644 experiments/long_horizon_benchmarks/README.md create mode 100644 experiments/long_horizon_benchmarks/data_loader.py create mode 100644 experiments/long_horizon_benchmarks/run_eval.py create mode 100644 experiments/long_horizon_benchmarks/tfm_long_horizon.png create mode 100644 experiments/long_horizon_benchmarks/time_features.py create mode 100644 pyproject.toml create mode 100644 src/patched_decoder.py create mode 100644 src/timesfm.py diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..7ff436b --- /dev/null +++ b/README.md @@ -0,0 +1,157 @@ +# TimesFM + +TimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google +Research for time-series forecasting. + +* Paper: [A decoder-only foundation model for time-series forecasting](https://arxiv.org/abs/2310.10688), to appear in ICML 2024. +* [Google Research blog](https://research.google/blog/a-decoder-only-foundation-model-for-time-series-forecasting/) +* [Hugging Face checkpoint repo](https://huggingface.co/google/timesfm-1.0-200m) + +This repo contains the code to load public TimesFM checkpoints and run model +inference. Please visit our +[Hugging Face checkpoint repo](https://huggingface.co/google/timesfm-1.0-200m) +to download model checkpoints. + +This is not an officially supported Google product. + +## Checkpoint timesfm-1.0-200m + +timesfm-1.0-200m is the first open model checkpoint: + +- It performs univariate time series forecasting for context lengths up tp 512 timepoints and any horizon lengths, with an optional frequency indicator. +- It focuses on point forecasts, and does not support probabilistic forecasts. We experimentally offer quantile heads but they have not been calibrated after pretraining. +- It requires the context to be contiguous (i.e. no "holes"), and the context and the horizon to be of the same frequency. + +## Benchmarks + +Please refer to our result tables on the [extended benchmarks](./experiments/extended_benchmarks/tfm_results.png) and the [long horizon benchmarks](./experiments/long_horizon_benchmarks/tfm_long_horizon.png). + +Please look into the README files in the respective benchmark directories within `experiments/` for instructions for running TimesFM on the respective benchmarks. + +## Installation + +We have two environment files. For GPU installation (assuming CUDA 12 has been +setup), you can create a conda environment `tfm_env` from the base folder +through: + +``` +conda env create --file=environment.yml +``` + +For a CPU setup please use, + +``` +conda env create --file=environment_cpu.yml +``` +to create the environment instead. + +Follow by + +``` +conda activate tfm_env +pip install -e . +``` +to install the package. + +## Usage + +### Initialize the model and load a checkpoint. +Then the base class can be loaded as, + +```python +import timesfm + +tfm = timesfm.TimesFm( + context_len=, + horizon_len=, + input_patch_len=32, + output_patch_len=128, + num_layers=20, + model_dims=1280, + backend=, +) +tfm.load_from_checkpoint() +``` + +Note that the four parameters are fixed to load the 200m model + +```python +input_patch_len=32, +output_patch_len=128, +num_layers=20, +model_dims=1280, +``` + +1. The context_len here can be set as the max context length **of the model**. You can provide shorter series to the `tfm.forecast()` function and the model will handle it. Currently the model handles a max context length of 512, which can be increased in later releases. The input time series can have **any context length**. Padding / truncation will be handled by the inference code if needed. + +2. The horizon length can be set to anything. We recommend setting it to the largest horizon length you would need in the forecasting tasks for your application. We generally recommend horizon length <= context length but it is not a requirement in the function call. + +### Perform inference + +We provide APIs to forecast from either array inputs or `pandas` dataframe. Both forecast methods expect (1) the input time series contexts, (2) along with their frequencies. Please look at the documentation of the functions `tfm.forecast()` and `tfm.forecast_on_df()` for detailed instructions. + +In particular regarding the frequency, TimesFM expects a categorical indicator valued in {0, 1, 2}: + +- **0** (default): high frequency, long horizon time series. We recommend to use this for time series up to daily granularity. +- **1**: medium frequency time series. We recommend to use this for weekly and monthly data. +- **2**: low frequency, short horizon time series. We recommend to use this for anything beyond monthly, e.g. quarterly or yearly. + +This categorical value should be directly provided with the array inputs. For dataframe inputs, we convert the conventional letter coding of frequencies to our expected categories, that + +- **0**: T, MIN, H, D, B, U +- **1**: W, M +- **2**: Q, Y + +Notice you do **NOT** have to strictly follow our recommendation here. Although this is our setup during model training and we expect it to offer the best forecast result, you can also view the frequency input as a free parameter and modify it per your specific use case. + + +Examples: + +Array inputs, with the frequencies set to low, medium and high respectively. + +```python +import numpy as np +forecast_input = [ + np.sin(np.linspace(0, 20, 100)) + np.sin(np.linspace(0, 20, 200)), + np.sin(np.linspace(0, 20, 400)), +] +frequency_input = [0, 1, 2] + +point_forecast, experimental_quantile_forecast = tfm.forecast( + forecast_input, + freq=frequency_input, +) +``` + +`pandas` dataframe, with the frequency set to "M" monthly. + +```python +import pandas as pd + +# e.g. input_df is +# unique_id ds y +# 0 T1 1975-12-31 697458.0 +# 1 T1 1976-01-31 1187650.0 +# 2 T1 1976-02-29 1069690.0 +# 3 T1 1976-03-31 1078430.0 +# 4 T1 1976-04-30 1059910.0 +# ... ... ... ... +# 8175 T99 1986-01-31 602.0 +# 8176 T99 1986-02-28 684.0 +# 8177 T99 1986-03-31 818.0 +# 8178 T99 1986-04-30 836.0 +# 8179 T99 1986-05-31 878.0 + +forecast_df = tfm.forecast_on_df( + inputs=input_df, + freq="M", # monthly + value_name="y", + num_jobs=-1, +) +``` + + + + + diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..2718f01 --- /dev/null +++ b/__init__.py @@ -0,0 +1,21 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""TimesFM init file.""" + +from __future__ import absolute_import + +from src.patched_decoder import PatchedTimeSeriesDecoder +from src.timesfm import TimesFm +from src.timesfm import freq_map diff --git a/datasets/download_data.sh b/datasets/download_data.sh new file mode 100644 index 0000000..25898a4 --- /dev/null +++ b/datasets/download_data.sh @@ -0,0 +1,19 @@ +# Copyright 2024 The Google Research Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#!/bin/bash +gdown --fuzzy https://drive.google.com/file/d/1alE33S1GmP5wACMXaLu50rDIoVzBM4ik/view?usp=share_link +unzip all_six_datasets.zip +mv all_six_datasets/* . +rm -rf all_six_datasets* \ No newline at end of file diff --git a/docs/contributing.md b/docs/contributing.md new file mode 100644 index 0000000..8956a61 --- /dev/null +++ b/docs/contributing.md @@ -0,0 +1,32 @@ +# How to Contribute + +We would love to accept your patches and contributions to this project. + +## Before you begin + +### Sign our Contributor License Agreement + +Contributions to this project must be accompanied by a +[Contributor License Agreement](https://cla.developers.google.com/about) (CLA). +You (or your employer) retain the copyright to your contribution; this simply +gives us permission to use and redistribute your contributions as part of the +project. + +If you or your current employer have already signed the Google CLA (even if it +was for a different project), you probably don't need to do it again. + +Visit to see your current agreements or to +sign a new one. + +### Review our Community Guidelines + +This project follows [Google's Open Source Community +Guidelines](https://opensource.google/conduct/). + +## Contribution process + +### Code Reviews + +All submissions, including submissions by project members, require review. We +use [GitHub pull requests](https://docs.github.com/articles/about-pull-requests) +for this purpose. diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..9238669 --- /dev/null +++ b/environment.yml @@ -0,0 +1,25 @@ +name: tfm_env + +channels: + - conda-forge + - defaults + - anaconda +dependencies: + - jupyterlab + - pip + - python=3.10 + - pip: + - datasetsforecast + - fire + - git+https://github.com/awslabs/gluon-ts.git + - huggingface_hub[cli] + - neuralforecast + - orjson + - statsforecast + - utilsforecast + - git+https://github.com/amazon-science/chronos-forecasting.git + - praxis + - paxml + - -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html + - "jax[cuda12_pip]" + - einshape diff --git a/environment_cpu.yml b/environment_cpu.yml new file mode 100644 index 0000000..dabd911 --- /dev/null +++ b/environment_cpu.yml @@ -0,0 +1,24 @@ +name: tfm_env + +channels: + - conda-forge + - defaults + - anaconda +dependencies: + - jupyterlab + - pip + - python=3.10 + - pip: + - datasetsforecast + - fire + - git+https://github.com/awslabs/gluon-ts.git + - huggingface_hub[cli] + - neuralforecast + - orjson + - statsforecast + - utilsforecast + - git+https://github.com/amazon-science/chronos-forecasting.git + - praxis + - paxml + - jax[cpu] + - einshape diff --git a/experiments/extended_benchmarks/README.md b/experiments/extended_benchmarks/README.md new file mode 100644 index 0000000..f37f22c --- /dev/null +++ b/experiments/extended_benchmarks/README.md @@ -0,0 +1,26 @@ +# Extended Benchmarks + +The benchmark setting has been borrowed from Nixtla's original [benchmarking](https://github.com/AzulGarza/nixtla/tree/main/experiments/amazon-chronos) of time-series foundation models against a strong statistical ensemble. Later more datasets were added by the Chronos team in this [pull request](https://github.com/shchur/nixtla/tree/chronos-full-eval/experiments/amazon-chronos). We compare on all the datasets in this extended benchmarks. + +All experiments were performed on a [g2-standard-32](https://cloud.google.com/compute/docs/gpus). + +## Running TimesFM on the benchmark + +Install the environment and the package as detailed in the main README and then follow the steps from the base directory. + +``` +conda activate tfm_env +TF_CPP_MIN_LOG_LEVEL=2 XLA_PYTHON_CLIENT_PREALLOCATE=false python3 -m experiments.extended_benchmarks.run_timesfm --model_path= --backend="gpu" +``` + +In the above, `` should point to the checkpoint directory that can be downloaded from HuggingFace. + +Note: In the current version of TimesFM we focus on point forecasts and therefore the mase, smape have been calculated using the quantile head corresponding to the median i.e 0.5 quantile. We do offer 10 quantile heads but they have not been calibrated after pretraining. We recommend using them with caution or calibrate/conformalize them on a hold out for your applications. More to follow on later versions. + +## Benchmark Results + +![Benchmark Results Table](./tfm_results.png) + +We can see that TimesFM performs the best in terms of both mase and smape. More importantly it is much faster than the other methods, in particular it is more than 600x faster than StatisticalEnsemble and 80x faster than Chronos (Large). + +Note: This benchmark only compares on `one` small horizon window for long horizon datasets like ETT hourly and 15 minutes. More in depth comparison on longer horizon rolling validation tasks are presented in our long horizon benchmarks. \ No newline at end of file diff --git a/experiments/extended_benchmarks/run_timesfm.py b/experiments/extended_benchmarks/run_timesfm.py new file mode 100644 index 0000000..bbf1ec9 --- /dev/null +++ b/experiments/extended_benchmarks/run_timesfm.py @@ -0,0 +1,146 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Evaluation script for timesfm.""" + +import os +import sys +import time + +from absl import flags +import numpy as np +import pandas as pd +from paxml import checkpoints +import timesfm + +from .utils import ExperimentHandler + + +dataset_names = [ + "m1_monthly", + "m1_quarterly", + "m1_yearly", + "m3_monthly", + "m3_other", + "m3_quarterly", + "m3_yearly", + "m4_quarterly", + "m4_yearly", + "tourism_monthly", + "tourism_quarterly", + "tourism_yearly", + "nn5_daily_without_missing", + "m5", + "nn5_weekly", + "traffic", + "weather", + "dominick", + "australian_electricity_demand", + "car_parts_without_missing", + "cif_2016", + "covid_deaths", + "ercot", + "ett_small_15min", + "ett_small_1h", + "exchange_rate", + "fred_md", + "hospital", +] + +context_dict = { + "cif_2016": 32, + "tourism_yearly": 64, + "covid_deaths": 64, + "tourism_quarterly": 64, + "tourism_monthly": 64, + "m1_monthly": 64, + "m1_quarterly": 64, + "m1_yearly": 64, + "m3_monthly": 64, + "m3_other": 64, + "m3_quarterly": 64, + "m3_yearly": 64, + "m4_quarterly": 64, + "m4_yearly": 64, +} + +_MODEL_PATH = flags.DEFINE_string( + "model_path", "/home/timesfm_q10_20240501", "Path to model" +) +_BATCH_SIZE = flags.DEFINE_integer("batch_size", 64, "Batch size") +_HORIZON = flags.DEFINE_integer("horizon", 128, "Horizon") +_BACKEND = flags.DEFINE_string("backend", "gpu", "Backend") +_NUM_JOBS = flags.DEFINE_integer("num_jobs", 1, "Number of jobs") +_SAVE_DIR = flags.DEFINE_string("save_dir", "./results", "Save directory") + + +QUANTILES = list(np.arange(1, 10) / 10.0) + + +def main(): + results_list = [] + tfm = timesfm.TimesFm( + context_len=512, + horizon_len=_HORIZON.value, + input_patch_len=32, + output_patch_len=128, + num_layers=20, + model_dims=1280, + backend=_BACKEND.value, + per_core_batch_size=_BATCH_SIZE.value, + quantiles=QUANTILES, + ) + tfm.load_from_checkpoint( + _MODEL_PATH.value, + checkpoint_type=checkpoints.CheckpointType.FLAX, + ) + run_id = np.random.randint(100000) + model_name = "timesfm" + for dataset in dataset_names: + print(f"Evaluating model {model_name} on dataset {dataset}", flush=True) + exp = ExperimentHandler(dataset, quantiles=QUANTILES) + + if dataset in context_dict: + context_len = context_dict[dataset] + else: + context_len = 512 + train_df = exp.train_df + freq = exp.freq + init_time = time.time() + fcsts_df = tfm.forecast_on_df( + inputs=train_df, + freq=freq, + value_name="y", + model_name=model_name, + forecast_context_len=context_len, + num_jobs=_NUM_JOBS.value, + ) + total_time = time.time() - init_time + time_df = pd.DataFrame({"time": [total_time], "model": model_name}) + results = exp.evaluate_from_predictions( + models=[model_name], fcsts_df=fcsts_df, times_df=time_df + ) + print(results, flush=True) + results_list.append(results) + results_full = pd.concat(results_list) + save_path = os.path.join(_SAVE_DIR.value, str(run_id)) + print(f"Saving results to {save_path}", flush=True) + os.makedirs(save_path, exist_ok=True) + results_full.to_csv(f"{save_path}/results.csv") + + +if __name__ == "__main__": + FLAGS = flags.FLAGS + FLAGS(sys.argv) + main() diff --git a/experiments/extended_benchmarks/tfm_results.png b/experiments/extended_benchmarks/tfm_results.png new file mode 100644 index 0000000000000000000000000000000000000000..2e0231ad9bd70db74f892440ec4e61519869b93b GIT binary patch literal 336480 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
uOi<&+d#4;-+@pXH{_$F2Yz5hO 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

581Z$S$S$XCZwRdZ6DP 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 z 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 literal 0 HcmV?d00001 diff --git a/experiments/extended_benchmarks/utils.py b/experiments/extended_benchmarks/utils.py new file mode 100644 index 0000000..de0368b --- /dev/null +++ b/experiments/extended_benchmarks/utils.py @@ -0,0 +1,278 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Forked from https://github.com/Nixtla/nixtla/blob/main/experiments/amazon-chronos/src/utils.py.""" + +from functools import partial +from itertools import repeat +import multiprocessing +import os +from pathlib import Path +from typing import List + +from gluonts.dataset import Dataset +from gluonts.dataset.repository.datasets import ( + dataset_names as gluonts_datasets, + get_dataset, +) +from gluonts.time_feature.seasonality import get_seasonality +import numpy as np +import pandas as pd +from utilsforecast.evaluation import evaluate +from utilsforecast.losses import mae, mase, smape + + +def parallel_transform(inp): + ts, last_n = inp[0], inp[1] + return ExperimentHandler._transform_gluonts_instance_to_df(ts, last_n=last_n) + + +def quantile_loss( + df: pd.DataFrame, + models: list, + q: float = 0.5, + id_col: str = "unique_id", + target_col: str = "y", +) -> pd.DataFrame: + delta_y = df[models].sub(df[target_col], axis=0) + res = ( + np.maximum(q * delta_y, (q - 1) * delta_y) + .groupby(df[id_col], observed=True) + .mean() + ) + res.index.name = id_col + res = res.reset_index() + return res + + +class ExperimentHandler: + + def __init__( + self, + dataset: str, + quantiles: List[float] = list(np.arange(1, 10) / 10.0), + results_dir: str = "./results", + models_dir: str = "./models", + ): + if dataset not in gluonts_datasets: + raise Exception( + f"dataset {dataset} not found in gluonts " + f"available datasets: {', '.join(gluonts_datasets)}" + ) + self.dataset = dataset + self.quantiles = quantiles + self.level = self._transform_quantiles_to_levels(quantiles) + self.results_dir = results_dir + self.models_dir = models_dir + # defining datasets + self._maybe_download_m3_or_m5_file(self.dataset) + gluonts_dataset = get_dataset(self.dataset) + self.horizon = gluonts_dataset.metadata.prediction_length + if self.horizon is None: + raise Exception( + f"horizon not found for dataset {self.dataset} " + "experiment cannot be run" + ) + self.freq = gluonts_dataset.metadata.freq + # get_seasonality() returns 1 for freq='D', override this to 7. This significantly improves the accuracy of + # statistical models on datasets like m5/nn5_daily. The models like AutoARIMA/AutoETS can still set + # seasonality=1 internally on datasets like weather by choosing non-seasonal models during model selection. + if self.freq == "D": + self.seasonality = 7 + else: + self.seasonality = get_seasonality(self.freq) + self.gluonts_train_dataset = gluonts_dataset.train + self.gluonts_test_dataset = gluonts_dataset.test + self._create_dir_if_not_exists(self.results_dir) + try: + multiprocessing.set_start_method("spawn") + except RuntimeError: + print("Multiprocessing context has already been set.") + + @staticmethod + def _maybe_download_m3_or_m5_file(dataset: str): + if dataset[:2] == "m3": + m3_file = Path.home() / ".gluonts" / "datasets" / "M3C.xls" + if not m3_file.exists(): + from datasetsforecast.m3 import M3 + from datasetsforecast.utils import download_file + + download_file(m3_file.parent, M3.source_url) + elif dataset == "m5": + m5_raw_dir = Path.home() / ".gluonts" / "m5" + if not m5_raw_dir.exists(): + import zipfile + from datasetsforecast.m5 import M5 + from datasetsforecast.utils import download_file + + download_file(m5_raw_dir, M5.source_url) + with zipfile.ZipFile(m5_raw_dir / "m5.zip", "r") as zip_ref: + zip_ref.extractall(m5_raw_dir) + + @staticmethod + def _transform_quantiles_to_levels(quantiles: List[float]) -> List[int]: + level = [ + int(100 - 200 * q) for q in quantiles if q < 0.5 + ] # in this case mean=mediain + level = sorted(list(set(level))) + return level + + @staticmethod + def _create_dir_if_not_exists(directory: str): + Path(directory).mkdir(parents=True, exist_ok=True) + + @staticmethod + def _transform_gluonts_instance_to_df( + ts: dict, + last_n: int | None = None, + ) -> pd.DataFrame: + start_period = ts["start"] + start_ds, freq = start_period.to_timestamp(), start_period.freq + target = ts["target"] + ds = pd.date_range(start=start_ds, freq=freq, periods=len(target)) + if last_n is not None: + target = target[-last_n:] + ds = ds[-last_n:] + ts_df = pd.DataFrame({"unique_id": ts["item_id"], "ds": ds, "y": target}) + return ts_df + + @staticmethod + def _transform_gluonts_dataset_to_df( + gluonts_dataset: Dataset, + last_n: int | None = None, + ) -> pd.DataFrame: + with multiprocessing.Pool(os.cpu_count()) as pool: # Create a process pool + results = pool.map( + parallel_transform, zip(gluonts_dataset, repeat(last_n)) + ) + df = pd.concat(results) + df = df.reset_index(drop=True) + return df + + @property + def train_df(self) -> pd.DataFrame: + train_df = self._transform_gluonts_dataset_to_df(self.gluonts_train_dataset) + return train_df + + @property + def test_df(self) -> pd.DataFrame: + test_df = self._transform_gluonts_dataset_to_df( + self.gluonts_test_dataset, + last_n=self.horizon, + ) + # Make sure that only the first backtest window is used for evaluation on `traffic` / `exchange_rate` datasets + return test_df.groupby("unique_id", sort=False).head(self.horizon) + + def save_dataframe(self, df: pd.DataFrame, file_name: str): + df.to_csv(f"{self.results_dir}/{file_name}", index=False) + + def save_results( + self, fcst_df: pd.DataFrame, total_time: float, model_name: str + ): + self.save_dataframe( + fcst_df, + f"{model_name}-{self.dataset}-fcst.csv", + ) + time_df = pd.DataFrame({"time": [total_time], "model": model_name}) + self.save_dataframe( + time_df, + f"{model_name}-{self.dataset}-time.csv", + ) + + def fcst_from_level_to_quantiles( + self, + fcst_df: pd.DataFrame, + model_name: str, + ) -> pd.DataFrame: + fcst_df = fcst_df.copy() + cols = ["unique_id", "ds", model_name] + for q in self.quantiles: + if q == 0.5: + col = f"{model_name}" + else: + lv = int(100 - 200 * q) + hi_or_lo = "lo" if lv > 0 else "hi" + lv = abs(lv) + col = f"{model_name}-{hi_or_lo}-{lv}" + q_col = f"{model_name}-q-{q}" + fcst_df[q_col] = fcst_df[col].values + cols.append(q_col) + return fcst_df[cols] + + def evaluate_models(self, models: List[str]) -> pd.DataFrame: + fcsts_df = [] + times_df = [] + for model in models: + fcst_method_df = pd.read_csv( + f"{self.results_dir}/{model}-{self.dataset}-fcst.csv" + ).set_index(["unique_id", "ds"]) + fcsts_df.append(fcst_method_df) + time_method_df = pd.read_csv( + f"{self.results_dir}/{model}-{self.dataset}-time.csv" + ) + times_df.append(time_method_df) + fcsts_df = pd.concat(fcsts_df, axis=1).reset_index() + fcsts_df["ds"] = pd.to_datetime(fcsts_df["ds"]) + times_df = pd.concat(times_df) + return self.evaluate_from_predictions( + models=models, fcsts_df=fcsts_df, times_df=times_df + ) + + def evaluate_from_predictions( + self, models: List[str], fcsts_df: pd.DataFrame, times_df: pd.DataFrame + ) -> pd.DataFrame: + test_df = self.test_df + train_df = self.train_df + test_df = test_df.merge(fcsts_df, how="left") + assert test_df.isna().sum().sum() == 0, "merge contains nas" + # point evaluation + point_fcsts_cols = ["unique_id", "ds", "y"] + models + test_df["unique_id"] = test_df["unique_id"].astype(str) + train_df["unique_id"] = train_df["unique_id"].astype(str) + mase_seas = partial(mase, seasonality=self.seasonality) + eval_df = evaluate( + test_df[point_fcsts_cols], + train_df=train_df, + metrics=[smape, mase_seas, mae], + ) + # probabilistic evaluation + eval_prob_df = [] + for q in self.quantiles: + prob_cols = [f"{model}-q-{q}" for model in models] + eval_q_df = quantile_loss(test_df, models=prob_cols, q=q) + eval_q_df[prob_cols] = eval_q_df[prob_cols] * self.horizon + eval_q_df = eval_q_df.rename(columns=dict(zip(prob_cols, models))) + eval_q_df["metric"] = f"quantile-loss-{q}" + eval_prob_df.append(eval_q_df) + eval_prob_df = pd.concat(eval_prob_df) + eval_prob_df = eval_prob_df.groupby("metric").sum().reset_index() + total_y = test_df["y"].sum() + eval_prob_df[models] = eval_prob_df[models] / total_y + eval_prob_df["metric"] = "scaled_crps" + eval_df = pd.concat([eval_df, eval_prob_df]).reset_index(drop=True) + eval_df = eval_df.groupby("metric").mean(numeric_only=True).reset_index() + eval_df = eval_df.melt( + id_vars="metric", value_name="value", var_name="model" + ) + times_df.insert(0, "metric", "time") + times_df = times_df.rename(columns={"time": "value"}) + eval_df = pd.concat([eval_df, times_df]) + eval_df.insert(0, "dataset", self.dataset) + eval_df = eval_df.sort_values(["dataset", "metric", "model"]) + eval_df = eval_df.reset_index(drop=True) + return eval_df + + +if __name__ == "__main__": + multiprocessing.set_start_method("spawn") diff --git a/experiments/long_horizon_benchmarks/README.md b/experiments/long_horizon_benchmarks/README.md new file mode 100644 index 0000000..4c94d30 --- /dev/null +++ b/experiments/long_horizon_benchmarks/README.md @@ -0,0 +1,36 @@ +# Extended Benchmarks + +We benchmark on the original test set for ETT datasets as per long horizon benchmark papers (see [here](https://openreview.net/forum?id=pCbC3aQB5W) for example.) In the original benchmark, rolling validation task on all test windows (with a stride of 1) is considered. While we can easily run our method on this task, the baselines can take a very long time to run. Therefore we present results on a modified task with stride between windows set to Horizon length i.e all disjoint horizons in the test period is considered. + +All experiments were performed on a [g2-standard-32](https://cloud.google.com/compute/docs/gpus). We compare TimesFM with [Amazon-Chronos](https://github.com/amazon-science/chronos-forecasting). + +## Running TimesFM on the benchmark + +Install the environment and the package as detailed in the main README and then follow the steps from the base directory. + +``` +conda activate tfm_env +TF_CPP_MIN_LOG_LEVEL=2 XLA_PYTHON_CLIENT_PREALLOCATE=false python3 -m experiments.long_horizon_benchmarks.run_eval \ +--model_path= --backend="gpu" \ +--pred_len=96 --context_len=512 --dataset=etth1 +``` + +In the above, `` should point to the checkpoint directory that can be downloaded from HuggingFace. + +For running chronos on the same benchmark you can run the command, + +``` +TF_CPP_MIN_LOG_LEVEL=2 XLA_PYTHON_CLIENT_PREALLOCATE=false python3 -m experiments.long_horizon_benchmarks.run_eval \ +--model_path=amazon/chronos-t5-mini --backend="gpu" \ +--pred_len=96 --context_len=512 --dataset=etth1 +``` + +You can change the model size from "mini" to "large" as required. The datasets we benchmark on are etth1, etth2, ettm1 and ettm2. + +## Benchmark Results + +![Benchmark Results Table](./tfm_long_horizon.png) + +We compare the performance on horizon lengths of 96, 192 and 336, while context length is held fixed at 512. + +We can see that TimesFM performs the best in terms of both wape and smape. More importantly it is much faster than the other methods, in particular it is more than 1000x faster than Chronos (Large). \ No newline at end of file diff --git a/experiments/long_horizon_benchmarks/data_loader.py b/experiments/long_horizon_benchmarks/data_loader.py new file mode 100644 index 0000000..eeace7b --- /dev/null +++ b/experiments/long_horizon_benchmarks/data_loader.py @@ -0,0 +1,261 @@ +# Copyright 2024 The Google Research Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""TF dataloaders for general timeseries datasets. + +The expected input format is csv file with a datetime index. +""" + + +from absl import logging +import numpy as np +import pandas as pd +from sklearn.preprocessing import StandardScaler +import tensorflow as tf +from . import time_features + + +class TimeSeriesdata(object): + """Data loader class.""" + + def __init__( + self, + data_path, + datetime_col, + num_cov_cols, + cat_cov_cols, + ts_cols, + train_range, + val_range, + test_range, + hist_len, + pred_len, + batch_size, + freq='H', + normalize=True, + epoch_len=None, + holiday=False, + permute=True, + ): + """Initialize objects. + + Args: + data_path: path to csv file + datetime_col: column name for datetime col + num_cov_cols: list of numerical global covariates + cat_cov_cols: list of categorical global covariates + ts_cols: columns corresponding to ts + train_range: tuple of train ranges + val_range: tuple of validation ranges + test_range: tuple of test ranges + hist_len: historical context + pred_len: prediction length + batch_size: batch size (number of ts in a batch) + freq: freq of original data + normalize: std. normalize data or not + epoch_len: num iters in an epoch + holiday: use holiday features or not + permute: permute ts in train batches or not + + Returns: + None + """ + self.data_df = pd.read_csv(open(data_path, 'r')) + if not num_cov_cols: + self.data_df['ncol'] = np.zeros(self.data_df.shape[0]) + num_cov_cols = ['ncol'] + if not cat_cov_cols: + self.data_df['ccol'] = np.zeros(self.data_df.shape[0]) + cat_cov_cols = ['ccol'] + self.data_df.fillna(0, inplace=True) + self.data_df.set_index( + pd.DatetimeIndex(self.data_df[datetime_col]), inplace=True + ) + self.num_cov_cols = num_cov_cols + self.cat_cov_cols = cat_cov_cols + self.ts_cols = ts_cols + self.train_range = train_range + self.val_range = val_range + self.test_range = test_range + data_df_idx = self.data_df.index + date_index = data_df_idx.union( + pd.date_range( + data_df_idx[-1] + pd.Timedelta(1, freq=freq), + periods=pred_len + 1, + freq=freq, + ) + ) + self.time_df = time_features.TimeCovariates( + date_index, holiday=holiday + ).get_covariates() + self.hist_len = hist_len + self.pred_len = pred_len + self.batch_size = batch_size + self.freq = freq + self.normalize = normalize + self.data_mat = self.data_df[self.ts_cols].to_numpy().transpose() + self.data_mat = self.data_mat[:, 0 : self.test_range[1]] + self.time_mat = self.time_df.to_numpy().transpose() + self.num_feat_mat = self.data_df[num_cov_cols].to_numpy().transpose() + self.cat_feat_mat, self.cat_sizes = self._get_cat_cols(cat_cov_cols) + self.normalize = normalize + if normalize: + self._normalize_data() + logging.info( + 'Data Shapes: %s, %s, %s, %s', + self.data_mat.shape, + self.time_mat.shape, + self.num_feat_mat.shape, + self.cat_feat_mat.shape, + ) + self.epoch_len = epoch_len + self.permute = permute + + def _get_cat_cols(self, cat_cov_cols): + """Get categorical columns.""" + cat_vars = [] + cat_sizes = [] + for col in cat_cov_cols: + dct = {x: i for i, x in enumerate(self.data_df[col].unique())} + cat_sizes.append(len(dct)) + mapped = self.data_df[col].map(lambda x: dct[x]).to_numpy().transpose() # pylint: disable=cell-var-from-loop + cat_vars.append(mapped) + return np.vstack(cat_vars), cat_sizes + + def _normalize_data(self): + self.scaler = StandardScaler() + train_mat = self.data_mat[:, self.train_range[0] : self.train_range[1]] + self.scaler = self.scaler.fit(train_mat.transpose()) + self.data_mat = self.scaler.transform(self.data_mat.transpose()).transpose() + + def train_gen(self): + """Generator for training data.""" + num_ts = len(self.ts_cols) + perm = np.arange( + self.train_range[0] + self.hist_len, + self.train_range[1] - self.pred_len, + ) + perm = np.random.permutation(perm) + hist_len = self.hist_len + logging.info('Hist len: %s', hist_len) + if not self.epoch_len: + epoch_len = len(perm) + else: + epoch_len = self.epoch_len + for idx in perm[0:epoch_len]: + for _ in range(num_ts // self.batch_size + 1): + if self.permute: + tsidx = np.random.choice(num_ts, size=self.batch_size, replace=False) + else: + tsidx = np.arange(num_ts) + dtimes = np.arange(idx - hist_len, idx + self.pred_len) + ( + bts_train, + bts_pred, + bfeats_train, + bfeats_pred, + bcf_train, + bcf_pred, + ) = self._get_features_and_ts(dtimes, tsidx, hist_len) + + all_data = [ + bts_train, + bfeats_train, + bcf_train, + bts_pred, + bfeats_pred, + bcf_pred, + tsidx, + ] + yield tuple(all_data) + + def test_val_gen(self, mode='val', shift=1): + """Generator for validation/test data.""" + if mode == 'val': + start = self.val_range[0] + end = self.val_range[1] - self.pred_len + 1 + elif mode == 'test': + start = self.test_range[0] + end = self.test_range[1] - self.pred_len + 1 + else: + raise NotImplementedError('Eval mode not implemented') + num_ts = len(self.ts_cols) + hist_len = self.hist_len + logging.info('Hist len: %s', hist_len) + perm = np.arange(start, end) + if self.epoch_len: + epoch_len = self.epoch_len + else: + epoch_len = len(perm) + for i in range(0, epoch_len, shift): + idx = perm[i] + for batch_idx in range(0, num_ts, self.batch_size): + tsidx = np.arange(batch_idx, min(batch_idx + self.batch_size, num_ts)) + dtimes = np.arange(idx - hist_len, idx + self.pred_len) + ( + bts_train, + bts_pred, + bfeats_train, + bfeats_pred, + bcf_train, + bcf_pred, + ) = self._get_features_and_ts(dtimes, tsidx, hist_len) + all_data = [ + bts_train, + bfeats_train, + bcf_train, + bts_pred, + bfeats_pred, + bcf_pred, + tsidx, + ] + yield tuple(all_data) + + def _get_features_and_ts(self, dtimes, tsidx, hist_len=None): + """Get features and ts in specified windows.""" + if hist_len is None: + hist_len = self.hist_len + data_times = dtimes[dtimes < self.data_mat.shape[1]] + bdata = self.data_mat[:, data_times] + bts = bdata[tsidx, :] + bnf = self.num_feat_mat[:, data_times] + bcf = self.cat_feat_mat[:, data_times] + btf = self.time_mat[:, dtimes] + if bnf.shape[1] < btf.shape[1]: + rem_len = btf.shape[1] - bnf.shape[1] + rem_rep = np.repeat(bnf[:, [-1]], repeats=rem_len) + rem_rep_cat = np.repeat(bcf[:, [-1]], repeats=rem_len) + bnf = np.hstack([bnf, rem_rep.reshape(bnf.shape[0], -1)]) + bcf = np.hstack([bcf, rem_rep_cat.reshape(bcf.shape[0], -1)]) + bfeats = np.vstack([btf, bnf]) + bts_train = bts[:, 0:hist_len] + bts_pred = bts[:, hist_len:] + bfeats_train = bfeats[:, 0:hist_len] + bfeats_pred = bfeats[:, hist_len:] + bcf_train = bcf[:, 0:hist_len] + bcf_pred = bcf[:, hist_len:] + return bts_train, bts_pred, bfeats_train, bfeats_pred, bcf_train, bcf_pred + + def tf_dataset(self, mode='train', shift=1): + """Tensorflow Dataset.""" + if mode == 'train': + gen_fn = self.train_gen + else: + gen_fn = lambda: self.test_val_gen(mode, shift) + output_types = tuple( + [tf.float32] * 2 + [tf.int32] + [tf.float32] * 2 + [tf.int32] * 2 + ) + dataset = tf.data.Dataset.from_generator(gen_fn, output_types) + dataset = dataset.prefetch(tf.data.experimental.AUTOTUNE) + return dataset diff --git a/experiments/long_horizon_benchmarks/run_eval.py b/experiments/long_horizon_benchmarks/run_eval.py new file mode 100644 index 0000000..accfbd8 --- /dev/null +++ b/experiments/long_horizon_benchmarks/run_eval.py @@ -0,0 +1,255 @@ +# Copyright 2024 The Google Research Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Eval pipeline.""" + +import json +import os +import sys +import time +from absl import flags +import chronos +import numpy as np +import pandas as pd +from paxml import checkpoints +import timesfm +import torch +import tqdm +from . import data_loader + + +FLAGS = flags.FLAGS + +_BATCH_SIZE = flags.DEFINE_integer( + "batch_size", 64, "Batch size for the randomly sampled batch" +) +_DATASET = flags.DEFINE_string("dataset", "etth1", "The name of the dataset.") +_MODEL_PATH = flags.DEFINE_string( + "model_path", "./timesfm_q10_20240501", "The name of the dataset." +) +_DATETIME_COL = flags.DEFINE_string( + "datetime_col", "date", "Column having datetime." +) +_NUM_COV_COLS = flags.DEFINE_list( + "num_cov_cols", None, "Column having numerical features." +) +_CAT_COV_COLS = flags.DEFINE_list( + "cat_cov_cols", None, "Column having categorical features." +) +_TS_COLS = flags.DEFINE_list("ts_cols", None, "Columns of time-series features") +_NORMALIZE = flags.DEFINE_bool( + "normalize", True, "normalize data for eval or not" +) +_CONTEXT_LEN = flags.DEFINE_integer( + "context_len", 512, "Length of the context window" +) +_PRED_LEN = flags.DEFINE_integer("pred_len", 96, "prediction length.") +_BACKEND = flags.DEFINE_string("backend", "gpu", "backend to use") +_RESULTS_DIR = flags.DEFINE_string( + "results_dir", "./results/long_horizon", "results directory" +) + + +DATA_DICT = { + "ettm2": { + "boundaries": [34560, 46080, 57600], + "data_path": "./datasets/ETT-small/ETTm2.csv", + "freq": "15min", + }, + "ettm1": { + "boundaries": [34560, 46080, 57600], + "data_path": "./datasets/ETT-small/ETTm1.csv", + "freq": "15min", + }, + "etth2": { + "boundaries": [8640, 11520, 14400], + "data_path": "./datasets/ETT-small/ETTh2.csv", + "freq": "H", + }, + "etth1": { + "boundaries": [8640, 11520, 14400], + "data_path": "./datasets/ETT-small/ETTh1.csv", + "freq": "H", + }, + "elec": { + "boundaries": [18413, 21044, 26304], + "data_path": "./datasets/electricity/electricity.csv", + "freq": "H", + }, + "traffic": { + "boundaries": [12280, 14036, 17544], + "data_path": "./datasets/traffic/traffic.csv", + "freq": "H", + }, + "weather": { + "boundaries": [36887, 42157, 52696], + "data_path": "./datasets/weather/weather.csv", + "freq": "10min", + }, +} + +QUANTILES = list(np.arange(1, 10) / 10.0) +EPS = 1e-7 + + +def get_forecasts(model_path, model, past, freq, pred_len): + """Get forecasts.""" + if model_path.startswith("amazon"): + out = model.predict( + torch.tensor(past), + prediction_length=pred_len, + limit_prediction_length=False, + ) + out = out.numpy() + out = np.median(out, axis=1) + else: + lfreq = [freq] * past.shape[0] + _, out = model.forecast(list(past), lfreq) + out = out[:, :, 5] + return out + + +def _mse(y_pred, y_true): + """mse loss.""" + return np.square(y_pred - y_true) + + +def _mae(y_pred, y_true): + """mae loss.""" + return np.abs(y_pred - y_true) + + +def _smape(y_pred, y_true): + """_smape loss.""" + abs_diff = np.abs(y_pred - y_true) + abs_val = (np.abs(y_true) + np.abs(y_pred)) / 2 + abs_val = np.where(abs_val > EPS, abs_val, 1.0) + abs_diff = np.where(abs_val > EPS, abs_diff, 0.0) + return abs_diff / abs_val + + +def eval(): + """Eval pipeline.""" + dataset = _DATASET.value + data_path = DATA_DICT[dataset]["data_path"] + freq = DATA_DICT[dataset]["freq"] + int_freq = timesfm.freq_map(freq) + boundaries = DATA_DICT[dataset]["boundaries"] + + data_df = pd.read_csv(open(data_path, "r")) + + if _TS_COLS.value is not None: + ts_cols = DATA_DICT[dataset]["ts_cols"] + num_cov_cols = DATA_DICT[dataset]["num_cov_cols"] + cat_cov_cols = DATA_DICT[dataset]["cat_cov_cols"] + else: + ts_cols = [col for col in data_df.columns if col != _DATETIME_COL.value] + num_cov_cols = None + cat_cov_cols = None + batch_size = min(_BATCH_SIZE.value, len(ts_cols)) + dtl = data_loader.TimeSeriesdata( + data_path=data_path, + datetime_col=_DATETIME_COL.value, + num_cov_cols=num_cov_cols, + cat_cov_cols=cat_cov_cols, + ts_cols=np.array(ts_cols), + train_range=[0, boundaries[0]], + val_range=[boundaries[0], boundaries[1]], + test_range=[boundaries[1], boundaries[2]], + hist_len=_CONTEXT_LEN.value, + pred_len=_PRED_LEN.value, + batch_size=batch_size, + freq=freq, + normalize=_NORMALIZE.value, + epoch_len=None, + holiday=False, + permute=False, + ) + eval_itr = dtl.tf_dataset( + mode="test", shift=_PRED_LEN.value + ).as_numpy_iterator() + model_path = _MODEL_PATH.value + if model_path.startswith("amazon"): + model = chronos.ChronosPipeline.from_pretrained( + model_path, + device_map="auto", + torch_dtype=torch.bfloat16, + ) + else: + model = timesfm.TimesFm( + context_len=_CONTEXT_LEN.value, + horizon_len=_PRED_LEN.value, + input_patch_len=32, + output_patch_len=128, + num_layers=20, + model_dims=1280, + backend=_BACKEND.value, + per_core_batch_size=batch_size, + quantiles=QUANTILES, + ) + model.load_from_checkpoint( + model_path, + checkpoint_type=checkpoints.CheckpointType.FLAX, + ) + smape_run_losses = [] + mse_run_losses = [] + mae_run_losses = [] + + num_elements = 0 + abs_sum = 0 + start_time = time.time() + + for batch in tqdm.tqdm(eval_itr): + past = batch[0] + actuals = batch[3] + forecasts = get_forecasts( + model_path, model, past, int_freq, _PRED_LEN.value + ) + forecasts = forecasts[:, 0 : actuals.shape[1]] + mae_run_losses.append(_mae(forecasts, actuals).sum()) + mse_run_losses.append(_mse(forecasts, actuals).sum()) + smape_run_losses.append(_smape(forecasts, actuals).sum()) + num_elements += actuals.shape[0] * actuals.shape[1] + abs_sum += np.abs(actuals).sum() + + mse_val = np.sum(mse_run_losses) / num_elements + + result_dict = { + "mse": mse_val, + "smape": np.sum(smape_run_losses) / num_elements, + "mae": np.sum(mae_run_losses) / num_elements, + "wape": np.sum(mae_run_losses) / abs_sum, + "nrmse": np.sqrt(mse_val) / (abs_sum / num_elements), + "num_elements": num_elements, + "abs_sum": abs_sum, + "total_time": time.time() - start_time, + "model_path": model_path, + "dataset": dataset, + "freq": freq, + "pred_len": _PRED_LEN.value, + "context_len": _CONTEXT_LEN.value, + } + run_id = np.random.randint(10000) + save_path = os.path.join(_RESULTS_DIR.value, str(run_id)) + print(f"Saving results to {save_path}", flush=True) + os.makedirs(save_path, exist_ok=True) + with open(os.path.join(save_path, "results.json"), "w") as f: + json.dump(result_dict, f) + print(result_dict, flush=True) + + +if __name__ == "__main__": + FLAGS = flags.FLAGS + FLAGS(sys.argv) + eval() diff --git a/experiments/long_horizon_benchmarks/tfm_long_horizon.png b/experiments/long_horizon_benchmarks/tfm_long_horizon.png new file mode 100644 index 0000000000000000000000000000000000000000..92f1469b5de51572818c357ad5b7b35ab7c613ce GIT binary patch literal 197577 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ⅈu$p_=6#C2dH{nq`4^ASF_Adjp9c#i zRhGplmYR)+0jHz)e&d=yx@d6^Uv7MWJ z-XZC~tOzZ&Rw<05U$HQDmB3;#fmEdB&`M@Z)HIifYuj)12TyR9?e2;!^lF^s$#1{7m31Z1CJC=Xl`gNfP%OaqaF)r3fbwmH; zTY_t7-X1I%Mng1eZ~CvPPjmSeURYH&3p{#kL4e>XvTb-W&4}qbtp(MGSDgNK1c*rA zqCXnq7*yg6_eAGE(oVeZQS%Gc@((O_wa;{8;ioHgRUv1q?4iz+Tmx#;Hiemt5jI@H z00ZK@+<@C-4s!vVU3vCp9VrnMq`#g0teOL0q463)h2v|mUB)*Vd?Am$3R!)x*%6^L zq1neFn%n@|@XQ1|Rw~^_|E9epwF#+XD)MeUVV|$nmAH74!kExeAnVZ47zmq|G5nAT z{cwO>Wi_FT&`~LThI?$mE^eU8vaH$UI(*7S~2Uc(ZOrQUxxlI@?f|42>gF%fu< z+DD9r|NUxERVJj{r0`E}ybZPOq+sz2jwN=rYzu)%(^cA_o|UIlr>q^0_2~)|4RycM z9oHj_-6WNt{sx_@!hFSUQq+?nuCp*uEUt=XT~9CC_FTFUVva@19ah);6sYJ1WLGFq zg1e83{8>j$lnQbv@Pub{f4_KYp_o5e>j;PMq3-&wC?HVUvY_aBV93OPJ@6+wOGP5f z72KIiCZ9e%wKfx1`&~>u#L9$pvAy#4FS6kQBwN=i{X07D>}sF?3YsADq74qYD+X#8eZ+0kUW)Dqc}jq-Fn8@fYf8gYiEf!LO6Z=$WT?B&Z#!WJ?w$qrlLrk z=QJK-3VVofXCz(fiSBp;khn}n^9l-&q8G$kkZ~8HmQ@S%@Xq6_NO7DneUyZC5Ws0& zvgFdyu5`<=&o!iw7=QHU?|nQ?V?ediB=&+S1-vPLEvfe(d`Ju+cM;P5sO$T zTY={k7wNG>@lC`_cD-WUUfPQxgJPM{H~O!h#;xkEc+CB#QV9ahFfoLR*b9LsnpA#f zJKKl5TXPhs5g}K0R|fl+$JqWNT{5!`%=2ifc#Qhpl$7(nbV^nT$&sf5qI}PO!1~It zvi`W(*ul-ux&pnnT;a!u0A!8wyvKEKg_OM-mY?&m983}E^WeAX9~aB>B;$onKf?7h z#H8@Rp4qE65nY5&<7Quxjx`71!2QO&Te{xN(7!Rljj0`DwDLJ{1JtSSOH$kptF*iK zm2MxP(ox{COy!+)%vEl`e9ga-es-32>q51X7_;MySv-ahdi~U0O zd`;oURcY|ti;s;q%(R<4fA1Pz3=mOJ1yof!r7JgA$PPPV2kqlH`jqe#zB?+`#9-5Z zrSq97&jDirYDMs_PMHDWD%^_=46B(xzVx@pH^b>-f?)1x_*giUFenB zJ!z+IM7dq8)*W}o`QWjg^i@38zBzn&k}xscUhnYb&Z?>`8U7XCF(v7FNxtVTF4-g2 zuQppQ(aK@+)f|Xl#9dRT+(hpM{Bn9t_gc?#dK^jl=W8H7Tmwe*rzU1DrXWARv7DtP)6-_ zql4D7O^-G(4ICxx_)i`66V>bX&A3ic-8t^b2B25-SpYq@PUeBA%x z5wJG}TW(AY4Y%|2DI~DZ^nX3K|9VO6S8x;q{-=hd|MUph_0ol1uSMw6(!ziIp<1yL z)xl8$g?96U{|{wn9TnBvuYH;UsR4u`Bn5_0LZqamJ5*pmq(ekNK%{%<7Ni>mMOr14 z?gjyA>CT}W-g|z}dd@j(y=%SibN(IKGVFctJHFrRb6x-0ZTRO-`R}lpba(AsA0My$ z=YLdi<45#W%0Zsz(_2{}X!FpW#xowv-xuhBz&Yy5!O@Q6zyG(vJ2}4Cbm{rM>nqgG&)`v`R^!a5iIUJ0;N$_7+Q$yX_ zA7su)c5E*2I_$pw*Dy1Ih@2EzOK@M(Q2qM{(GNil4=X+!z; zIE>!g07}^(&w(1}&NdwlmL1v42lYaA1E4#yiq`E<{<#L*-CtlA)d&K-UfY90)&1hJ zxA!^iItB9YVdd@2#sFumIU3{BX6i&UCCH!r%y3$tzbtnWn#JacRTDG;=Y))=F)sfN5+u=0EDL^*inwXlwY zEpbHS=Z^0DfwqIo^Rb3^UL1$J0s*AiyHg1L;Mh-^LG==G)_#m-*Al5d;%e>~no6Fa zTN82t5=3?ZYBAsVoalTTwg}El#?{8azlnLIqTL8nrn6L`=Gau>~sg@O9= zPl+vV!F?>dr4))6bi<4^&aq*n5#t&Qt_>F%vZFr$vq17XasMA3e}vItu7Ww^EaPTz zzHNy=sRb^m_6(mD_Zd#EJfb~pw#$^Adc7Z|F6{2-uJMW&F3KV(alV%K7kvWfi@O15 zYi>?aku#7>7Ye{|%A4G_3-WaKAvXN>klYv4hL6ou9TQ z=iS-nGUu%vlJhel5fa~WIFjbUG}vU*Aw?`*cp>Mn#}^Az>I;d!VJ$aSxmxc7V*e3bfCcr$Hj&D!agqH_&>!qJ#5hXH~e1m(T`* z-K)&;@||cizOtA4pkX{+)o`_4RCe`V^}Zu8(!OY(Zo~?yxd8p5%f{nkX;-r9?aHZX zV3WFo4(}Rlm^~_StpO3NTvj?y@Or~1(f?=_fyCUoAVCr1R5ULuTq}Ea2S9b#?-qLMnrm$SXJBRJ%7vi4I~n@ z)lK(mAW)jG&R3!ud1@*^@@qT|a&ak7aooty;hW--svBg4C7RwFPv>V`x}T?5L5Q9* zH2%CocN7jDIB}02f~4Ke7Lniz0Y%^Q;jC%!!fYFzb?XI7%80tP0s?{y#>fb&Pb6&W zcg{ih*&Pd-!_utFB@UNDL<(m(hJph~RZn^j^tg8jH_&k%b*mD)j^Mnbw@xvv8LP<8 zSg|6_ufcc;s0%#j7r z%|9C^+1DNEo`3;2(i8(z_r^)>b+B7G5SsnXG!oqOVC8MS!Np^5MI|GL{iBayq$ zYO8Azzj5d-=3(a%e9lG*$f$CCP$l&|Pm5;rplmyD6hde1WD3bi4?k68m%Rzst8I=z z4ek=udq*1Q?W(07^wI#1-N)m33H4kszU)R~c5yGF6a1FGVK;BvjHLv?k4ykvi z6p&EJ|IBzx;UBLd*7bm)yLl#}4DR=4HN(|If6h~T?K@VG&=0AC4s25KveG{A%5qL? z;;6Pg&{|72k0#g-mHARiLV(Ie#j&Jw?YD)p*A9S(`{JYeA<{tyX+mLV#j_dlq=gr} zmGiD5;Fq;L3VrB0N3qU|jw0SZA!iL6@`*d9fTkXP=f-j%EzL-bD0Kxr_}pkXdkajt z9^Mx5_PiR#8T4-L5%r6=+Huw#=)!gjE%$ohg1g~F(hp-0M)BuU%pqFj9T8$Nr`{^^ z<$F4e8hOMpn+5j`cS1ETC~viemMVRVw`bu~lhmU`{5Y?KQ5^YQ0cuL5Xbdba4|oX= zV)0|R+Fgwjh_BIW87HH$k_A0)H+$(mk@jfEgsdnUlEI#pN@#B{i!<%PZjCMap2as7 zVQoRGg2L#;htcWJMxg3Ct&8)_^Iy{j~5s9maKULk6Wrtt<{ouRJ)lHN7>4E`X zDK5MX+*hHFY;62HM+^5h+p_y^Ks6UK(HRGN!C7VbBA2L^VXjYOXt#>$F_4?`%phL_ zPrMXn;kIW&Wb1VYdvgR`ip19Jf7EgTlpmh_c#wgTS|BFSwc3Zi6l?gAGBD+(7#Itq z8Zca?OXG2G%ywmvm!uNTU_pK)l{__Bf3%7xy7!8U{Rp(bky?BuW{%rgC$+0V@6<%k zq)yWoS{#}dp2+B2m&O$glr&tQ`<1#WoFm+^WjRJe8E{Fl8IWblwQs^_aUR!djB5&y zb;*KK!y)69f_5uBXId-YNZjFJ%_#I!MCBK|j~$@-RakKk*>96k?TdyH9-FX^I<#R? zFGsp*9*)R%y|RE1$w(Ldl5K$Ure)^x`7X%Q;{=iyR&Y2B1|c}{f>zOK#KR4R@&e`+ zgrjINZnFuKYs0Pk)lA|i(T{eL0i=dSA9>9UacVkPd>rZ4#4|o->z5`{yBX??071L^YHMx$T$?HN7BjKC_GXRGIpeUI`1`}8Go+ff_iL&6AWI1Qr%5a6-ZAk zZ%MzrSp1wKXeKX+Nj`S_+^`ME#3+%k@vGo5vdsOdXUa*6n7siB;yQ8B9rvkTx)AW< zBK;v2-PeT)3*_}8h;-G@qYE@{?FhfXWxDXL1g)X9i#M(09i3#KW&F;f>I0ax>$(^A z;R>At?tyK~L(Y-PfG}(ptl6i<{D^cXIEk0gh z9W1wm-=t)epISvCrRj2@RFy6SY?9smKR?bUBRzX`e>+5ezN5m^4xK*OD%UGpIUrhM zwt(Te=!m)lO$rWu)B8|betx{Ten#gVCbP?29+}7D)nt($eP2o6HJv(7odU|4T4W#B zGM(8XG%_27H@X@>_(EcvIdnw)yef{F58`hc{h_F#aI_ya0zw@bIh#Vr+(WOq=fm)$ z`w|Lbl8&73a6>QYTqrOz0z;ZsyWa`s_^zB<%AY*QI#Zjww-EYN&L>y1U?#yp(ee)1 zg?(bTjH&o5^Rgo$Uf<1tgXAfLABXTFRL1(nuWwe`yReM3y?{Sn42HzHotkIzkvsfK z!#^zv84?mv1r-kOv=hbh(_jC6X!WWMWSUJR(R^3!+(*$-oWa?bl;CCSyrR2u6UQ7Q ztXz+$Zx)0^6sg+jd)*WmUwuuND{nT4xSnArr%=%7T#N14qjyP&hw|M31&wC6Z4zw;gh*GZl{v4li&+OJNm#Of#U7mPNr6e+3`FccW;`L6e8ppNB-JHMSV(*6T;e*79s?|oYCB<7WifJGpyMt$gI8%273Mi$D~ z`b8EaMZWH*d*exeP{oYXm@DTAJ)8hVC4!m9 zlz%>XVP9-;g_&9oxb@cS9-6ZqKiBhUp_|Dr0Gc^42YMD+G`xaFTkp!VTqw5eR@~^Q zm`QJdk|YmDfEov$k4B{VFpI?4q070XZ;eES^P;UL_B;M-oZWdFf+w zILzBffXa`FGAxWZbdwxQ;hd$L9*2)Bx#X#FQOh*?=+a7Cps`mkK<-hZ6n~`~nEOqs zj6#+v5F@Qkwqn(Q{ls^j{9Q{}h*_mtYG`(Pn?KUQae;HGHKIA}kG(n<=v2lJ_iZMc6hZt=+;vrohk}ulg^XHQI$^6~$BQwBBi3=xKLRUpDw{QygQ{Gnjszt*^ zrjwccj)l~Z*kF@qW3MEF-rtH8d!`g2!}Jg%t}IQX+43haP2v4wll0=T^y<@$-Qknb zLou%sPi3Q=V%li0xUk_)qt`7_3J>Lm<;Gmb~m^U2I;d2IhdF|JT z$aIxT7+3f2s)V^0+K3hh8Luv7x9cohHt|rb@22|2i}sdKY{XH`)3S&*!bS1KDF!Q$^HfXNT8i zn`~K>elbZ=UIlnlT{=<};_D`3s+|*{i^NK$_MC0Yc;7}$1t(Xyk7((-eoSIZlJ}d% z&*=%lyjC>X&|~s_7RZf=@vASNL=xU_O;GPYvCSJIOyu7tQ@U4V{@B>7KSC7}X0Tg2 zV~Frs#AWx?7bO^=g^BZ2kBG30!7`~LIT2reFi$*x2U#@=HGd59ZgarxD#FFpB;nbE6)O{PGEF!b7 zzxBz`VsT%u4ZzvUO;%{gqT8tY&$rIKB#0%wbKG6BB*qkyhRM8Iotaj7xfZ!08zYSf#k1iyF-UjiQFi z8Ez!ES%4z53Lf5xTeRso^7n(8IL^O7^KB1~%C5lm+=H)O>0sN#gV~Qh9wKXeK9m$- zYH;~3u${KMFiy_C$UmtS&d7Eu2NAshhs`^wCXyUZko~t4Qo~&gg>B+5-jNbG-dQ@5 zlPOd+322sz7JO1w@*(XUtPPT-=h20O$#9SXMmOxao+@=>n3{9}I*0`ZlL&5(GygJ@ z8Bi0HJ*DDFDHrPixFo45858n=M`^^9gqx){<+P=nob97QS)TZyI1V;vS3R=n_MK0d zB|ngbISh$EDF~%K#lnKgU_*u{ zU7;w4I{zRsPJfHGnY;w(*6$w^Mc<43F>CATG2&YIfcNE{M;eSc2{~gvv7QeA%+S$j zL)KNV&3wq`HP0b+)+JMO2CA$=5Y|199;mq>AqQl@r2f|Rsgc&3d{4Ss*IGQVW42xfZ4R;Nco+xXWF`rH{Scr9bR>Gg08h=m$|s@*FJpIo9(Lt(irV_IrP z&wqMSC~aC7XzHvc_cmVQQy@{m9(1uUVU8G;DH~kV39z7vcM^SMCPa_RB>(_Xw3ib7 zut;@*?1rD{=dp4Jt;LJpsv;K)?kJ&)DqAdHG}3hQ8L$w47XA=2kM{@tjlvarC93sDY*ZRC zOTJO4oa~2gD_xSkd~k)6%W8CkQemma6B986(eri=)U5T0&u_aB|rqlhUTFcBr#m0O!!YG`R{Q z^Bdeon|}NSTYf5>4;!M7t7(X@3K^6g)6zGmwXBVlHYblxS^tsB??eg4TqoTha$e?7 zl!*%^3#;QeV=o)|BQMSz>csF4snu+T=}8Ucu5G z*A&~l9-DB-7etV$$;7vj2B7*XLz!58r!oab8MX}SKbZ)hryXt+s4fDs_=G=s;-ZRyb z4C^8EPD)C-Bwjdp%1rj5zv{jvc(2q!MuK=ae0o2S@iN=$w&JOBC81JXw_~%kf*%hL+me1!2&zmlwH{(J zr_f5YBG_C$lq8~A#V}NkHzP1+EUna$_O{4$rmYNLenCz-Dq5fM_t@T!yniS@8=(qi z0n&ucOh&DD*3GU$;>imcp+;SMxhnq#zSK+zk-22)#T^~y&jUGLvL!_;pZ0^;XAyc! z=wWqti)E4ex#V$E$;G$!x7dkg-h_6%Rzog@ zb3AO`)`ilAvud?ENf6gO(HYp!XT;)Ml!_FV;|mZ7mh8HY;|tvzZ;~hhy20j_G~4b4 zb>)|hLUQA`aD?4n6c$uhI)l@qNVC~LybYonUe589#>VK*K!qV4+*#}XMy4i0sQuzg zTcQyUkC`QLvlnqvn8}lt27%Q@eFEt5Hn5FZt9f{VD4_}t!E30WoDb8^APjY4e(@#nJv4?FY`n5Y_9g5|XC6M3F}o)tq8};tUFzkXb{+A4=WeHa z=8CcyIPB&{OOmuhAL>R%vIF13SFj<&-9~jPMcZ@CkT9jz+>u7*p7PS$2X%xTG|$KM ztuyLh5*y4!4>MwJPu1FpDYQG3qDRfckG2}3VbV|PJ|L=WPR%kgo6h4D8T7@Y_lj^S zw+mBTkUQiI!auhCcR@tShk79wz-|SRu}aW0(;0 z*hYa}efD=9)4C?g&(VUJg@Bv{*8Gx#_^2~g|E$@q$h0rgAJ_bk9H(w)w%=Wr_vFy# zSnSXKsMB=7b#8JtWyyZEE0;JS;~i0B7Y zp<2m&&$dJ2&K-hEyXMdQ*Z+rq}zneb9;JF2*;^zxPST1m?9pW5&v~4_* z4X}MtY~5kclzsI}W7g{O&%WJY6B%wGWhmbaC$qG)XiU(9=OldiAXON1AlD$O>~lwR zhQ!lsu>r}rU4iM3c{i#17zaP5zmWv8C4?WArx)NXQkqjX(^39Kerx>}taQsQjFY)n zfuN+dy344(_w4XRa~tzvWSD?k8R#$SK-R|ftZP#`5n(4HSjXx63TGIZ@o&aBO_Pf* ziuTp{^V@L-`clbop*a-~H%Q`QPIsOqQ;wA%tjG8r+s%B}xXJAFQki8vd~-itr~*F$ zOAf0^>9#D}v7Eep8`XoKH~h0n$A8yvHr1kpUw7XciNpWs(4LIs7jVLA=hb=Eu?)*Y z`Fy-#+LZIjR>&|QStcgrs$9wz?^bC>6dFG1nQ%O3#voO}@dy2mG3b{Fvg^)|+FKcD zI)oPxZ>K5=i6f8a6=wsCEglJuGQ^g|(D-&Lc4g51IT18G2q@RREl_ioZWStsJ%3vb z@-9@#1o=j9*;a`jMOqIFVOz3M7^d?#?Oj!`&l3h_Li@TtTL zTuFGo$wuVQKnx0YDt@*0L+m0b;x##yEUp6Fx)Ad9ITaq<7LSwv>tuQDy1#UM8?Gtu zM-H4@X;veq{ZWfMuT>ajY z4=7VDAL`36ZVESj%Nr~_*rI^uw-1c}IA9mY7zay++bbnKqU|9v0|R!~*8Mv^x95M* zj;x=Cn1n%?AQnu=S#sH7k0~!(f$h%|!7kDH??V!U;aKm6+;P}#i{#u}YNJ*yR9wz5 zHkcDQ4%4E&TJP@KmxeKTZ{3ICP!X-qM@YkEe3!H)%cO}5BP8Be=?&s#>k&Lye=bOD3m zbVW&s;g0YmU?#>RCvRZlk1He9TzyaIP2P)Uiw+z{|KDlBlK_bDx+F8%t_O!8d^RBk zDK6GAVN>-MdNtCq`6C08AS|Hky5DW&W}Ttf-KCN&_45eU32p~ zYp=U85Ih|X@uJNSb9VgFGDhvEpHF^!MT^8mjwMZPD_U2m^X!&vG&!M{FU{SM` zw`%Q6t$Lmh<_q!i}n8zGUC8Y}U2qm4^h|=eGLPKnS4ypMzLcm?@<| z?Rm9vh4ZO3W{}Q(Dkr47KiZMi-|o4;Jqw2U09K%=&h1!EavqG4MQL1rn-umjp8TBg zC;GCmiqOWdEY^^0=3k3i2oK|;{<8?>mU@2c)?3+tL(z1=8L22QayU3n6^^X$6K|5? z*qNHf#>8ZZhb6Z<6L_b-$=qT+L|gSmP86muO+Z=J4}NQ?fS2TM12-_V@@;st6X$)Jz87>0rbJ z-r`@sXYE_b@id1c~E2A9bEIG;TXXu@F z41evuRh?OFl0+eK=P8FsPjy%K#&IqVQwCJJG_(A8rNB?{E}SPIEG_SOdqGWDbX5h| z(*?dhXTMkU3Xwi(Az0sVQkIpDd)M^zEi^ZPWGCLhV;LC^x#MiAUzi!+6%zz$UekV3 z8z;(;2DaTaSnyIB)|2#%EF6bVMCzgfB3Nzquj($Is*45!4rAGe{S|i1Gz|=Czi6Q&a)(C4uffszgQn z5rdTFEE^VQWJ$KE_^+8NTScT0GA-DQ!EZB}R2s8-zneSWkgS~&t`7|Mp`Mc8#ze80 zYAvS7+G*XUvtMe@FjFbyFS4C9!&J`9cT#qC$5up(`VZwz1lqd`V@sGK$}x<{+-wr$ zFSR87YF?Z{#qZB`)M!YE!mEH|WY7`gi~=(HAvOT*VtQs?3!sOHo5<%JrHOA#Lvf~M zyLWSl@ChcIkM7x-LDb|J{D?5!DUFOp7plC0qhdhE-SFgOSj_k==?tkQtG6_#kOeEc zB)y}pF_~VXR<0;egi)?AohNPJ zODRKSQQ914Xf#3rNHh)I6e1tRHk9YLjOP`STzp%wQT|Tr@_Ip1VG*1hR}S)Lwdpcz zwuRg4^6SK^?`1OKMS@>M z!nIhI9HnRyBHl_sO|?3ch`k?jdQ!4IhI7!7TOV|=X~Vd9M|os@r^Du0=RL40Sx^Vf z^j2BwR5eBk4~&xQUrUD7)N32K(OM~W;`7RYU87Z?vGTDKyxzGS!Nb+LGB5v=N2C`1 zEL?nItZUdoo@t#8Cpbx7xsxJ7j<;KbSLQLVr~K{ZMGEZ%H>jY;WQZJMLB28lio()! zk0?_1(DVwg&9*sW?zeMq95R@|1(1EbSYv>#dVqt4W%eC<9?rL|FK4ma9?Q!>Fmah5 zMqW4=!C`Lv5c)IZqH`gSHwH()F~mzh!Q$YdHkID|#ZnqH=Og=6c^-rhZ-}}dfJ~A& zt*qlcEDx7dLx0p?<`d`{I?BIP6<_i!49^w+81cbL^QTehzQ7Xj$J$R_lFy-Cfk8_` z+;cnK&X>?!mWy2Doc!4bE8+TJJqA3yC%(r3yvUwcf{H>#fg$rP_6!{+4erq;{~>Ie3e3lmP} zCm=)i+0t-`oO_-+5WIJ?@NJYoIqupwJ2IM}J}WsjlGBg%R?vPE>;?6pI_oZt&~uEV z%0l%q36n9eX|;D(+dX0=#Zl;64Uc=emUK9qe|P3hP6>?bL-dVf8tR7^EBU><8VucM zV6VU4hIj?Hi+av#w}jc-vaq+-MmN-R?dx3{=@rJWdHkMaAJYQo5~MZ0^8r48D3n8P zFUgUdKZTE;&+}`vgJ0&cT+>iIuaUi}w=uh{3DKWQkxY+`FF{*51*X4Xwm7ZMe3$*? zg)VcRgCT2QQOKHy+WOe!b*$6oc~L@K-0#(sln8Pdt_{zwA9S);n=6y& z!qxVP1RyxAQ+aNr%i<}mi z6`U^GdYTAWoT7Ch%XW2sdT-tc6(hj_1&Ue~pO?yJqP^{Dvudbd%pB?bi}Q}9%H8@4 zkFepa;@JhfW}_$#{;h~P7Fa3GOp$DQfF@NVN)Ef64pa2hJ-SI zZ>3I2H)c&4mBXdqRVFM?<;9y_sCqf#+43ys65KX#cJ#T|_MF8>?mGy~}lR6jb|1_jxhzE|Nk6g|b^9)?aFpRXQYz z*)xc?D24N05FT0no~8N9cCI*!P&d6@o#z)rAWOZWeELyDG~GO1W~S^ksf3FI^C?du zcH&&uWg*Uu5^Xr~M5#i2%c=a&>vD#{AF|p?8fK=sTXeUrkJ8P{a_n+Y31tQnS2!(q z%SlckjUQlNwJWt^#B8z>_?+a^EW;V>dZL3d&|&~Js3rZUEESPT!LO^dnKbj9UNT(i z1=+6$pyw`P>@1f{&pY?-k5Xc6)wrAj{*P3`lxb zV`<1P8RPC}=m{!(S(A{@P_G@%F$3Fs##X1WBt@%eBEtGTU|JgU4KGuVQ{%HCJ1LXq z*-Od~oTi=1v%SRwLluT;P68p_hbmtmH2laInDS8+b;tNzwVdMIFrMx3T3{KoW|hum z60FylRv?{~m))9*j=bQnDujr)7^(OPz|i3)@7qph;Q zkS~-;Q?T|S#eaJNWKYY%vfW>`4KKrXFx}3mNEiLku0bb#& zerj)eez#Xe^CTAas%>04OKc&ORYnr4?R!jU;*4*uX@!@onNjG&Ge&Di6*n97tdS0k<`eksIP0oN>siP&C|3f_}&)6PA z2=}_*4^kS*bRYisMDS`p*?_6Xs41tfa5vo8bd?`G>IQoH>^r*jXN;wifrsmc{`CQr+W|J%3^fCG;0oQGTNkc8B5$ zp6Q#i>KtJdb=*8|aJz{~H~Q5tIqRHK6O87X*Va%e8Ig`2!=8@J4Akf$&Hfzgkk6m7 zST-1zCM#c2xd867X1b7T1jmy;pc$rfb2^PnzDe}XZFaloS$;%=Jy)mZ%fWj!8Vl?} z1$F2@?V5}&Mm3h5PSX=c{+9dIMe}8;J8wLoG?-W4=F8$-(qxMf~uE@r#e-TXWGQ+yZYFQWmR28cQ0WQzI&Rfzxk=-F_?|J zv4^bFA~(x*HLwQJ2|$!_dvd&*g+XewA%iMS|Ua2mdj zP|%JEn`^$sOGFenLzjbXDsC2>K=uI61$j}h4B7OH#eAGZ_lYt z%N_xhg(bwl$w3`n!qpu3xV%&>Rlerrg`UPxj8-!fPJ3Y*E-RKTPmL3nA`%I?x2^}d zeg;#QlE)|xzO~e%^#o7egA1c{qhaX-Cr6j8TOc|6_7pNHP69_fz!hM{1X%F8@;XBj$s2q{*Y$iqDiEpmGD(tF`SU9{qS-7?)W72 z?u?t4B9roL%K`Dc=WTwe!77@nc}=wYvhSQfKJaUj{K%sQ)fS&~N7*ZoHC?uvF$~N- z#tJK3RX+Gxl#X*NAr5krEW6H)@HE$Ib;x9WA#EPy1B`)BZkzI?>9N%EQIS-<>X451 z>@cE&Fww-M3_P_|^?DG=u^uuV!cQTqTFW~(!JkRL^a5ICxfSe)XWK-na^T_*+xoQq3`At`NWloi8jOoKcx6Thyn-HwY39( z-*KJh@7ws*9!iq;0Ugu`8!KR*yWkSf@M9sWx4b$U<2|))_aZu1ijg?(p8Om?KHm(*Mob5PrC9aa(LL zUeV$M0^nIpGPh=Z{v={W5`b9i@7BK{qeMl^=9aD$IR6Z6ziRK?P_i0~>(qx5n~W^8 z<;P*fyo+Kr&OmpiMRW7L^5A*=S?#v#Gj>v~k+l6@16~P|^LDtD{=VPg1pDGS&9oeQ zT{%Zeb_UTadtk3Yl(v>w7YpIbfVZZ@88e7b5^a7mMS~d##a}=OUCJ?V|2o7EZr&W+ zocsC8c;RkFSMCsj?Cv;^K8}J0&mZ>n{=d~xtr@NYaIx~k&GuV*wQP$xbgn&;+8R8? zs;c3Q17S(;;2gJtGo6|*MYZL`^s_~@-HxL~B|rhFseReZa{Vrq`}nvaPKv2Bia^jt zhZvLN7A?mGPl#k&IwzjUr_Z5#F?q9Le)R>B@U1)U3r!UJDbFo2XP@S8$WV%E$iRMH z>^96Qe}2c&{4UAIdL&5+qCo^{WE7=g|DnlZ~M$Op_GpgK1pY2$g2zbH!(Aahxt^a@^RnBf3qyo&v7<>@qVuh{PVv-n*c8) zO~$wU(FOZI!KeP=hR~o@G9?-~;^doB|6c${;KGFXQT+ea6(&!>w_Ezy_*(eCZpVLg z{ZkDC#{U!w`xgzR{1|+@c&u-KTmKi}6(6__Hs1erTmGZp$c_u1od#j=@FqL2*Zi%& zARC0(nd34=^jK9k8?5oJ*VH{%-`W5kMQ(C%`$9 zmh6AxO=^Vb;X;{QFs6PDK%Jj@wF|e0H$QFJVPTdgoZlm8amyLk9 z)fLsZ{ek$uNIH|s2`e-K^%c|f-i_DF4dc@ zFE%4~IFJ`!z`pS(+9bff?Y7=qv~QoS^fdqoegOc+;lq(JDuB8g&Bg41yI61mG$BU% zx(_%t>$n!CL=Ji%w0IT)J&HZ(EEaOvy9Y}%VjUWvPr}#hFLs>KMdS5*$#js16AA2# z6KRt1AF>P}kw0U~q=a*R7oHNfU!fT`3OuVpSHXF@w?+QIvbkfgYTPWMW~~1BN7Sqj z>_GGiZD>V2f1G6Sic|4(9oMU7hi5;`-GlvD_=tQ?ffc>#oa~RjLRNE2vDpJ6z()M? z1Z61t*(QJ*6{bSmNBmvktUKBd?>zZ}6EHwr761;+(DVMe1{> zF18jHsO7C&13-zMyrwku~mHXFBebRz|{6`rgDP~qFf znxfPOI?hJO>@YWf>n$y_v@cpz{Wq!pkPWT#!eQ=2+wM??*clzH<;A??b?;K;x?unc zguz4feeQO0d~^X)KpQ*G0By7Fb_`-|N6_wYG>92M12Z))Bwhai`iW|QkNpJ=`$T6@ zJkBt8oKCC<5Z^D5lv1$k0HPn9fH{)B@i!2nQFQ>&n=v%hWD33UC-rIsi72z1+;kk5 zJ3wW>C>r6jVP;qcnhKAQc?#exiw3alfgz16=o7oG&F%s>^J%ah9;cMsS*AjaBV(9$7~R7#oRxB7X$@ioF} zo!}%LxYl#+*0hj3`uJz-r!0ghZNTn9fqCRlAf~Uur8XRt0BoG=Khw#8=gi^`Am6%; z7x1M{{XNmaA(tf!bSEc`^{(-NU`WD z8ykUX`>e?_5;_TuDtKX|O;OMg+qA2Lx*zGdO+iMpNBEDa=QI0>Ok)9>{lDdAgvT;J z0VK)?I1l|I^*wEgb`f6W-YfvW@=p$|NHuTpmWg5aWR#@7f?a)i{;b?YU4g|<2nLWQ zD?mc2{iv5s^2BPI&3nboYsQIXpT(UWY+MaKR(0wSUx17`ARMY zA&wmsExM9C*uM&x%6hR>V6jA(FtZ69u*S?N#P*BB%U;XaMcP`Pb^r~Jkck&?UJ4nD z4a%ctRypk}`MFUzSvvYo5143I4HhTJi{G_O_uSBUabM3$OCG;CNCJeng(?XfyV6>bf;~queE2A2A;iM*&U?l08{I5&;dC z-P?J2v2Eu*z)R@X=GC*xhjAxSySA%~ffyCG=YP;HK;nmhO`B_z?u&qitk#Are4;jy z;Osu(v)}X(@QxOmMGQNz)U7^ic=z-QbNdV^w_2WP0B`E7qlKEaHkC>@<#N3Jg)bD6 z7RW_T=9g5OiZLj5_Hv$EMD!FHZqlv#604ADla*H4VUVOUA>saR-Wy;}kc&(-DpgO- ziy||DV;_ZSdgW>hKVHwZdquat_cYQ0V*TCkdpLJ_O!$Ij){EOY!u=56LwtS!*H&Pa$ExDo zZeFgkyE(;?{w84cS6EovkNe3BZzYU<&Xxn`pBcn>Q6VBX;rzq9Yao`QP>6rt9Qd(HtSLY?CwSt!_JjwXLn#3^UJdk}`ny-eAJ)pa;lPb!Xisi)TR7aJ6-%YW+XlABbhoyx7@Qf?qK*wr@3)FblZ&~tgreS|C zxdVLPT9%xr`qyE)Xe4!KJp|_Sl{w3e`sj)bW^MlR1pUo8NbBV<&cNh7oLO5*4LBYW z=S%Dx^B4)COUVVA9eySm=HiAV2B3TI%gj=#HLsH!0sTEyoYZ=c)hu5h&AP+pB}`Bm z^8WjFI`%VN<{8P^?aL+C`h$#msXe(v^1qGWGPP-sQw?%saaw+&)&C6oyee{g?+(!P z-R}bZ*^br&6Qn;qF>6zD?41LnrLZxNxIf3<5qMh`MP#v^&ZaNeO-n8^(;UnB1 zPT#u^^2u_6BUup%4Mrsz3VmA_D}i$>sE-fVee(LP$UA+}FDj1bgUliHPcGAWu#^`` zd+6EYf1<-I&d`LjKQofE_sWJ*&;M4lwfOzyks&E@cDLy9G!}2FWJ%;M&#S{4(Uk;g zn-{-!gs|WaYutR78#+|10oF8Uq7G%%h8`rtpkPIv-!)-N#SNh^r_$x_s?PRMS4wVU zu%cj-8aM`%k<@*obaM$s$=*V3VQB0d-W*aUxJsBK3|B}d@9}Tyg`e;}8i&pIKIY^a zoX_PO%FzZzyjivRcmm#0BT8$)8foS|e}I%YoB8>8hotV(e3L}zWdACN@-c8^%#@YU zr>c5ijPJ2;#%)UYa9%iEVY`*AlZj8w2O-lO;?qOVlT&nYYQVBOIHv#n6(ueawjc|M zJIuG0^45vv^Jo$7bk@OEKh_TC_+aZ#;2RE#x*@zuD#t7|8bGjPD89&7ykf*IQ=4h#8j&ajgN5TiaF*vFk&0a zd;5Df;fQkiNV78gcTs&_7xp<5%_dT4u^m8X&;gi^Lg)86*Er!e!L5f61&ky4o#c$i zuIag%|CA|L`gZBu%KSUh607`W`{I@NqiAX@T5YRY?~^{sQ?G+Q>T{~#JDgEZc$ub# z-H9|p@njhL{ylsS>k7_)aB>u!^9tf-Il#KRfCi*!>pQ*_~6x)R@AP${ZkDq(;ux6f3$4%kS1YK)XXdU25JT`5b6DsV@yG! zdmP+pdGcxgtX~3BoX#pU89Tt(?8eqy9~-QvAI)dLoHeKd9PcrD3~s-pu;NpMV6U?x zZHiTq7;JJygn#h=$SMy=oCZ6YHqY)wyCS`6z0GCZ!%-Ux5xhHl-$Q$dHfz6jE9>N< zE=(YlPsOtqBr-3y7xwK|4^Ab;L$)3p2u3K1*qkR3zD@;;VIEiv?}9xWW1_@Y&xEb6 zZ9=2l*iYGV*{i}RG}I|V zZ{Lv77UKsdClrqQZ2Zmg(8;$OsoN=ZavEP`6hS9|c$a+(Zho%b!5@u2P+fF?B0!}% zW)v0+sWHUn3eSw$wG)fK`3m_YdPR`=FyFM~%lc-KT{m2)HX;jq*D`-uzo z4Ohp`75KK5k$kZlIDDq8sES=_*u(##Po{#|Xn~kcY3m~P9%0gJesya3nD{!*3d{PJz?B~jZE&G66E{;K<# z7dDkIG@Wr;oyNn;CY2Ey94eh#Q?D4~D#e^@x7z+F3tttBJ zWlSUJOzS+0cE=z$mz1W;+$sE8!qvT^0VW@@Yn!yo6_o|=oPv4y{G>+-*j-87-fkuf zC4;d`@dS`@ByL9UaVes{qbg&!e(6zuIVXWr`ri7^Oqh~e0zYgK@jd*l_=tdWw{@yD z?6+~81IJ$lbn7ln^o2|lz9iF$YU7v+Wk@4;!I`D4)G3DclbYLlhQGrcwGH}8=$QC= z_hP2P6;tEOetBy$d1gJD5H3}s4kY9VI9~XBdj!!Uk@CT9gdZ&H5n+ zLc3p2zAd^jGZET!co5N!D8{z2U~AESGLlYM*I`dbEdCsgXqvpO}oAnPJM_@UZSdNc77wIPOR6 zzo=~q;8QR|b?CpdhY-nOFy|tl5ie_DtiUz&EKN$%^Y@5b!L?_%Y3x$^tc2?rcVo85?uqxv!^i zD7Lj=cHuQ{%;I|LB>ucD{l$~X^gm=a@7(PnO#jsml6pQA%1yRHJ}A>G`i)@)(alU+ zSi!T`3C;hAXTh5GbLE#S`g}XJ)m`DkIbjr;j-9&HsiD|pIpO1*jhK&k#UMztXW4T% zDGKURpR^)N2TpW@f`^;Fc#}EJUKel-W@n?Q`|wy1On2d}yWzq{@#dKkrz`_@e=e8L z)Iv1bY4UJKf8jd6&a5I;!9gB@uyRFB0sLrqLa1+@TN}2nFQN6>O-|EzfjYDPLcuRv*~ecBNnf$7>yTIh7(PHF>8 z5H0(8Giz0|DXwkO51(;2hTO1fiOv#2qz-039Eu&t0eKKz^;vyjZmA?B`}URYY9*CC zS_dD6O*MN=ypPYMT@w$=QyPS+0waMc9SH;6V6-f&SS}dU*Yj`VY|Che+?plbT5Moq zB}n4v!jm{XbER%on86&RFY$*D&c8D{4{zFJ)fM*fwSXorVL=sal-ii?M=Bq9@TQ^* zd-Z2%eJ8x)_Ig0ow_3M*>Z9d}#&u$aH+_qALsI3M!?czT)=u>&)0N9tfs$G+w3r9wZRcX?Vu+R~i@HLR&B7%^IS$(ABRGo;Ag{FDm9!%={GvC}^y8 zD9lnGWV}BKo=_kuw+1&pIFW>ZaP9LTk;MXc9BYxK~ix=UEcl1}0iIf3kbU8uL?YF3A61v;7cmt#$vG`8)Sw(|{ zsF%`RO7a?{VpQ$zmYFyVPd2|yMtH5PI>CY{|636Yea zM7a%`w-`zTx#mc0h_tK%>BW2#BU$xMC~dTpZpMI7ynYX$71N@a$?Wy8`$BCDK?{jr z-w>`pP`8j=6PSXs0xH#HzT?M-SeSMgZbNf(`F}ZUWRugYG*^cGp59?7JFe-wJo0YF z9T&m74!nqZgY9pe8T=}Oh9In3C#}oH-#2(VpZOW5-ym#`I;gKmAy_@x*cY}68b^|Y zn;3_8-zu^_Z>CojzWn9HK5x#^jMNznC$^7~iTa2(y#nFj42oF>JKJ}~X=9w@8pzKU zKC7y|mCiTnY8v!yU2{%(2&r@IbD$Z&cxSC|q;9zsQi-EL8_-VMP5lh5C#YEYd9co>Av`BUF^0`y5|#SG=m2d#^HkZ|0%!<_V@E+MYs@ z$7o3%j_D{PGdA^p*o;_Pl5jk7MO1FRx)(q>S}6}5#H+`wkeUh75WKc@1%cG3Px#tu z@VuER>c9eOVh9G?V9(W*IwJ5?BEYmLFHPMz?M#?}I#(E8P%fL$L21s+V@AwAxJk|fy3uPXIuH?&BT;dA)J zf8At4vu%nq(gAz#0gv4G*;68d$iwp>*{|sDE2X3m^<+S?ig6`jcf6P|gSzV=!yjS% zB>fAMFcz{fK`dC9N!%0v<0tLyAw&Tn78%;5hk0;>4X{@^k-4ANQ-^{&vkEy4T}HSQ zeKM+*>WcH_pYUydwU+%E-LBC_J_$Bm43O@bdI6d3ecLSklkGvxZ@I%i537d)l7+S^ zxgxH2X={IjJl@qfin+@nzZ8vWq~@AriiKQu<_U;vN+8}Aj*YnewwkRwE_LkKrj4B27wmJO2fesR!B}D~N=FbWEhY3WckR>X9>?yZ-!NX>lu}2;7#9=) zrn!yBaxwC?XWnIhY9nJJ%a|z8){1k>E{M{A;@tJpRvblDx7VCQf*?!NI!x^!C=5@~ z{$c(Z2N+6qqId2IkVb4fQEM}&=1=S+*yqvObGJ?D#HBw7Kf*rK6b`fveJT<3F#HVhN>Ja{pxj&$BRbEaAVfoP5T%<6wwZbCBzi zjUsXR;QqQP{$K>oB=9b(>gl!L0nK?*(IXjvm%D8XcSNeMjg3hZIZy}?tJazCB0Sct zombR_s3m^_|7Hz)g?s=*vnRdt1mL-{ z9Q{w!2@-Rc;Z~G#dHje!S#=i@Li-V1>)#6o+z%m0c+UhM{^AMeUPQ$J$yhDquhvYA z0t+L_`UuX#mq)Gm7blkLN7B~E^gPBF}eaW}gnRU={ix4H{P)At3IN1n|% zCgpe=IpajS8xcrjjzH2is#85PJH?-*uQoe-+cksHKO-&v{t0F5m%|;>V|InftkN)V z^R7DvPYP>v!;8kVejyIIC+Or6wy({R6Riy#jEZ zaAwd|JzDDlSa+qWk1{LSgOYQ51B#7{XYl=S{_^Kb-U+K&uX(69&bY|i8Bq`XBif6$ zUji+A>DB-66Rzwh=U)E-K{;&gp&;RHL8=$I#A&hQH9bgT>rxVB?>h5K9lhbdz6P) z3di3}PiC6EYBc~OWS2jo<6!d6{ki@$>?_5;(17-o;6A#E_&0C7E;Sz6lYfZV=BAuh za>K+TQ3@s~?Em1s!5g5TBR|4TX8ugS&so zWqgPy5$(9h|KAc(Wa)f?KS@f0d+@Q-VuPgA6Q%Q(1xthdG`a1eC+y4O5ttmAE?bU9 z|9dkmkadz4J-aE@T4m~kAKs@aDB@Kt94j0{jerEngc=gE1mWaq1#fHZa+t2Y9bs65 zG7&BbX_rnZlx*yeY|8FZeLbdb58!4X{HOpmroo~gkU|T_h-Vna%bg#D6sSp(?V#{= zzm-*&lxq_YihY4t7)Ko|=@+ZXVRsma$1bp59T`I!o_AzM=b#!T0kKcTLy|so$M^)L zxJQxXNGleTfK+tX>=54HsQ{QK26G#~eP8qx2I3Jd=udMjgmvxy9>zaqvsuypCMfa8 zDUkyg6lFxllz zJ(#dP4aRIc0sMv;WKJ%`$X}CIyD#a8n9Sh;BC1%%7#9E}XL37fJZ|t0cmO++XIvUH z-7oh%!!FdzzM~yPcZ|b!GIfY$3deG1?aclCeUwi3e+AFwm4rWSanv##BEv?RYXte2 zxv3XjSQgS%&dw>GU?}84)jv{vg}I%|A+U~3Q+g=XRu$%pzb0O=D|()hkteD&ONqfE zwjSB#G_9`0Y@|CS#<8a$07*Pr65~f%!yzOBGMZRt1A&iUeN5sn-Jb3Q4ZI}1q@K%3 zm&-e|l~}G$GTly$kg&wZegH60r)l@V`2J1Lll{l~dnJkxB-uo9w?0F{W7hX-B5*)t z&jxjl)F}kZ)BX6{z3y|YxdC9IzUK)L)Dru~UiK(xxSGGUZ&1^Q)|pr9_|+nSF5lGn z^&xfO6Nc_(akuY#A2sWj$`iYYC0=eL%0=8F^kxGlW2reOL2+K#@Xld&VYhCdQHyfX zv$lzRVHQCj+!Tmtk%oE3C(u48FrW5K_A1FM zsrpST{R`dGf*1M3q!+E0*OeD%(g?`p^U<`;2tM>zNiPbF5a_9m;w?XUveVGnka*0f zdz&k_hJAk+N^^E*{wF~0%R`v`P*&NA9;FuBGANOPgcT!WnIK?CsOrJ`T%;fhj~N02 z+tLMOvtVPXv&(o_S4H*q3H9bgjHbshH$?=iE1Du=JnC1J0TD9?Fo%cg${7J7CNpa=y>+%IdfZ1wYtqP?oijBSuIrEOn~?u)c5SuFhj^@r1rf;b znEvr&RmxN-6?8D!#lRlY7m@vHpi%Re=7Ax6V3Duqfz_*Mo1#RHR$>{AF=LfuH%OF1 zDscIun$HlWC<@pH7FHUfZ_p@oq=Wzgw+XBFvRbs)4f3Qh$={0jig)HBJ@hQac}K(g zpQ2X+r??m~BYSu&nrN9WcS2pqcHMgFhP2o(or2OVri2GzcWKt0yqY%EfZg6SW2*VU z071D2O%{!ttd*z=a=i|XW9xf8PBF%wYvnZ%wA*c)J{q*dqg#0|ItX^o#TK}UbqEq^7m6Sh(tcPq zWsBPSU8JZ4|C!oOHQ@k7qLC1}q_Fz9*L+QVMV1Gj*CSwr|G_E7Qu$JI9T#lB{JoHM)=eR?`$YyA~Tr@8~GDWJSt|8wHbroFTUz%rEGg=I!mjM)9lt9#ubgU%}yL0ow8-1a`| z8y5E?!{nXD5h;r^@QmXkb*ZT=gQ@}X*hnf_RtwJ{{`KP%BEY*o%n#&(gkY|ju?oqG z^&?b*f%f~A;12mK%Rgo>H!Y0|v$%j@;Dz%y0{GRe6D3oT#YzloJFR<2u z=Oe$!mTpNj=$?93Z7LIoKzh~9a3kbn)HowT3!9Oj@#Rpb-Ac34Ke$dQ&sOH@gEO|I z=RR?ThMGt2iRI-$NC3c7S*_98O7mmCSsh^@z~gQA-@}N

|iQrEUH8mvhXDGp2ZS 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

nPsv_NeZW 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�#eOm{ytRt?Y`kLrra0IzjB*~~s&y>g;60Dti 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 JkT!q+e*l11la&Af literal 0 HcmV?d00001 diff --git a/experiments/long_horizon_benchmarks/time_features.py b/experiments/long_horizon_benchmarks/time_features.py new file mode 100644 index 0000000..0bd90a9 --- /dev/null +++ b/experiments/long_horizon_benchmarks/time_features.py @@ -0,0 +1,215 @@ +# Copyright 2024 The Google Research Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Directory to extract time covariates. + +Extract time covariates from datetime. +""" + +import numpy as np +import pandas as pd +from pandas.tseries.holiday import EasterMonday +from pandas.tseries.holiday import GoodFriday +from pandas.tseries.holiday import Holiday +from pandas.tseries.holiday import SU +from pandas.tseries.holiday import TH +from pandas.tseries.holiday import USColumbusDay +from pandas.tseries.holiday import USLaborDay +from pandas.tseries.holiday import USMartinLutherKingJr +from pandas.tseries.holiday import USMemorialDay +from pandas.tseries.holiday import USPresidentsDay +from pandas.tseries.holiday import USThanksgivingDay +from pandas.tseries.offsets import DateOffset +from pandas.tseries.offsets import Day +from pandas.tseries.offsets import Easter +from sklearn.preprocessing import StandardScaler +from tqdm import tqdm + + +# This is 183 to cover half a year (in both directions), also for leap years +# + 17 as Eastern can be between March, 22 - April, 25 +MAX_WINDOW = 183 + 17 + + +def _distance_to_holiday(holiday): + """Return distance to given holiday.""" + + def _distance_to_day(index): + holiday_date = holiday.dates( + index - pd.Timedelta(days=MAX_WINDOW), + index + pd.Timedelta(days=MAX_WINDOW), + ) + assert ( + len(holiday_date) != 0 # pylint: disable=g-explicit-length-test + ), f"No closest holiday for the date index {index} found." + # It sometimes returns two dates if it is exactly half a year after the + # holiday. In this case, the smaller distance (182 days) is returned. + return (index - holiday_date[0]).days + + return _distance_to_day + + +EasterSunday = Holiday( + "Easter Sunday", month=1, day=1, offset=[Easter(), Day(0)] +) +NewYearsDay = Holiday("New Years Day", month=1, day=1) +SuperBowl = Holiday( + "Superbowl", month=2, day=1, offset=DateOffset(weekday=SU(1)) +) +MothersDay = Holiday( + "Mothers Day", month=5, day=1, offset=DateOffset(weekday=SU(2)) +) +IndependenceDay = Holiday("Independence Day", month=7, day=4) +ChristmasEve = Holiday("Christmas", month=12, day=24) +ChristmasDay = Holiday("Christmas", month=12, day=25) +NewYearsEve = Holiday("New Years Eve", month=12, day=31) +BlackFriday = Holiday( + "Black Friday", + month=11, + day=1, + offset=[pd.DateOffset(weekday=TH(4)), Day(1)], +) +CyberMonday = Holiday( + "Cyber Monday", + month=11, + day=1, + offset=[pd.DateOffset(weekday=TH(4)), Day(4)], +) + +HOLIDAYS = [ + EasterMonday, + GoodFriday, + USColumbusDay, + USLaborDay, + USMartinLutherKingJr, + USMemorialDay, + USPresidentsDay, + USThanksgivingDay, + EasterSunday, + NewYearsDay, + SuperBowl, + MothersDay, + IndependenceDay, + ChristmasEve, + ChristmasDay, + NewYearsEve, + BlackFriday, + CyberMonday, +] + + +class TimeCovariates(object): + """Extract all time covariates except for holidays.""" + + def __init__( + self, + datetimes, + normalized=True, + holiday=False, + ): + """Init function. + + Args: + datetimes: pandas DatetimeIndex (lowest granularity supported is min) + normalized: whether to normalize features or not + holiday: fetch holiday features or not + + Returns: + None + """ + self.normalized = normalized + self.dti = datetimes + self.holiday = holiday + + def _minute_of_hour(self): + minutes = np.array(self.dti.minute, dtype=np.float32) + if self.normalized: + minutes = minutes / 59.0 - 0.5 + return minutes + + def _hour_of_day(self): + hours = np.array(self.dti.hour, dtype=np.float32) + if self.normalized: + hours = hours / 23.0 - 0.5 + return hours + + def _day_of_week(self): + day_week = np.array(self.dti.dayofweek, dtype=np.float32) + if self.normalized: + day_week = day_week / 6.0 - 0.5 + return day_week + + def _day_of_month(self): + day_month = np.array(self.dti.day, dtype=np.float32) + if self.normalized: + day_month = day_month / 30.0 - 0.5 + return day_month + + def _day_of_year(self): + day_year = np.array(self.dti.dayofyear, dtype=np.float32) + if self.normalized: + day_year = day_year / 364.0 - 0.5 + return day_year + + def _month_of_year(self): + month_year = np.array(self.dti.month, dtype=np.float32) + if self.normalized: + month_year = month_year / 11.0 - 0.5 + return month_year + + def _week_of_year(self): + week_year = np.array(self.dti.strftime("%U").astype(int), dtype=np.float32) + if self.normalized: + week_year = week_year / 51.0 - 0.5 + return week_year + + def _get_holidays(self): + dti_series = self.dti.to_series() + hol_variates = np.vstack([ + dti_series.apply(_distance_to_holiday(h)).values for h in tqdm(HOLIDAYS) + ]) + # hol_variates is (num_holiday, num_time_steps), the normalization should be + # performed in the num_time_steps dimension. + return StandardScaler().fit_transform(hol_variates.T).T + + def get_covariates(self): + """Get all time covariates.""" + moh = self._minute_of_hour().reshape(1, -1) + hod = self._hour_of_day().reshape(1, -1) + dom = self._day_of_month().reshape(1, -1) + dow = self._day_of_week().reshape(1, -1) + doy = self._day_of_year().reshape(1, -1) + moy = self._month_of_year().reshape(1, -1) + woy = self._week_of_year().reshape(1, -1) + + all_covs = [ + moh, + hod, + dom, + dow, + doy, + moy, + woy, + ] + columns = ["moh", "hod", "dom", "dow", "doy", "moy", "woy"] + if self.holiday: + hol_covs = self._get_holidays() + all_covs.append(hol_covs) + columns += [f"hol_{i}" for i in range(len(HOLIDAYS))] + + return pd.DataFrame( + data=np.vstack(all_covs).transpose(), + columns=columns, + index=self.dti, + ) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..f78e039 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +# This project can be installed with `python3 -m pip install -e .` from the main directory. + +[project] +name = "timesfm" +description = "Open weights time-series foundation model from Google Research." +version = "0.0.1" +dependencies = [ + "paxml>=1.4.0", + "praxis>=1.4.0", + "jax>=0.4.26", + "numpy>=1.26.4", + "pandas>=2.1.4", +] +authors = [ + {name = "Rajat Sen", email = "senrajat@google.com"}, + {name = "Yichen Zhou", email = "yichenzhou@google.com"}, + {name = "Abhimanyu Das", email = "abhidas@google.com"}, + {name = "Petros Mol", email = "pmol@google.com"}, +] + + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" diff --git a/src/patched_decoder.py b/src/patched_decoder.py new file mode 100644 index 0000000..b0decf8 --- /dev/null +++ b/src/patched_decoder.py @@ -0,0 +1,461 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Pax ML model for patched time-series decoder. + +The file implements Residual MLPs, Patched Decoder layers and PAX ML models. +""" + +import dataclasses +from typing import Optional, Tuple + +import einshape as es +from jax import lax +import jax.numpy as jnp +from praxis import base_layer +from praxis import layers +from praxis import pax_fiddle +from praxis import py_utils +from praxis import pytypes +from praxis.layers import activations +from praxis.layers import embedding_softmax +from praxis.layers import linears +from praxis.layers import normalizations +from praxis.layers import stochastics +from praxis.layers import transformers + + +# PAX shortcuts +NestedMap = py_utils.NestedMap +JTensor = pytypes.JTensor + +LayerTpl = pax_fiddle.Config[base_layer.BaseLayer] +template_field = base_layer.template_field + + +PAD_VAL = 1123581321.0 +DEFAULT_QUANTILES = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] + +# NestedMap keys +_INPUT_TS = "input_ts" +_INPUT_PADDING = "input_padding" +_OUTPUT_TS = "output_ts" +_FREQ = "freq" +_OUTPUT_TOKENS = "output_tokens" +_STATS = "stats" + + +# Small numerical value. +_TOLERANCE = 1e-7 + + +def _shift_padded_seq(mask: JTensor, seq: JTensor) -> JTensor: + """Shifts rows of seq based on the first 0 in each row of the mask.""" + num = seq.shape[1] + + # Find the index of the first 0 in each row of the mask + first_zero_idx = jnp.argmin(mask, axis=1) + + # Create a range array for indexing + idx_range = jnp.arange(num) + + def shift_row(carry, x): + seq_row, shift = x + shifted_idx = (idx_range - shift) % num + shifted_row = seq_row[shifted_idx] + return carry, shifted_row + + # Use lax.scan to shift each row of seq based on the corresponding + # first_zero_idx. + _, shifted_seq = lax.scan(shift_row, None, (seq, first_zero_idx)) + + return shifted_seq + + +class ResidualBlock(base_layer.BaseLayer): + """Simple feedforward block with residual connection. + + Attributes: + input_dims: input dimension. + hidden_dims: hidden dimension. + output_dims: output dimension. + dropout_prob: dropout probability. + layer_norm: whether to use layer norm or not. + dropout_tpl: config for dropout. + ln_tpl: config for layer norm. + act_tpl: config for activation in hidden layer. + """ + + input_dims: int = 0 + hidden_dims: int = 0 + output_dims: int = 0 + dropout_prob: float = 0.0 + layer_norm: bool = False + dropout_tpl: LayerTpl = template_field(stochastics.Dropout) + ln_tpl: LayerTpl = template_field(normalizations.LayerNorm) + act_tpl: LayerTpl = template_field(activations.Swish) + + def setup(self): + lnorm_tpl = self.ln_tpl.clone() + lnorm_tpl.dim = self.output_dims + self.create_child("ln_layer", lnorm_tpl) + + dropout_tpl = self.dropout_tpl.clone() + dropout_tpl.keep_prob = 1.0 - self.dropout_prob + self.create_child("dropout", dropout_tpl) + + self.create_child( + "hidden_layer", + pax_fiddle.Config( + linears.FeedForward, + input_dims=self.input_dims, + output_dims=self.hidden_dims, + activation_tpl=self.act_tpl.clone(), + ), + ) + + self.create_child( + "output_layer", + pax_fiddle.Config( + linears.FeedForward, + input_dims=self.hidden_dims, + output_dims=self.output_dims, + activation_tpl=pax_fiddle.Config(activations.Identity), + ), + ) + + self.create_child( + "residual_layer", + pax_fiddle.Config( + linears.FeedForward, + input_dims=self.input_dims, + output_dims=self.output_dims, + activation_tpl=pax_fiddle.Config(activations.Identity), + ), + ) + + def __call__(self, inputs: JTensor) -> JTensor: + hidden = self.hidden_layer(inputs) + output = self.output_layer(hidden) + output = self.dropout(output) + residual = self.residual_layer(inputs) + if self.layer_norm: + return self.ln_layer(output + residual) + else: + return output + residual + + +def _masked_mean_std( + inputs: JTensor, padding: JTensor +) -> Tuple[JTensor, JTensor]: + """Calculates mean and standard deviation of arr across axis 1. + + It should exclude values where pad is 1. + + Args: + inputs: A JAX array of shape [b, n, p]. + padding: A JAX array of shape [b, n, p] with values 0 or 1. + + Returns: + A tuple containing the mean and standard deviation of arr. We return the + statistics of the first patch with more than three non-padded values. + """ + # Selecting the first pad with more than 3 unpadded values. + pad_sum = jnp.sum(1 - padding, axis=2) + + def _get_patch_index(arr: JTensor): + indices = jnp.argmax(arr >= 3, axis=1) + row_sum = (arr >= 3).sum(axis=1) + return jnp.where(row_sum == 0, arr.shape[1] - 1, indices) + + patch_indices = _get_patch_index(pad_sum) + bidxs = jnp.arange(inputs.shape[0]) + + arr = inputs[bidxs, patch_indices, :] + pad = padding[bidxs, patch_indices, :] + + # Create a mask where P is 0 + mask = 1 - pad + + # Calculate the number of valid elements + num_valid_elements = jnp.sum(mask, axis=1) + + num_valid_elements = jnp.where(num_valid_elements == 0, 1, num_valid_elements) + + # Calculate the masked sum and squared sum of M + masked_sum = jnp.sum(arr * mask, axis=1) + masked_squared_sum = jnp.sum((arr * mask) ** 2, axis=1) + + # Calculate the masked mean and standard deviation + masked_mean = masked_sum / num_valid_elements + masked_var = masked_squared_sum / num_valid_elements - masked_mean**2 + masked_var = jnp.where(masked_var < 0.0, 0.0, masked_var) + masked_std = jnp.sqrt(masked_var) + + return masked_mean, masked_std + + +def _create_quantiles() -> list[float]: + """Returns the quantiles for forecasting.""" + return DEFAULT_QUANTILES + + +class PatchedTimeSeriesDecoder(base_layer.BaseLayer): + """Patch decoder layer for time-series foundation model. + + Attributes: + patch_len: length of input patches. + horizon_len: length of output patches. Referred to as `output_patch_len` + during inference. + model_dims: model dimension of stacked transformer layer. + hidden_dims: hidden dimensions in fully connected layers. + quantiles: list of quantiles for non prob model. + residual_block_tpl: config for residual block. + stacked_transformer_params_tpl: config for stacked transformer. + use_freq: whether to use frequency encoding. + + In all of what followed, except specified otherwise, B is batch size, T is + sequence length of time-series. N is the number of input patches that can be + obtained from T. P is the input patch length and H is the horizon length. Q is + number of output logits. D is model dimension. + """ + + patch_len: int = 0 + horizon_len: int = 0 + model_dims: int = 0 + hidden_dims: int = 0 + quantiles: list[float] = dataclasses.field(default_factory=_create_quantiles) + residual_block_tpl: LayerTpl = template_field(ResidualBlock) + stacked_transformer_params_tpl: LayerTpl = template_field( + transformers.StackedTransformer + ) + use_freq: bool = True + + def setup(self) -> None: + """Construct the model.""" + num_outputs = len(self.quantiles) + 1 + + stl = self.stacked_transformer_params_tpl.clone() + stl.model_dims = self.model_dims + stl.hidden_dims = self.hidden_dims + stl.mask_self_attention = True + + self.create_child("stacked_transformer_layer", stl) + + input_resl = self.residual_block_tpl.clone() + ff_in_dims = 2 * self.patch_len + input_resl.input_dims = ff_in_dims + input_resl.hidden_dims = self.hidden_dims + input_resl.output_dims = self.model_dims + self.create_child( + "input_ff_layer", + input_resl, + ) + + horizon_resl = self.residual_block_tpl.clone() + horizon_resl.input_dims = self.model_dims + horizon_resl.hidden_dims = self.hidden_dims + horizon_resl.output_dims = self.horizon_len * num_outputs + self.create_child( + "horizon_ff_layer", + horizon_resl, + ) + + self.create_child( + "position_emb", + pax_fiddle.Config( + layers.PositionalEmbedding, embedding_dims=self.model_dims + ), + ) + + if self.use_freq: + self.create_child( + "freq_emb", + pax_fiddle.Config( + embedding_softmax.Embedding, + num_classes=3, + input_dims=self.model_dims, + ), + ) + + def transform_decode_state( + self, transform_fn: base_layer.DecodeStateTransformFn + ) -> None: + """Transforms all decode state variables based on transform_fn.""" + self.stacked_transformer_layer.transform_decode_state(transform_fn) + + def _forward_transform( + self, inputs: JTensor, patched_pads: JTensor + ) -> Tuple[JTensor, Tuple[JTensor, JTensor]]: + """Input is of shape [B, N, P].""" + mu, sigma = _masked_mean_std(inputs, patched_pads) + sigma = jnp.where(sigma < _TOLERANCE, 1.0, sigma) + # Normalize each patch. + outputs = (inputs - mu[:, None, None]) / sigma[:, None, None] + outputs = jnp.where( + jnp.abs(inputs - PAD_VAL) < _TOLERANCE, PAD_VAL, outputs + ) + return outputs, (mu, sigma) + + def _reverse_transform( + self, outputs: JTensor, stats: Tuple[JTensor, JTensor] + ) -> JTensor: + """Output is of shape [B, N, P, Q].""" + mu, sigma = stats + return outputs * sigma[:, None, None, None] + mu[:, None, None, None] + + def _preprocess_input( + self, + input_ts: JTensor, + input_padding: JTensor, + pos_emb: Optional[JTensor] = None, + ) -> Tuple[JTensor, JTensor, Optional[Tuple[JTensor, JTensor]], JTensor]: + """Preprocess input for stacked transformer.""" + # Reshape into patches. + patched_inputs = es.jax_einshape("b(np)->bnp", input_ts, p=self.patch_len) + input_padding = jnp.where( + jnp.abs(input_ts - PAD_VAL) < _TOLERANCE, 1, input_padding + ) + patched_pads = es.jax_einshape( + "b(np)->bnp", input_padding, p=self.patch_len + ) + patched_inputs, stats = self._forward_transform( + patched_inputs, patched_pads + ) + # B x N x D + patched_inputs = patched_inputs * (1.0 - patched_pads) + concat_inputs = jnp.concatenate([patched_inputs, patched_pads], axis=-1) + model_input = self.input_ff_layer(concat_inputs) + # A patch should not be padded even if there is at least one zero. + patched_padding = jnp.min(patched_pads, axis=-1) + + if pos_emb is None: + position_emb = self.position_emb(seq_length=model_input.shape[1]) + else: + position_emb = pos_emb + if self.do_eval: + if position_emb.shape[0] != model_input.shape[0]: + position_emb = jnp.repeat(position_emb, model_input.shape[0], axis=0) + position_emb = _shift_padded_seq(patched_padding, position_emb) + model_input += position_emb + + return model_input, patched_padding, stats, patched_inputs + + def _postprocess_output( + self, + model_output: JTensor, + num_outputs: int, + stats: Tuple[JTensor, JTensor], + ) -> JTensor: + """Postprocess output of stacked transformer.""" + # B x N x (H.Q) + output_ts = self.horizon_ff_layer(model_output) + output_ts = es.jax_einshape( + "bn(hq)->bnhq", output_ts, q=num_outputs, h=self.horizon_len + ) + return self._reverse_transform(output_ts, stats) + + def __call__(self, inputs: NestedMap) -> NestedMap: + """PatchTST call. + + Args: + inputs: A NestedMap containing (1) input_ts: input sequence of shape [B, + T] where T must be multiple of patch_length; (2) input_padding: that + contains padding map. + + Returns: + A nested map with two keys: + (1) 'output_tokens' of shape [B, N, D]. + (2) 'output_ts' of shape [B, N, H, Q] + (3) 'stats' a Tuple of statistics for renormalization. + """ + input_ts, input_padding = inputs[_INPUT_TS], inputs[_INPUT_PADDING] + num_outputs = len(self.quantiles) + 1 + model_input, patched_padding, stats, _ = self._preprocess_input( + input_ts=input_ts, + input_padding=input_padding, + ) + if self.use_freq: + freq = inputs[_FREQ].astype(jnp.int32) + f_emb = self.freq_emb(freq) # B x 1 x D + f_emb = jnp.repeat(f_emb, model_input.shape[1], axis=1) + model_input += f_emb + model_output = self.stacked_transformer_layer(model_input, patched_padding) + + output_ts = self._postprocess_output(model_output, num_outputs, stats) + return NestedMap( + {_OUTPUT_TOKENS: model_output, _OUTPUT_TS: output_ts, _STATS: stats} + ) + + def decode( + self, + inputs: NestedMap, + horizon_len: int, + output_patch_len: Optional[int] = None, + max_len: int = 512, + ) -> tuple[JTensor, JTensor]: + """Auto-regressive decoding without caching. + + Args: + inputs: input time-series and paddings. Time-series shape B x C, padding + shape shape B x (C + H) where H is the prediction length. + horizon_len: prediction length. + output_patch_len: output length to be fetched from one step of + auto-regressive decoding. + max_len: maximum training context length. + + Returns: + Tuple of two forecasting results: + - Point (mean) output predictions as a tensor with shape B x H. + - Full predictions (mean and quantiles) as a tensor with shape + B x H x (1 + # quantiles). + """ + final_out = inputs[_INPUT_TS] + inp_time_len = final_out.shape[1] + paddings = inputs[_INPUT_PADDING] + if self.use_freq: + freq = inputs[_FREQ].astype(jnp.int32) + else: + freq = jnp.zeros([final_out.shape[0], 1], dtype=jnp.int32) + full_outputs = [] + if paddings.shape[1] != final_out.shape[1] + horizon_len: + raise ValueError( + "Length of paddings must match length of input + horizon_len:" + f" {paddings.shape[1]} != {final_out.shape[1]} + {horizon_len}" + ) + if output_patch_len is None: + output_patch_len = self.horizon_len + num_decode_patches = ( + horizon_len + output_patch_len - 1 + ) // output_patch_len + for _ in range(num_decode_patches): + current_padding = paddings[:, 0 : final_out.shape[1]] + input_ts = final_out[:, -max_len:] + input_padding = current_padding[:, -max_len:] + model_input = NestedMap( + input_ts=input_ts, + input_padding=input_padding, + freq=freq, + ) + fprop_outputs = self(model_input)[_OUTPUT_TS] + # (full batch, last patch, output_patch_len, index of mean forecast = 0) + new_ts = fprop_outputs[:, -1, :output_patch_len, 0] + # (full batch, last patch, output_patch_len, all output indices) + full_outputs.append(fprop_outputs[:, -1, :output_patch_len, :]) + final_out = jnp.concatenate([final_out, new_ts], axis=-1) + + return ( + final_out[:, inp_time_len : inp_time_len + horizon_len], + jnp.concatenate(full_outputs, axis=1)[:, 0:horizon_len, :], + ) diff --git a/src/timesfm.py b/src/timesfm.py new file mode 100644 index 0000000..b795450 --- /dev/null +++ b/src/timesfm.py @@ -0,0 +1,594 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""TimesFM forecast API for inference.""" + +import logging +import multiprocessing +import time +from typing import Any, Literal, Sequence + +import einshape as es +import jax +import jax.numpy as jnp +import numpy as np +import pandas as pd +from paxml import checkpoints +from paxml import tasks_lib +from praxis import base_hyperparams +from praxis import base_layer +from praxis import pax_fiddle +from praxis import py_utils +from praxis import pytypes +from praxis.layers import normalizations +from praxis.layers import transformers +from src import patched_decoder +from utilsforecast.processing import make_future_dataframe + +instantiate = base_hyperparams.instantiate +NestedMap = py_utils.NestedMap +JTensor = pytypes.JTensor + + +def process_group(key, group, value_name, forecast_context_len): + group = group.tail(forecast_context_len) + return np.array(group[value_name], dtype=np.float32), key + + +def moving_average(arr, window_size): + """Calculates the moving average using NumPy's convolution function.""" + # Pad with zeros to handle initial window positions + arr_padded = np.pad(arr, (window_size - 1, 0), "constant") + smoothed_arr = ( + np.convolve(arr_padded, np.ones(window_size), "valid") / window_size + ) + return [smoothed_arr, arr - smoothed_arr] + + +def freq_map(freq: str): + """Returns the frequency map for the given frequency string.""" + freq = str.upper(freq) + if ( + freq.endswith("H") + or freq.endswith("T") + or freq.endswith("MIN") + or freq.endswith("D") + or freq.endswith("B") + or freq.endswith("U") + ): + return 0 + elif freq.endswith("W") or freq.endswith("M"): + return 1 + elif freq.endswith("Y") or freq.endswith("Q"): + return 2 + else: + raise ValueError(f"Invalid frequency: {freq}") + + +class TimesFm: + """TimesFM forecast API for inference. + + This class is the scaffolding for calling TimesFM forecast. To properly use: + 1. Create an instance with the correct hyperparameters of a TimesFM model. + 2. Call `load_from_checkpoint` to load a compatible checkpoint. + 3. Call `forecast` for inference. + + Given the model size, this API does not shard the model weights for SPMD. All + parallelism happens on the data dimension. + + Compilation happens during the first time `forecast` is called and uses the + `per_core_batch_size` to set and freeze the input signature. Subsequent calls + to `forecast` reflect the actual inference latency. + + Attributes: + per_core_batch_size: Batch size on each core for data parallelism. + backend: One of "cpu", "gpu" or "tpu". + num_devices: Number of cores provided the backend. + global_batch_size: per_core_batch_size * num_devices. Each batch of + inference task will be padded with respect to global_batch_size to + minimize latency. + context_len: Largest context length the model allows for each decode call. + This technically can be any large, but practically should set to the + context length the checkpoint was trained with. + horizon_len: Forecast horizon. + input_patch_len: Input patch len. + output_patch_len: Output patch len. How many timepoints is taken from a + single step of autoregressive decoding. Can be set as the training horizon + of the checkpoint. + mesh_shape: Shape of the data parallelism mesh. + mesh_name: Names of the data parallelism mesh. + model_p: Configuration of the TimesFM model deduced from the hparams. + """ + + def _logging(self, s): + if self._verbose: + print(s) + + def __init__( + self, + context_len: int, + horizon_len: int, + input_patch_len: int, + output_patch_len: int, + num_layers: int, + model_dims: int, + per_core_batch_size: int = 32, + backend: Literal["cpu", "gpu", "tpu"] = "cpu", + quantiles: Sequence[float] | None = None, + verbose: bool = True, + ) -> None: + """Initializes the TimesFM forecast API. + + Args: + context_len: Largest context length the model allows for each decode call. + This technically can be any large, but practically should set to the + context length the checkpoint was trained with. + horizon_len: Forecast horizon. + input_patch_len: Input patch len. + output_patch_len: Output patch len. How many timepoints is taken from a + single step of autoregressive decoding. Can be set as the training + horizon of the checkpoint. + num_layers: Number of transformer layers. + model_dims: Model dimension. + per_core_batch_size: Batch size on each core for data parallelism. + backend: One of "cpu", "gpu" or "tpu". + quantiles: list of output quantiles supported by the model. + verbose: Whether to print logging messages. + """ + self.per_core_batch_size = per_core_batch_size + self.backend = backend + self.num_devices = jax.local_device_count(self.backend) + self.global_batch_size = self.per_core_batch_size * self.num_devices + + self.context_len = context_len + self.horizon_len = horizon_len + self.input_patch_len = input_patch_len + self.output_patch_len = output_patch_len + + self.mesh_shape = [1, self.num_devices, 1] + self.mesh_name = ["replica", "data", "mdl"] + if quantiles is None: + quantiles = patched_decoder.DEFAULT_QUANTILES + + self.model_p = pax_fiddle.Config( + patched_decoder.PatchedTimeSeriesDecoder, + name="patched_decoder", + horizon_len=self.output_patch_len, + patch_len=input_patch_len, + model_dims=model_dims, + hidden_dims=model_dims, + residual_block_tpl=pax_fiddle.Config(patched_decoder.ResidualBlock), + quantiles=quantiles, + use_freq=True, + stacked_transformer_params_tpl=pax_fiddle.Config( + transformers.StackedTransformer, + num_heads=16, + num_layers=num_layers, + transformer_layer_params_tpl=pax_fiddle.Config( + transformers.Transformer, + ln_tpl=pax_fiddle.Config( + normalizations.RmsNorm, + ), + ), + ), + ) + + self._key1, self._key2 = jax.random.split(jax.random.PRNGKey(42)) + self._model = None + self._train_state = None + self._pmapped_decode = None + self._verbose = verbose + self._eval_context = base_layer.JaxContext.HParams(do_eval=True) + try: + multiprocessing.set_start_method("spawn") + except RuntimeError: + print("Multiprocessing context has already been set.") + + def _get_sample_inputs(self): + return { + "input_ts": jnp.zeros( + ( + self.per_core_batch_size, + self.context_len + self.output_patch_len, + ), + dtype=jnp.float32, + ), + "input_padding": jnp.zeros( + ( + self.per_core_batch_size, + self.context_len + self.output_patch_len, + ), + dtype=jnp.float32, + ), + "freq": jnp.zeros( + ( + self.per_core_batch_size, + 1, + ), + dtype=jnp.int32, + ), + } + + def load_from_checkpoint( + self, + checkpoint_path: str, + checkpoint_type: checkpoints.CheckpointType = checkpoints.CheckpointType.FLAX, + step: int | None = None, + ) -> None: + """Loads a checkpoint and compiles the decoder. + + Args: + checkpoint_path: path to the checkpoint directory. + checkpoint_type: type of PAX checkpoint + step: step of the checkpoint to load. If `None`, load lastest checkpoint. + """ + # Initialize the model weights. + self._logging("Constructing model weights.") + start_time = time.time() + self._model = instantiate(self.model_p) + var_weight_hparams = self._model.abstract_init_with_metadata( + self._get_sample_inputs(), do_eval=True + ) + train_state_partition_specs = tasks_lib.create_state_partition_specs( + var_weight_hparams, + mesh_shape=self.mesh_shape, + mesh_axis_names=self.mesh_name, + discard_opt_states=True, + learners=None, + ) + train_state_local_shapes = tasks_lib.create_state_unpadded_shapes( + var_weight_hparams, + discard_opt_states=True, + learners=None, + ) + self._logging( + f"Constructed model weights in {time.time() - start_time:.2f} seconds." + ) + + # Load the model weights. + self._logging(f"Restoring checkpoint from {checkpoint_path}.") + start_time = time.time() + self._train_state = checkpoints.restore_checkpoint( + train_state_local_shapes, + checkpoint_dir=checkpoint_path, + checkpoint_type=checkpoint_type, + state_specs=train_state_partition_specs, + step=step, + ) + self._logging( + f"Restored checkpoint in {time.time() - start_time:.2f} seconds." + ) + + # Initialize and jit the decode fn. + def _decode(inputs): + assert self._model is not None + assert self._train_state is not None + return self._model.apply( + self._train_state.mdl_vars, + inputs, + horizon_len=self.horizon_len, + output_patch_len=self.output_patch_len, + max_len=self.context_len, + rngs={ + base_layer.PARAMS: self._key1, + base_layer.RANDOM: self._key2, + }, + method=self._model.decode, + ) + + self._logging("Jitting decoding.") + start_time = time.time() + self._pmapped_decode = jax.pmap( + _decode, + axis_name="batch", + devices=jax.devices(self.backend), + backend=self.backend, + axis_size=self.num_devices, + ) + with base_layer.JaxContext.new_context(hparams=self._eval_context): + _ = self._pmapped_decode( + NestedMap({ + "input_ts": jnp.zeros( + ( + self.num_devices, + self.per_core_batch_size, + self.context_len, + ), + dtype=jnp.float32, + ), + "input_padding": jnp.zeros( + ( + self.num_devices, + self.per_core_batch_size, + self.context_len + self.horizon_len, + ), + dtype=jnp.float32, + ), + "date_features": None, + "freq": jnp.zeros( + (self.num_devices, self.per_core_batch_size, 1), + dtype=jnp.int32, + ), + }) + ) + self._logging(f"Jitted decoding in {time.time() - start_time:.2f} seconds.") + + def _preprocess( + self, inputs: Sequence[np.array], freq: Sequence[int] + ) -> tuple[np.array, np.array, int]: + """Formats and pads raw inputs to feed into the model. + + This function both pads each time series to match the context length, and + pads the inputs to meet the SPMD shape requirement. + + Args: + inputs: A list of 1d JTensors. Each JTensor is the context time series of + a single forecast task. + freq: list of frequencies + + Returns: + A tuple of: + - the padded input time series to meet the model required context. + - the padding indicator. + - the number of padded examples for SPMD so that each core has the same + number (a multiple of `batch_size`) of examples. + """ + + input_ts, input_padding, inp_freq = [], [], [] + + pmap_pad = ( + (len(inputs) - 1) // self.global_batch_size + 1 + ) * self.global_batch_size - len(inputs) + + for i, ts in enumerate(inputs): + input_len = ts.shape[0] + padding = np.zeros(shape=(input_len + self.horizon_len,), dtype=float) + if input_len < self.context_len: + num_front_pad = self.context_len - input_len + ts = np.concatenate( + [np.zeros(shape=(num_front_pad,), dtype=float), ts], axis=0 + ) + padding = np.concatenate( + [np.ones(shape=(num_front_pad,), dtype=float), padding], axis=0 + ) + elif input_len > self.context_len: + ts = ts[-self.context_len :] + padding = padding[-(self.context_len + self.horizon_len) :] + + input_ts.append(ts) + input_padding.append(padding) + inp_freq.append(freq[i]) + + # Padding the remainder batch. + for _ in range(pmap_pad): + input_ts.append(input_ts[-1]) + input_padding.append(input_padding[-1]) + inp_freq.append(inp_freq[-1]) + + return ( + np.stack(input_ts, axis=0), + np.stack(input_padding, axis=0), + np.array(inp_freq).astype(np.int32).reshape(-1, 1), + pmap_pad, + ) + + def forecast( + self, + inputs: Sequence[Any], + freq: Sequence[int] | None = None, + window_size: int | None = None, + forecast_context_len: int | None = None, + ) -> tuple[JTensor, JTensor]: + """Forecasts on a list of time series. + + Args: + inputs: list of time series forecast contexts. Each context time series + should be in a format convertible to JTensor by `jnp.array`. + freq: frequency of each context time series. 0 for high frequency + (default), 1 for medium, and 2 for low. Notice this is different from + the `freq` required by `forecast_on_df`. + window_size: window size of trend + residual decomposition. If None then + we do not do decomposition. + forecast_context_len: optional max context length. + + Returns: + A tuple for JTensors: + - the mean forecast of size (# inputs, # forecast horizon), + - the full forecast (mean + quantiles) of size + (# inputs, # forecast horizon, 1 + # quantiles). + + Raises: + ValueError: If the checkpoint is not properly loaded. + """ + if not self._train_state or not self._model: + raise ValueError( + "Checkpoint not loaded. Call `load_from_checkpoint` before" + " `forecast`." + ) + if forecast_context_len is None: + forecast_context_len = self.context_len + inputs = [np.array(ts)[-forecast_context_len:] for ts in inputs] + inp_min = np.min([np.min(ts) for ts in inputs]) + + if window_size is not None: + new_inputs = [] + for ts in inputs: + new_inputs.extend(moving_average(ts, window_size)) + inputs = new_inputs + + if freq is None: + logging.info("No frequency provided via `freq`. Default to high (0).") + freq = [0] * len(inputs) + + input_ts, input_padding, inp_freq, pmap_pad = self._preprocess(inputs, freq) + with base_layer.JaxContext.new_context(hparams=self._eval_context): + mean_outputs = [] + full_outputs = [] + assert input_ts.shape[0] % self.global_batch_size == 0 + for i in range(input_ts.shape[0] // self.global_batch_size): + input_ts_in = jnp.array( + input_ts[ + i * self.global_batch_size : (i + 1) * self.global_batch_size + ] + ) + input_padding_in = jnp.array( + input_padding[ + i * self.global_batch_size : (i + 1) * self.global_batch_size + ], + ) + inp_freq_in = jnp.array( + inp_freq[ + i * self.global_batch_size : (i + 1) * self.global_batch_size, : + ], + dtype=jnp.int32, + ) + pmapped_inputs = NestedMap({ + "input_ts": es.jax_einshape( + "(db)...->db...", + input_ts_in, + d=self.num_devices, + ), + "input_padding": es.jax_einshape( + "(db)...->db...", + input_padding_in, + d=self.num_devices, + ), + "date_features": None, + "freq": es.jax_einshape( + "(db)...->db...", + inp_freq_in, + d=self.num_devices, + ), + }) + mean_output, full_output = self._pmapped_decode(pmapped_inputs) + mean_output = es.jax_einshape( + "db...->(db)...", mean_output, d=self.num_devices + ) + full_output = es.jax_einshape( + "db...->(db)...", full_output, d=self.num_devices + ) + mean_output = np.array(mean_output) + full_output = np.array(full_output) + mean_outputs.append(mean_output) + full_outputs.append(full_output) + + mean_outputs = np.concatenate(mean_outputs, axis=0) + full_outputs = np.concatenate(full_outputs, axis=0) + + if pmap_pad > 0: + mean_outputs = mean_outputs[:-pmap_pad, ...] + full_outputs = full_outputs[:-pmap_pad, ...] + + if window_size is not None: + mean_outputs = mean_outputs[0::2, ...] + mean_outputs[1::2, ...] + full_outputs = full_outputs[0::2, ...] + full_outputs[1::2, ...] + if inp_min >= 0: + mean_outputs = np.maximum(mean_outputs, 0.0) + full_outputs = np.maximum(full_outputs, 0.0) + return mean_outputs, full_outputs + + def forecast_on_df( + self, + inputs: pd.DataFrame, + freq: str, + forecast_context_len: int = 0, + value_name: str = "values", + model_name: str = "timesfm", + window_size: int | None = None, + num_jobs: int = 1, + ) -> pd.DataFrame: + """Forecasts on a list of time series. + + Args: + inputs: A pd.DataFrame of all time series. The dataframe should have a + `unique_id` column for identifying the time series, a `ds` column for + timestamps and a value column for the time series values. + freq: string valued `freq` of data. Notice this is different from the + `freq` required by `forecast`. See `freq_map` for allowed values. + forecast_context_len: If provided none zero, we take the last + `forecast_context_len` time-points from each series as the forecast + context instead of the `context_len` set by the model. + value_name: The name of the value column. + model_name: name of the model to be written into future df. + window_size: window size of trend + residual decomposition. If None then + we do not do decomposition. + num_jobs: number of parallel processes to use for dataframe processing. + + Returns: + Future forecasts dataframe. + """ + if not ( + "unique_id" in inputs.columns + and "ds" in inputs.columns + and value_name in inputs.columns + ): + raise ValueError( + f"DataFrame must have unique_id, ds and {value_name} columns." + ) + if not forecast_context_len: + forecast_context_len = self.context_len + logging.info("Preprocessing dataframe.") + df_sorted = inputs.sort_values(by=["unique_id", "ds"]) + new_inputs = [] + uids = [] + if num_jobs == 1: + print("Processing dataframe with single process.") + for key, group in df_sorted.groupby("unique_id"): + inp, uid = process_group( + key, + group, + value_name, + forecast_context_len, + ) + new_inputs.append(inp) + uids.append(uid) + else: + if num_jobs == -1: + num_jobs = multiprocessing.cpu_count() + print("Processing dataframe with multiple processes.") + with multiprocessing.Pool(processes=num_jobs) as pool: + results = pool.starmap( + process_group, + [ + (key, group, value_name, forecast_context_len) + for key, group in df_sorted.groupby("unique_id") + ], + ) + new_inputs, uids = zip(*results) + print("Finished preprocessing dataframe.") + freq_inps = [freq_map(freq)] * len(new_inputs) + _, full_forecast = self.forecast( + new_inputs, freq=freq_inps, window_size=window_size + ) + print("Finished forecasting.") + fcst_df = make_future_dataframe( + uids=uids, + last_times=df_sorted.groupby("unique_id")["ds"].tail(1), + h=self.horizon_len, + freq=freq, + ) + fcst_df[model_name] = full_forecast[:, 0 : self.horizon_len, 0].reshape( + -1, 1 + ) + + if self._model.quantiles is not None: + for i, q in enumerate(self._model.quantiles): + q_col = f"{model_name}-q-{q}" + fcst_df[q_col] = full_forecast[:, 0 : self.horizon_len, 1 + i].reshape( + -1, 1 + ) + if q == 0.5: + fcst_df[model_name] = fcst_df[q_col] + logging.info("Finished creating output dataframe.") + return fcst_df