1. 项目定位与用途
Chronos 是 Amazon Science 推出的预训练时间序列预测模型库,旨在为时间序列 forecasting 任务提供开箱即用的解决方案。项目基于 Transformer 架构,通过将时间序列转换为离散 token 序列,利用语言模型的生成能力进行未来值预测。主要用途包括提供零样本预测能力、支持多种预测任务类型(单变量、多变量、协变量增强),并配套完整的训练、评估和部署工具链,降低时间序列预测的技术门槛。所有模型通过 HuggingFace 分发,便于集成到现有工作流。
2. 核心问题与解决思路
传统时间序列预测需要针对每个任务收集大量标注数据并训练专用模型,过程繁琐且成本高昂。Chronos 通过在大规模多样化时间序列数据上预训练,学习通用的时间序列表示和预测模式,从而实现对未见任务的零样本或少样本预测。其核心思路是将时间序列 tokenization 后视为序列生成问题,使用交叉熵损失训练语言模型,推理时通过采样生成概率预测,有效缓解数据稀缺问题并提升泛化能力。
3. 适用场景
Chronos 适用于多种时间序列预测场景:零样本单变量预测(如销售预测)、零样本多变量预测(如多传感器监测)、协变量增强预测(如考虑天气因素的电力需求预测)。此外,项目支持 AWS SageMaker 部署,适合生产环境中的实时或批量预测服务。配套的 fev 基准测试工具也使其成为模型评估和比较的理想选择,尤其适合研究者和实践者快速验证新方法或部署预测系统。
4. 安装指南
Chronos 要求 Python 3.10 或更高版本。核心依赖包括 PyTorch (>=2.2,<3)、Transformers (>=4.41,<5)、Accelerate (>=0.34,<2)、NumPy、einops 和 scikit-learn。可选依赖提供额外功能:boto3 用于 AWS 部署,peft 用于模型微调,fev 用于基准测试,pandas 用于数据处理。安装命令示例:pip install 'chronos-forecasting[extras]>=2.2' 'matplotlib'(来自快速入门 notebook)。详细依赖版本约束见 pyproject.toml 文件。
5. 使用方式
使用 Chronos 进行预测可从 HuggingFace 加载预训练模型,例如:BaseChronosPipeline.from_pretrained('amazon/chronos-2', device_map='cuda')。项目提供 Jupyter notebook 教程:chronos-2-quickstart.ipynb 展示基本用法,deploy-chronos-to-amazon-sagemaker.ipynb 指导云端部署。此外,scripts/training/train.py 支持自定义模型训练,scripts/evaluation/evaluate.py 运行基准测试并输出 CSV 结果。数据格式和配置可通过 scripts/training/configs 调整。
6. 实现特点与模型家族
Chronos 采用模块化架构:base.py 定义统一基类,chronos.py 实现原始 Chronos 模型,chronos_bolt.py 实现高效 Chronos-Bolt,chronos2/ 目录包含 Chronos-2 的完整模块(配置、数据管道、模型、训练器)。原始 Chronos 基于语言模型 tokenization 和采样预测;Chronos-Bolt 引入 patch-based 编码和直接多步预测,实现速度与内存效率的突破;Chronos-2 进一步扩展至多变量和协变量场景,在多个基准测试中达到最优性能。所有模型均通过 HuggingFace 分发,便于集成。