モデル概要
モデル特徴
モデル能力
使用事例
🚀 Chronos - Bolt⚡ (Small)
Chronos - Boltは、ゼロショット予測に使用できる事前学習済みの時系列予測モデルのファミリーです。このモデルは、T5エンコーダ - デコーダアーキテクチャに基づいており、約1000億の時系列観測値で学習されています。このモデルは、過去の時系列コンテキストを複数の観測値のパッチに分割し、それをエンコーダに入力します。そして、デコーダはこれらの表現を使用して、複数の未来のステップにわたる分位予測を直接生成します。これは、直接的な多ステップ予測として知られる方法です。Chronos - Boltモデルは、同じサイズの元のChronosモデルよりも最大250倍高速で、20倍メモリ効率が高いです。
🚀 2025年2月14日更新: Chronos - BoltモデルがAmazon SageMaker JumpStartで利用可能になりました!数行のコードでChronosエンドポイントを本番環境で使用するためにデプロイする方法を学ぶには、[チュートリアルノートブック](https://github.com/amazon - science/chronos - forecasting/blob/main/notebooks/deploy - chronos - bolt - to - amazon - sagemaker.ipynb)を参照してください。
🚀 クイックスタート
Chronos - Boltは、事前学習済みの時系列予測モデルで、ゼロショット予測に使用できます。以下に、AutoGluonを使用した最小限のゼロショット推論の例を示します。
まず、必要な依存関係をインストールします。
pip install autogluon
次に、Chronos - Boltモデルで予測を行います。
from autogluon.timeseries import TimeSeriesPredictor, TimeSeriesDataFrame
df = TimeSeriesDataFrame("https://autogluon.s3.amazonaws.com/datasets/timeseries/m4_hourly/train.csv")
predictor = TimeSeriesPredictor(prediction_length=48).fit(
df,
hyperparameters={
"Chronos": {"model_path": "amazon/chronos-bolt-small"},
},
)
predictions = predictor.predict(df)
✨ 主な機能
- 高速かつメモリ効率が高い: Chronos - Boltモデルは、同じサイズの元のChronosモデルよりも最大250倍高速で、20倍メモリ効率が高いです。
- 高精度: ゼロショットのChronos - Boltモデルは、事前学習時に接触していないデータセットでも、一般的に使用される統計モデルや深層学習モデルを上回る精度を示します。
- 多様なサイズ: Chronos - Boltモデルは、tiny、mini、small、baseの4つのサイズが用意されています。
- AutoGluonとの統合: AutoGluonを使用することで、Chronosモデルの簡単な微調整、共変量の組み込み、他のモデルとのアンサンブルが可能です。
- SageMakerへのデプロイ: SageMaker JumpStartを使用することで、数行のコードでChronosエンドポイントを本番環境にデプロイできます。
📦 インストール
AutoGluonを使用する場合
必要な依存関係をインストールします。
pip install autogluon
SageMakerにデプロイする場合
SageMaker SDKを最新バージョンに更新します。
pip install -U sagemaker
推論ライブラリを使用する場合
GitHubの[コンパニオンリポジトリ](https://github.com/amazon - science/chronos - forecasting)のパッケージをインストールします。
pip install chronos-forecasting
💻 使用例
基本的な使用法
AutoGluonを使用してChronos - Boltでゼロショット推論を行う最小限の例です。
from autogluon.timeseries import TimeSeriesPredictor, TimeSeriesDataFrame
df = TimeSeriesDataFrame("https://autogluon.s3.amazonaws.com/datasets/timeseries/m4_hourly/train.csv")
predictor = TimeSeriesPredictor(prediction_length=48).fit(
df,
hyperparameters={
"Chronos": {"model_path": "amazon/chronos-bolt-small"},
},
)
predictions = predictor.predict(df)
高度な使用法
SageMakerにChronos - Boltエンドポイントをデプロイする
SageMaker JumpStartを使用して、Chronos - Bolt (Base) エンドポイントをSageMakerにデプロイする最小限の例です。
まず、SageMaker SDKを最新バージョンに更新します。
pip install -U sagemaker
次に、推論エンドポイントをSageMakerにデプロイします。
from sagemaker.jumpstart.model import JumpStartModel
model = JumpStartModel(
model_id="autogluon-forecasting-chronos-bolt-base",
instance_type="ml.c5.2xlarge",
)
predictor = model.deploy()
最後に、JSON形式で時系列データをエンドポイントに送信します。
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/AileenNielsen/TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv")
payload = {
"inputs": [
{"target": df["#Passengers"].tolist()}
],
"parameters": {
"prediction_length": 12,
}
}
forecast = predictor.predict(payload)["predictions"]
推論ライブラリを使用する
推論ライブラリを使用してChronos - Boltモデルで推論を行う最小限の例です。
import pandas as pd # requires: pip install pandas
import torch
from chronos import BaseChronosPipeline
pipeline = BaseChronosPipeline.from_pretrained(
"amazon/chronos-bolt-small",
device_map="cuda", # use "cpu" for CPU inference and "mps" for Apple Silicon
torch_dtype=torch.bfloat16,
)
df = pd.read_csv(
"https://raw.githubusercontent.com/AileenNielsen/TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv"
)
# context must be either a 1D tensor, a list of 1D tensors,
# or a left-padded 2D tensor with batch as the first dimension
# Chronos-Bolt models generate quantile forecasts, so forecast has shape
# [num_series, num_quantiles, prediction_length].
forecast = pipeline.predict(
context=torch.tensor(df["#Passengers"]), prediction_length=12
)
📚 ドキュメント
パフォーマンス
推論速度
以下のプロットは、512の観測値のコンテキスト長と64ステップの予測期間で、1024の時系列を予測する際のChronos - Boltと元のChronosモデルの推論時間を比較しています。
予測精度
Chronos - Boltモデルは、元のChronosモデルよりも大幅に高速であるだけでなく、精度も高いです。以下のプロットは、Weighted Quantile Loss (WQL)とMean Absolute Scaled Error (MASE)のそれぞれについて、27のデータセットで集計したChronos - Boltの確率的および点予測のパフォーマンスを報告しています。注目すべきは、事前学習時にこれらのデータセットに接触していないにもかかわらず、ゼロショットのChronos - Boltモデルは、これらのデータセットで学習された一般的に使用される統計モデルや深層学習モデルを上回っています(*で強調表示)。さらに、+で示される他の基礎モデル(FM)よりも優れています。これは、これらのモデルがベンチマークの特定のデータセットで事前学習されており、完全なゼロショットではないことを示しています。特に、Chronos - Bolt (Base) は、予測精度において元のChronos (Large) モデルを上回り、600倍以上高速です。
モデルサイズ
Chronos - Boltモデルは、以下のサイズで利用可能です。
モデル | パラメータ数 | ベースとなるモデル |
---|---|---|
[chronos - bolt - tiny](https://huggingface.co/amazon/chronos - bolt - tiny) | 9M | [t5 - efficient - tiny](https://huggingface.co/google/t5 - efficient - tiny) |
[chronos - bolt - mini](https://huggingface.co/amazon/chronos - bolt - mini) | 21M | [t5 - efficient - mini](https://huggingface.co/google/t5 - efficient - mini) |
[chronos - bolt - small](https://huggingface.co/amazon/chronos - bolt - small) | 48M | [t5 - efficient - small](https://huggingface.co/google/t5 - efficient - small) |
[chronos - bolt - base](https://huggingface.co/amazon/chronos - bolt - base) | 205M | [t5 - efficient - base](https://huggingface.co/google/t5 - efficient - base) |
🔧 技術詳細
Chronos - Boltは、T5エンコーダ - デコーダアーキテクチャに基づいています。このモデルは、過去の時系列コンテキストを複数の観測値のパッチに分割し、それをエンコーダに入力します。デコーダは、これらの表現を使用して、複数の未来のステップにわたる分位予測を直接生成します。これは、直接的な多ステップ予測として知られる方法です。
📄 ライセンス
このプロジェクトは、Apache - 2.0ライセンスの下でライセンスされています。
引用
もしあなたの研究でChronosまたはChronos - Boltモデルが役立った場合、関連する論文を引用することを検討してください。
@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}
}




