🚀 [TEMPO:基於提示的時間序列預測生成式預訓練Transformer]
TEMPO是首個用於預測任務的開源時間序列基礎模型1.0版本,能有效解決時間序列預測問題,為相關領域提供了強大的技術支持。
🚀 快速開始
TEMPO是用於時間序列預測任務的基於提示的生成式預訓練Transformer。以下為使用該模型的快速指引:
基礎用法
import numpy as np
import torch
from numpy.random import choice
from models.TEMPO import TEMPO
model = TEMPO.load_pretrained_model(
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu'),
repo_id = "Melady/TEMPO",
filename = "TEMPO-80M_v1.pth",
cache_dir = "./checkpoints/TEMPO_checkpoints"
)
input_data = np.random.rand(336)
with torch.no_grad():
predicted_values = model.predict(input_data, pred_length=96)
print("預測值:")
print(predicted_values)
高級用法
若需進行完整訓練流程,可參考以下步驟:
- 獲取數據:從Google Drive 或 Baidu Drive 下載數據,並將下載的數據放在
./dataset
文件夾中。也可以從 Google Drive 下載STL結果,並將下載的數據放在./stl
文件夾中。
- 運行腳本:
bash [ecl, etth1, etth2, ettm1, ettm2, traffic, weather].sh
- **測試/推理階段**:訓練完成後,可在零樣本設置下測試TEMPO模型:
bash [ecl, etth1, etth2, ettm1, ettm2, traffic, weather]_test.sh
✨ 主要特性
- 開源時間序列基礎模型:TEMPO是首個用於預測任務的開源時間序列基礎模型1.0版本。
- 多場景支持:可在不同數據集上進行零樣本實驗,如ETTh2數據集,也支持自定義數據集。
- 便捷使用:提供代碼示例和在線演示,方便用戶快速上手。
📦 安裝指南
1. 下載倉庫
git clone git@github.com:DC-research/TEMPO.git
2. [可選] 通過命令下載模型和配置文件
huggingface-cli download Melady/TEMPO config.json --local-dir ./TEMPO/TEMPO_checkpoints
huggingface-cli download Melady/TEMPO TEMPO-80M_v1.pth --local-dir ./TEMPO/TEMPO_checkpoints
huggingface-cli download Melady/TEMPO TEMPO-80M_v2.pth --local-dir ./TEMPO/TEMPO_checkpoints
3. 構建環境
conda create -n tempo python=3.8
conda activate tempo
cd TEMPO
pip install -r requirements.txt
💻 使用示例
1. 復現ETTh2上的零樣本實驗
請嘗試在 Colab 上覆現ETTh2上的零樣本實驗。
2. 自定義數據集上的零樣本實驗
我們使用以下Colab頁面展示構建自定義數據集並通過預訓練基礎模型直接進行推理的演示:Colab
3. 在線演示
請嘗試我們的基礎模型演示 點擊此處。
📚 詳細文檔
預訓練模型
可從 Google Drive 下載預訓練模型,然後運行測試腳本。
TETS數據集
可使用 OPENAI ChatGPT - 3.5 API 生成時間序列對應的文本信息。時間序列數據來自 S&P 500。可從 TETS 下載經過GPT2文本嵌入處理的數據。
新聞動態
- 2024年10月:🚀 我們簡化了代碼結構,用戶可以通過單行代碼下載預訓練模型並進行零樣本推理!查看我們的 演示 瞭解更多詳情。我們的模型在HuggingFace上的下載次數現在可以追蹤了!
- 2024年6月:🚀 我們添加了在 Colab 上覆現零樣本實驗的演示。我們還添加了構建自定義數據集並通過預訓練基礎模型直接進行推理的演示:Colab
- 2024年5月:🚀 TEMPO推出了基於GUI的在線 演示,允許用戶直接與我們的基礎模型進行交互!
- 2024年5月:🚀 TEMPO在 HuggingFace 上發佈了80M預訓練基礎模型!
- 2024年5月:🧪 我們添加了TEMPO模型的預訓練和推理代碼。可以在 此文件夾 中找到預訓練腳本演示。我們還添加了 一個腳本 用於推理演示。
- 2024年3月:📈 發佈了用於TEMPO多模態實驗的 TETS數據集,數據來自 S&P 500。
- 2024年3月:🧪 TEMPO發佈了項目 代碼 和預訓練檢查點 在線!
- 2024年1月:🚀 TEMPO 論文 被ICLR接受!
- 2023年10月:🚀 TEMPO 論文 在Arxiv上發佈!
即將推出的功能
- [✅] 並行預訓練管道
- [] 概率預測
- [] 多模態數據集
- [] 多模態預訓練腳本
📄 許可證
本項目採用Apache - 2.0許可證。
聯繫我們
如果您有興趣將TEMPO應用到實際場景中,請隨時聯繫DefuCao@USC.EDU / YanLiu.CS@USC.EDU。
引用我們的工作
@inproceedings{
cao2024tempo,
title={{TEMPO}: Prompt-based Generative Pre-trained Transformer for Time Series Forecasting},
author={Defu Cao and Furong Jia and Sercan O Arik and Tomas Pfister and Yixiang Zheng and Wen Ye and Yan Liu},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=YH5w12OUuU}
}
@article{
Jia_Wang_Zheng_Cao_Liu_2024,
title={GPT4MTS: Prompt-based Large Language Model for Multimodal Time-series Forecasting},
volume={38},
url={https://ojs.aaai.org/index.php/AAAI/article/view/30383},
DOI={10.1609/aaai.v38i21.30383},
number={21},
journal={Proceedings of the AAAI Conference on Artificial Intelligence},
author={Jia, Furong and Wang, Kevin and Zheng, Yixiang and Cao, Defu and Liu, Yan},
year={2024}, month={Mar.}, pages={23343-23351}
}
屬性 |
詳情 |
模型類型 |
基於提示的生成式預訓練Transformer |
訓練數據 |
ETDataset/ett |
評估指標 |
mse、mae |
庫名稱 |
transformers |
任務類型 |
時間序列預測 |
基礎模型 |
openai-community/gpt2 |