File size: 3,125 Bytes
dd2cc16 05a82ef 9d8ea8d aca2b5c 7ddaa6a aca2b5c dd2cc16 aca2b5c dd2cc16 79dc62b dd2cc16 544dbb8 5251b05 79303e2 99bde61 6a31c14 79303e2 6a31c14 99bde61 a792e0e 99bde61 386b658 456cf7a 99bde61 456cf7a 99bde61 0b4e50a d091651 5251b05 99bde61 a1ad3b5 d091651 99bde61 5592854 99bde61 630c277 99bde61 dd2cc16 f03953e dd2cc16 97a938f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
---
license: apache-2.0
library_name: timer
pipeline_tag: time-series-forecasting
datasets:
- thuml/UTSD
- Salesforce/lotsa_data
metrics:
- mae
- mse
tags:
- time-series
- forecasting
- foundation-models
- pretrained-models
- time-series-foundation-models
- large-time-series-models
---
# Time-Series Transformer (Timer)
Large time-series model introduced in this [paper](https://arxiv.org/abs/2402.02368) and enhanced with our [further work](https://arxiv.org/abs/2410.04803).
This version is pre-trained on **260B** time points with **84M** parameters, a lightweight generative Transformer with the state-of-the-art performance on zero-shot point forecasting:
We evaluate the model on the following benchmark: [TSLib Dataset](https://cdn-uploads.huggingface.co/production/uploads/64fbe24a2d20ced4e91de38a/VAfuvvqBALLvQUXYJPZJx.png).
# Quickstart
```
pip install transformers==4.40.1 # Use this version and Python 3.10 for stable compatibility
```
```
import torch
from transformers import AutoModelForCausalLM
# load pretrain model
model = AutoModelForCausalLM.from_pretrained('thuml/timer-base-84m', trust_remote_code=True)
# prepare input
batch_size, lookback_length = 1, 2880
seqs = torch.randn(batch_size, lookback_length)
# normalize the input to mitigate different scale
mean, std = seqs.mean(dim=-1, keepdim=True), seqs.std(dim=-1, keepdim=True)
normed_seqs = (seqs - mean) / std
# generate forecast
prediction_length = 96
normed_output = model.generate(normed_seqs, max_new_tokens=prediction_length)
output = std * normed_output + mean # rescale the output to the original scale
print(output.shape)
```
A notebook example is also provided [here](https://huggingface.co./thuml/timer-1.1-84m/blob/main/quickstart_zero_shot.ipynb). Try it out!
## Specification
* Architecture: Causal Transformer (Decoder-only)
* Pre-training Scale: 260B time points
* Context Length: up to 2880
* Parameter Count: 84M
* Patch Length: 96
* Number of Layers: 8
## Acknowledgments
This work was supported by the National Natural Science Foundation of China (62022050 and U2342217), the BNRist Innovation Fund (BNR2024RC01010), and the National Engineering Research Center for Big Data Software. The model is mostly built from the Internet public time series dataset, which comes from different research teams and providers. We sincerely thank all individuals and organizations who have contributed the data. Without their generous sharing, this model would not have existed.
## Citation
```
@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}
}
@article{liu2024timer,
title={Timer-XL: Long-Context Transformers for Unified Time Series Forecasting},
author={Liu, Yong and Qin, Guo and Huang, Xiangdong and Wang, Jianmin and Long, Mingsheng},
journal={arXiv preprint arXiv:2410.04803},
year={2024}
}
```
## License
This model is licensed under the Apache-2.0 License. |