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.