🚀 [TEMPO: 時系列予測のためのプロンプトベース生成型事前学習トランスフォーマー]
TEMPOは、予測タスク向けの最初期のオープンソースの時系列基礎モデルのv1.0バージョンです。このモデルは、時系列予測の問題を解決し、高精度な予測を提供することで、時系列データの分析に大きな価値をもたらします。
🚀 クイックスタート
このセクションでは、TEMPOを使用するための基本的な手順を説明します。
デモ
1. ETTh2でのゼロショット実験の再現
ETTh2でのゼロショット実験を再現してみてください。[こちらのColabで試す]
2. カスタマーデータセットでのゼロショット実験
以下のColabページで、カスタマーデータセットを構築し、事前学習済みの基礎モデルを使用して直接推論を行うデモを紹介しています。[Colab]
基礎モデルの使用
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
4. スクリプトデモ
TEMPOを使用して予測を行うストリームライン化された例を次に示します。
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("Predicted values:")
print(predicted_values)
5. オンラインデモ
基礎モデルのデモを[こちら]で試してください。

✨ 主な機能
- 高精度な時系列予測を提供する。
- ゼロショット学習に対応している。
- カスタマーデータセットでの使用が可能。
📦 インストール
上記の「基礎モデルの使用」セクションで説明した手順に従って、リポジトリのダウンロード、モデルと設定ファイルのダウンロード、環境の構築を行ってください。
💻 使用例
基本的な使用法
上記の「スクリプトデモ」セクションで示したコードを参照してください。
高度な使用法
このセクションでは、高度なシナリオでの使用例を紹介します。
📚 ドキュメント
高度な実践: 完全なトレーニングワークフロー
1. データの取得
[Google Drive] または [Baidu Drive] からデータをダウンロードし、ダウンロードしたデータを ./dataset
フォルダに配置してください。また、[Google Drive] からSTL結果をダウンロードし、ダウンロードしたデータを ./stl
フォルダに配置してください。
2. スクリプトの実行
2.1 事前学習段階
bash [ecl, etth1, etth2, ettm1, ettm2, traffic, weather].sh
2.2 テスト/推論段階
トレーニング後、ゼロショット設定でTEMPOモデルをテストすることができます。
bash [ecl, etth1, etth2, ettm1, ettm2, traffic, weather]_test.sh

事前学習済みモデル
[Google Drive] から事前学習済みモデルをダウンロードし、テストスクリプトを実行して楽しんでください。
TETSデータセット
[OPENAI ChatGPT-3.5 API] を使用して時系列の対応するテキスト情報を生成するために使用されるプロンプトを以下に示します。

時系列データは [S&P 500] から取得されています。以下は、データセット内のある会社のEBITDAケースです。

上記の会社に対して生成されたコンテキスト情報の例を以下に示します。

[TETS] から、GPT2によるテキスト埋め込みを含む処理済みデータをダウンロードすることができます。
ニュース
- 2024年10月: 🚀 コード構造を合理化し、ユーザーが1行のコードで事前学習済みモデルをダウンロードしてゼロショット推論を実行できるようになりました!詳細は デモ を参照してください。HuggingFaceでのモデルのダウンロード数を追跡できるようになりました!
- 2024年6月: 🚀 Colab でゼロショット実験を再現するデモを追加しました。また、カスタマーデータセットを構築し、事前学習済みの基礎モデルを使用して直接推論を行うデモも追加しました: Colab
- 2024年5月: 🚀 TEMPOはGUIベースのオンライン デモ を公開し、ユーザーが直接基礎モデルと対話できるようになりました!
- 2024年5月: 🚀 TEMPOは HuggingFace で80M事前学習済み基礎モデルを公開しました!
- 2024年5月: 🧪 TEMPOモデルの事前学習と推論のコードを追加しました。事前学習スクリプトのデモは このフォルダ で確認できます。また、推論デモ用の スクリプト も追加しました。
- 2024年3月: 📈 TEMPOのマルチモーダル実験で使用される S&P 500 からの TETSデータセット を公開しました。
- 2024年3月: 🧪 TEMPOはプロジェクト コード と事前学習済みチェックポイントを オンライン で公開しました!
- 2024年1月: 🚀 TEMPOの 論文 がICLRに採択されました!
- 2023年10月: 🚀 TEMPOの 論文 がArxivで公開されました!
今後の機能
- [✅] 並列事前学習パイプライン
- [] 確率的予測
- [] マルチモーダルデータセット
- [] マルチモーダル事前学習スクリプト
🔧 技術詳細
元のREADMEに具体的な技術詳細の説明がないため、このセクションを省略します。
📄 ライセンス
このプロジェクトは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}
}