chronos-bolt-small
简介
🚀 **Update Feb 14, 2025**: Chronos-Bolt models are now available on Amazon SageMaker JumpStart! Check out the tutorial notebook to learn how to deploy Chronos endpoints for production use in a few lines of code.
模型卡片
模型配置
模型详情
已翻译Chronos-Bolt⚡ (Small)
🚀 2025年2月14日更新:Chronos-Bolt 模型现已可在 Amazon SageMaker JumpStart 上使用!请查看教程 notebook,了解如何通过几行代码将 Chronos 端点部署到生产环境。
Chronos-Bolt 是一系列预训练的时间序列预测模型,可用于零样本预测。它基于 T5 encoder-decoder 架构,并在近 1000 亿个时间序列观测数据上进行了训练。该模型将历史时间序列上下文切分为多个观测值的 patch,然后输入到 encoder 中。decoder 则利用这些表示直接生成跨多个未来步长的分位数预测——这种方法称为直接多步预测。与相同规模的原始 Chronos 模型相比,Chronos-Bolt 模型更准确,速度快达 250 倍,内存效率提升 20 倍。
性能
下图比较了 Chronos-Bolt 与原始 Chronos 模型在预测 1024 个时间序列(上下文长度为 512 个观测值,预测 horizon 为 64 步)时的推理时间。
Chronos-Bolt 模型不仅速度显著更快,而且比原始 Chronos 模型更准确。下图分别以 加权分位数损失 (WQL) 和 平均绝对缩放误差 (MASE) 报告了 Chronos-Bolt 的概率预测和点预测性能,结果汇总自 27 个数据集(有关该基准的详细信息,请参阅 Chronos 论文)。值得注意的是,尽管在训练期间未接触过这些数据集,零样本的 Chronos-Bolt 模型仍优于在这些数据集上训练过的常用统计模型和深度学习模型(以 * 标记)。此外,它们的表现也优于其他基础模型(以 + 标记),这些模型在我们的基准测试中的某些数据集上进行了预训练,并非完全零样本。值得注意的是,Chronos-Bolt (Base) 在预测精度上也超越了原始 Chronos (Large) 模型,同时速度快了 600 倍以上。
Chronos-Bolt 模型提供以下规格。
| 模型 | 参数量 | 基于 |
|---|---|---|
| chronos-bolt-tiny | 9M | t5-efficient-tiny |
| chronos-bolt-mini | 21M | t5-efficient-mini |
| chronos-bolt-small | 48M | t5-efficient-small |
| chronos-bolt-base | 205M | t5-efficient-base |
使用方法
在 AutoGluon 中使用 Chronos-Bolt 进行零样本推理
安装所需的依赖项。
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": "autogluon/chronos-bolt-small"},
},
)
predictions = predictor.predict(df)
如需更高级的功能,例如微调和使用协变量进行预测,请查看此教程。
将 Chronos-Bolt 端点部署到 SageMaker
首先,更新 SageMaker SDK 以确保所有最新模型可用。
pip install -U sagemaker
将推理端点部署到 SageMaker。
from sagemaker.jumpstart.model import JumpStartModel
model = JumpStartModel(
model_id="autogluon-forecasting-chronos-bolt-small",
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 模型可以部署到 CPU 和 GPU 实例。这些模型还支持使用协变量进行预测。有关端点 API 的更多详细信息,请查看示例 notebook。
引用
如果您发现 Chronos 或 Chronos-Bolt 模型对您的研究有用,请考虑引用相关
正在翻译中,请稍候...