🚀 Chronos-T5 (Base)
Chronos是一系列基于语言模型架构的预训练时间序列预测模型。它能将时间序列数据转化为可处理的形式,通过大规模数据训练,实现精准的时间序列预测,为相关领域的研究和应用提供了强大支持。
🌟 最新动态
- 🚀 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的高层描述。(左)输入时间序列经过缩放和量化以获得标记序列。(中)标记被输入到语言模型中,该模型可以是编码器 - 解码器模型或仅解码器模型。使用交叉熵损失对模型进行训练。(右)在推理过程中,我们自回归地从模型中采样标记并将它们映射回数值。对多个轨迹进行采样以获得预测分布。
✨ 主要特性
Chronos系列模型基于语言模型架构,具有以下显著特性:
- 强大的预测能力:通过在大规模时间序列数据上训练,能够进行准确的概率预测。
- 高效的性能:Chronos-Bolt模型在准确性、速度和内存效率方面有显著提升。
- 灵活的架构:基于T5架构,可根据不同需求选择不同规模的模型。
📦 安装指南
要使用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-base",
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-T5模型的参数更少。
📚 详细文档
有关Chronos模型的详细信息,包括训练数据、训练过程和实验结果,请参考论文 Chronos: Learning the Language of Time Series。
📄 引用
如果您发现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许可证。