🚀 Chronos-T5 (Small)
Chronos-T5 (Small) 是基於語言模型架構的預訓練時間序列預測模型家族中的一員。它將時間序列轉換為標記序列進行訓練,能根據歷史上下文采樣多個未來軌跡以獲得概率預測。該模型在大量公開時間序列數據及合成數據上進行訓練,具有較高的預測能力。
🚀 快速開始
模型更新信息
- 🚀 2025年2月14日更新:Chronos-Bolt 和原始 Chronos 模型現已可在 Amazon SageMaker JumpStart 上使用!查看 教程筆記本,瞭解如何用幾行代碼部署 Chronos 端點以用於生產。
- 🚀 2024年11月27日更新:我們發佈了 Chronos-Bolt⚡️ 模型,與相同大小的原始 Chronos 模型相比,它的準確性提高了(誤差降低 5%),速度提高了 250 倍,內存效率提高了 20 倍。點擊 此處 查看新模型。
模型概述
Chronos 是一個基於語言模型架構的預訓練時間序列預測模型家族。通過縮放和量化將時間序列轉換為標記序列,然後使用交叉熵損失對這些標記訓練語言模型。訓練完成後,根據歷史上下文采樣多個未來軌跡,從而獲得概率預測。Chronos 模型在大量公開可用的時間序列數據以及使用高斯過程生成的合成數據上進行了訓練。
如需瞭解 Chronos 模型、訓練數據和過程以及實驗結果的詳細信息,請參考論文 Chronos: Learning the Language of Time Series。
圖 1:Chronos 的高層描述。(左) 對輸入時間序列進行縮放和量化以獲得標記序列。(中) 將標記輸入到語言模型中,該模型可以是編碼器 - 解碼器模型或僅解碼器模型。使用交叉熵損失對模型進行訓練。(右) 在推理過程中,我們自迴歸地從模型中採樣標記,並將它們映射回數值。採樣多個軌跡以獲得預測分佈。
✨ 主要特性
- 基於語言模型架構,能有效處理時間序列數據。
- 在大量公開數據及合成數據上訓練,具有較好的泛化能力。
- 可通過採樣多個未來軌跡獲得概率預測。
🔧 技術細節
架構
本倉庫中的模型基於 T5 架構。唯一的區別在於詞彙表大小:Chronos-T5 模型使用 4096 個不同的標記,而原始 T5 模型使用 32128 個,這導致 Chronos-T5 模型的參數更少。
📦 安裝指南
要使用 Chronos 模型進行推理,請運行以下命令安裝 GitHub 配套倉庫 中的包:
pip install git+https://github.com/amazon-science/chronos-forecasting.git
💻 使用示例
基礎用法
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-small",
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()
📚 詳細文檔
引用
如果您發現 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。
📄 許可證
本項目採用 Apache-2.0 許可證。