🚀 Chronos-T5 (Large)
Chronosは、言語モデルアーキテクチャに基づく事前学習済みの時系列予測モデルのファミリーです。時系列データは、スケーリングと量子化を通じてトークンのシーケンスに変換され、これらのトークンを用いて言語モデルが交差エントロピー損失を使って学習されます。学習後、過去のデータを元に複数の未来の軌道をサンプリングすることで、確率的な予測が得られます。Chronosモデルは、公開されている大量の時系列データセットと、ガウス過程を用いて生成された合成データを使って学習されています。
🚀 クイックスタート
- 2025年2月14日更新: Chronos-BoltとオリジナルのChronosモデルが、Amazon SageMaker JumpStartで利用可能になりました!チュートリアルノートブックを参照して、数行のコードでChronosエンドポイントを本番環境にデプロイする方法を学びましょう。
- 2024年11月27日更新: Chronos-Bolt⚡️モデルをリリースしました。このモデルは、同じサイズのオリジナルのChronosモデルよりも、精度が5%向上し、最大250倍高速で、20倍メモリ効率が良いです。新しいモデルはこちらで確認できます。
Chronosモデル、学習データと手順、および実験結果の詳細については、論文Chronos: Learning the Language of Time Seriesを参照してください。
図1: Chronosの概要。(左) 入力時系列データはスケーリングと量子化され、トークンのシーケンスが得られます。(中央) トークンは言語モデル(エンコーダ・デコーダまたはデコーダのみのモデル)に入力され、交差エントロピー損失を使って学習されます。(右) 推論時には、モデルからトークンを自己回帰的にサンプリングし、数値にマッピングします。複数の軌道をサンプリングすることで、予測分布が得られます。
✨ 主な機能
Chronosは、言語モデルアーキテクチャを用いた時系列予測モデルで、大量の公開時系列データと合成データを使って学習されています。これにより、高精度な確率的予測が可能です。
📦 インストール
Chronosモデルで推論を行うには、GitHubのコンパニオンリポジトリのパッケージをインストールします。
pip install git+https://github.com/amazon-science/chronos-forecasting.git
💻 使用例
基本的な使用法
Chronosモデルを使って推論を行う最小限のコード例です。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import torch
from chronos import ChronosPipeline
pipeline = ChronosPipeline.from_pretrained(
"amazon/chronos-t5-large",
device_map="cuda",
torch_dtype=torch.bfloat16,
)
df = pd.read_csv("https://raw.githubusercontent.com/AileenNielsen/TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv")
context = torch.tensor(df["#Passengers"])
prediction_length = 12
forecast = pipeline.predict(context, prediction_length)
forecast_index = range(len(df), len(df) + prediction_length)
low, median, high = np.quantile(forecast[0].numpy(), [0.1, 0.5, 0.9], axis=0)
plt.figure(figsize=(8, 4))
plt.plot(df["#Passengers"], color="royalblue", label="historical data")
plt.plot(forecast_index, median, color="tomato", label="median forecast")
plt.fill_between(forecast_index, low, high, color="tomato", alpha=0.3, label="80% prediction interval")
plt.legend()
plt.grid()
plt.show()
📚 ドキュメント
アーキテクチャ
このリポジトリのモデルは、T5アーキテクチャに基づいています。唯一の違いは語彙サイズで、Chronos-T5モデルは4096種類のトークンを使用し、オリジナルのT5モデルの32128種類と比べてパラメータ数が少なくなっています。
📄 ライセンス
このプロジェクトは、Apache-2.0ライセンスの下でライセンスされています。
引用
Chronosモデルがあなたの研究に役立った場合、関連する論文を引用していただけると幸いです。
@article{ansari2024chronos,
author = {Ansari, Abdul Fatir and Stella, Lorenzo and Turkmen, Caner and Zhang, Xiyuan, and Mercado, Pedro and Shen, Huibin and Shchur, Oleksandr and Rangapuram, Syama Syndar and Pineda Arango, Sebastian and Kapoor, Shubham and Zschiegner, Jasper and Maddix, Danielle C. and Mahoney, Michael W. and Torkkola, Kari and Gordon Wilson, Andrew and Bohlke-Schneider, Michael and Wang, Yuyang},
title = {Chronos: Learning the Language of Time Series},
journal = {arXiv preprint arXiv:2403.07815},
year = {2024}
}
セキュリティ
詳細については、CONTRIBUTINGを参照してください。