🚀 [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 |