chronos-forecasting
Amazon开源的预训练时间序列预测基础模型,支持零样本零训练直接预测多领域时间序列
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Amazon开源的预训练时间序列预测基础模型,支持零样本零训练直接预测多领域时间序列
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:某电商平台的运营团队,每到月底都要为下个月的商品销量、仓储物流、客服话量做预测。传统做法是让数据团队逐一训练ARIMA、Prophet等模型——每个SKU单独建模,耗时数天,还不一定准。如果现在告诉你,有一个大模型能零样本、零训练直接给出预测,而且效果不输专门训练过的模型,你会不会觉得这是天方夜谭?
Amazon Science团队用Chronos证明了这件事的可行性。这个项目将NLP领域的预训练-微调范式引入时间序列预测,让AI首次具备了真正意义上的通用时间序列预测能力。
时间序列预测是商业世界的基础需求——零售销量、电网负荷、金融价格、医院挂号量,背后都有时间依赖规律。长期以来,这个领域被统计方法(ARIMA、SARIMA)和后来的机器学习方法(XGBoost、LSTM)统治,但它们有一个共同痛点:每个数据集都要从头训练一个模型。
2023年10月,Nixtla团队发布TimeGPT,首次展示了基础模型在时间序列预测中的潜力。但TimeGPT是闭源API。Chronos则走了完全不同的路——它是完全开源的Apache-2.0许可,模型权重托管在HuggingFace,任何人都可以免费下载、在本地运行。
2024年3月,Chronos论文正式发表(发表在TMLR),截至目前已被引用超过1399次,成为时间序列基础模型领域引用量最高的开源工作之一。2025年10月,团队发布Chronos-2,在零样本性能上进一步突破,并支持多变量预测和外生变量(协变量)引导预测。
Chronos的核心创新是时间序列的token化。
原始Chronos(T5架构):将历史时间序列的数值通过缩放(scaling)和量化(quantization)转换为离散的token序列。简单理解,就是把连续的数值曲线数字化成类似文字的符号序列,然后用语言模型的训练方式——交叉熵损失——来训练Transformer。具体来说,模型被要求根据过去的token序列,预测未来的token序列。训练完成后,推理时只需输入历史数据的token,模型通过采样生成多条未来轨迹,从而得到概率性预测(包含置信区间)。
Chronos-Bolt(2024年11月):Bolt版本采用了不同的策略——Patch-based直接多步预测。它把时间序列切分成固定长度的补丁(patch),编码器直接理解这些补丁的语义,译码器一次性输出未来多个时间步的分位数预测。这种设计使Bolt比原始Chronos快250倍、内存效率高20倍,同时误差还降低了5%。Bolt系列包含9M到205M参数的多个规模的模型。
Chronos-2(2025年10月):这是最新一代模型,参数量120M。它最大的突破是从单变量扩展到通用预测:支持单变量预测、多变量预测、以及协变量引导的预测(可以输入节假日、促销信息等额外特征来引导预测方向)。Chronos-2在fev-bench、GIFT-Eval和Chronos Benchmark II三个权威基准上取得了零样本预训练模型的最佳成绩。
Chronos项目提供了从8M到710M参数的多个规模的模型,供不同精度/速度需求选择:
模型权重托管在HuggingFace,提供了统一的Chronos2Pipeline和ChronosPipeline API接口。
Chronos的预训练语料来自多个公开数据集的聚合(包括UCR档案库、M系列竞赛数据等),涵盖了零售、交通、能源、医疗、金融等多个领域的时间序列。这使得模型学到了跨领域的通用时间依赖模式,具备了真正意义上的通用预测能力。
推理接口极其简洁,几行代码即可完成预测:
from chronos import Chronos2Pipeline
pipeline = Chronos2Pipeline.from_pretrained('amazon/chronos-2', device_map='cuda')
context_df = pd.read_parquet('https://autogluon.s3.amazonaws.com/datasets/timeseries/electricity_price/train.parquet')
pred_df = pipeline.predict_df(context_df, prediction_length=24, quantile_levels=[0.1, 0.5, 0.9])
输出包括中位数预测和置信区间(通过分位数预测实现),非常适合业务决策场景。
项目提供了两个高质量Jupyter notebook:
chronos-2-quickstart.ipynb:Chronos-2快速上手教程,包含从安装到完整预测流程的每一步deploy-chronos-to-amazon-sagemaker.ipynb:将Chronos-2部署到AWS SageMaker的生产级教程,支持CPU/GPU实时推理本地pip安装(推荐起步方式):
pip install chronos-forecasting
仅需Python >= 3.9,无需GPU(CPU可推理),安装后即可调用任意Chronos模型。
云端AWS SageMaker(生产推荐):
官方提供了两种云端部署路径:
注意:项目没有提供Dockerfile或docker-compose.yaml,无法通过容器一键本地部署。如需隔离环境,需自行编写Dockerfile,基于Python 3.9+镜像安装chronos-forecasting包。
代码采用标准的Python包结构:
src/chronos/
__init__.py # 对外API统一导出
base.py # 基类BaseChronosPipeline + ForecastType枚举
chronos.py # ChronosConfig + ChronosModel + ChronosPipeline(T5架构)
chronos2.py # Chronos-2专用pipeline
chronos_bolt.py # Chronos-Bolt pipeline(direct multi-step)
df_utils.py # DataFrame工具:频率推断、缺失值处理
boto_utils.py # AWS S3/boto3集成
utils.py # tensor工具函数(einsops)
代码有完整的Apache-2.0头部,文档质量极高(README超过1.1万字),提供了详尽的故障排除FAQ、贡献指南和引用格式。不足之处是test/目录存在但内容为空,无自动化测试套件,在生产级项目中略显遗憾。
Chronos并非万能药。首先,它是预训练-推理型模型,不支持在线学习——如果数据分布随时间急剧变化,模型的零样本能力可能退化。其次,Chronos在极短预测范围(1~3步)的精度不如专门针对该范围优化的模型。
此外,Chronos-2的协变量支持虽然强大,但需要用户提前准备好外生变量的未来值,这在某些数据缺失场景下会带来额外的数据工程负担。
Chronos的出现,标志着时间序列预测正式进入基础模型时代。在此之前,每做一个预测任务就要训练一个新模型;现在,一个模型可以在几乎所有时间序列任务上达到不错的效果。
从GitHub Stars的增长曲线来看(5631星,675 forks),Chronos已成为时间序列AI领域最受关注的项目之一。2026年Chronos-2 + AutoGluon-Cloud的组合,让零训练时间序列预测真正从论文走向了生产环境。
随着Chronos-Bolt将推理速度提升250倍,实时预测场景(库存动态调整、金融风控实时预警、IoT传感器异常检测)的可行性也大幅提高。可以预见,未来会有更多基于Chronos的上层应用涌现。
总结:Chronos用NLP的方式解开了时间序列预测的通用性难题,是AI爱好者了解基础模型跨领域能力的绝佳窗口,也是开发者构建生产级预测系统的可靠底层组件。