Home

Awesome

OpenLTM (Open-Source Large Time-Series Models)

Large time-series models, pre-training datasets, and adaptation techniques.

[!NOTE] OpenLTM is a open codebase intending to explore the model architecture of large time-series models. It is not intended to be completely compatiable with official codebases and existing checkpoints. We aim to provide a neat pipeline to develop and evaluate large time-series models, which covers three milestone applications: supervised training, large-scale pre-training, and model adaptation.

For deep time series models and task-specific benchmarks, we recommend Time-Series-Library and this comprehensive Survey.

:triangular_flag_on_post: News (2024.12) Many thanks for the implementation of GPT4TS from khairulislam! LLMs for time series are also welcomed in this library.

:triangular_flag_on_post: News (2024.10) We include four large time-series models, release pre-training logic, and provide scripts.

What is LTM

LTM (Large Time-Series Model) is a series of scalable deep models built on foundation backbones (e.g. Transformers) and large-scale pre-training, which will be applied to a variety of time series data and diverse downstream tasks. For more information, here we provide [Slides]!

Model Checklist

We will update the following models to the checklist after a comprehensive evaluation. Welcome to give your suggestion about any interesting works 🤗

Usage

  1. Install Python 3.10. For convenience, execute the following command.
pip install -r requirements.txt
  1. Place downloaded data in the folder ./dataset. Here is a dataset summary.
  1. We provide pre-training and adaptation scripts under the folder ./scripts/. You can conduct experiments using the following examples:
# Supervised training
# (a) one-for-one forecasting
bash ./scripts/supervised/forecast/moirai_ecl.sh
# (b) one-for-all (rolling) forecasting
bash ./scripts/supervised/rolling_forecast/timer_xl_ecl.sh

# Large-scale pre-training
# (a) pre-training on UTSD
bash ./scripts/pretrain/timer_xl_utsd.sh
# (b) pre-training on ERA5
bash ./scripts/pretrain/timer_xl_era5.sh

# Model adaptation
# (a) full-shot fine-tune
bash ./scripts/adaptation/full_shot/timer_xl_etth1.sh
# (b) few-shot fine-tune
bash ./scripts/adaptation/few_shot/timer_xl_etth1.sh
  1. Develop your large time-series model.
  1. Or evaluate the zero-shot performance of large time-series models. Here we list some resources:

Efficiency

We present a proof of the computational complexity of Time-Series Transformers. See the paper for details.

[!NOTE] LTMs are still small in scale compared to large models of other modalities. We prefer to include and implement models requiring affordable training resources as efficiently as possible (for example, using several RTX 4090s or A100s).

Citation

If you find this repo helpful, please cite our paper.

@inproceedings{liutimer,
  title={Timer: Generative Pre-trained Transformers Are Large Time Series Models},
  author={Liu, Yong and Zhang, Haoran and Li, Chenyu and Huang, Xiangdong and Wang, Jianmin and Long, Mingsheng},
  booktitle={Forty-first International Conference on Machine Learning}
}

Acknowledgment

We appreciate the following GitHub repos a lot for their valuable code and efforts:

Contributors

If you have any questions or want to use the code, feel free to contact: