🚀 Chronos-T5 (Mini)
Chronosは、言語モデルアーキテクチャに基づく事前学習済みの時系列予測モデルのファミリーです。時系列データは、スケーリングと量子化を通じてトークンのシーケンスに変換され、それらのトークンを用いて言語モデルが交差エントロピー損失を使用して学習されます。学習が完了すると、過去のコンテキストを元に複数の未来の軌跡をサンプリングすることで確率的な予測が得られます。Chronosモデルは、公開されている大量の時系列データコーパスと、ガウス過程を用いて生成された合成データを用いて学習されています。
🚀 クイックスタート
最新情報
- 🚀 2025年2月14日更新: Chronos-Boltと元のChronosモデルがAmazon SageMaker JumpStartで利用可能になりました!チュートリアルノートブックを参照して、数行のコードでChronosエンドポイントを本番環境で展開する方法を学びましょう。
- 🚀 2024年11月27日更新: 元のChronosモデルよりも精度が高く(誤差が5%低い)、最大250倍高速で、20倍メモリ効率の良いChronos-Bolt⚡️モデルをリリースしました。新しいモデルはこちらで確認できます。
詳細情報
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-mini",
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種類と比較してパラメータ数が少なくなっています。
🔧 技術詳細
Chronosモデルは、時系列データをトークン化して言語モデルで学習することで、高精度な時系列予測を実現します。具体的には、時系列データをスケーリングと量子化してトークンのシーケンスに変換し、それを用いて言語モデルを交差エントロピー損失で学習します。学習後は、過去のコンテキストを元に複数の未来の軌跡をサンプリングすることで確率的な予測を得ます。
📄 ライセンス
このプロジェクトは、Apache-2.0ライセンスの下で提供されています。
引用
Chronosモデルがあなたの研究に役立った場合、関連する論文を引用していただけると幸いです。
@article{ansari2024chronos,
title={Chronos: Learning the Language of Time Series},
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},
journal={Transactions on Machine Learning Research},
issn={2835-8856},
year={2024},
url={https://openreview.net/forum?id=gerNCVqqtR}
}
セキュリティ
詳細については、CONTRIBUTINGを参照してください。