amazon-science/chronos-forecasting · 上手攻略

  • 仓库:amazon-science/chronos-forecasting
  • 链接:https://github.com/amazon-science/chronos-forecasting
  • 分类:ai · 时间序列预测
  • 作者:Tom
  • 更新:2026-07-15

是什么

Chronos 是亚马逊科学团队开源的时间序列预测预训练模型家族,通过将时间序列 token 化后借助语言模型架构(类 T5)进行训练,实现零样本预测。整个家族经历三代演进:

  • Chronos(初代):基于语言模型架构,将时间序列通过缩放+量化转为 token 序列,用交叉熵损失训练;支持概率预测(采样多条轨迹)。上下文最长 512 步,预测长度最多 64 步。
  • Chronos-Bolt:Patch-based 变体,将历史上下文分 patch 输入 encoder,decoder 直接生成多步分位数预测;比初代快达 250 倍、内存效率提升 20 倍,但仅支持单变量预测。
  • Chronos-2(最新,2025年10月发布):120M 参数 encoder-only 模型;支持单变量、多变量、以及带外生变量的协变量感知预测;上下文扩展至 8192 步、预测长度达 1024 步;引入 group attention 机制实现跨序列联合学习;在 fev-bench、GIFT-Eval、Chronos Benchmark II 上均为零样本 SOTA,且对包含外生特征的任务提升最显著。

核心定位:不需要任何本地数据标注,扔进去历史序列就能预测未来——真正开箱即用的 Time Series Foundation Model。


解决什么问题

传统时间序列预测需要针对每个业务场景收集数据、训练专属模型,工程成本极高。Chronos-2 的零样本能力让这一流程完全反转:模型在数十亿时间点的大规模预训练数据(含真实+合成)上已经学会了时间序列的通用模式,直接推理即可,省去: - 数据标注和清洗 - 模型选型和调参 - 单独部署每个场景的专用模型

对于以下场景尤为有价值: - 新业务线冷启动,没有足够历史数据训练专用模型 - 需要快速评估大量 SKU/指标的时间序列走势 - 多产品线、多区域业务需要统一预测基座


快速安装

pip install "chronos-forecasting>=2.0"

建议同时安装可选依赖(用于画图和数据格式):

pip install "chronos-forecasting[extras]>=2.2" matplotlib

模型从 HuggingFace 自动下载(建议配置 HF_TOKEN 以提升下载速度):

export HF_TOKEN=your_hf_token_here

核心用法

基础单变量预测(pandas API)

import pandas as pd
from chronos import Chronos2Pipeline

# 加载模型,GPU 推荐;CPU 用 device_map="cpu"
pipeline = Chronos2Pipeline.from_pretrained(
    "amazon/chronos-2",
    device_map="cuda"  # 或 "cpu"
)

# 读取历史数据(长格式 pandas DataFrame)
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],  # 分位数
    id_column="id",               # 时间序列 ID 列
    timestamp_column="timestamp", # 时间戳列
    target="target",              # 目标值列
)

返回的 DataFrame 包含每条序列未来每个时间步的预测值和分位数区间(0.10.50.9 列),可直接用于可视化或接入业务系统。

带协变量的预测(Chronos-2 独有能力)

# 加载测试集,分离未来已知协变量
test_df = pd.read_parquet(
    "https://autogluon.s3.amazonaws.com/datasets/timeseries/electricity_price/test.parquet"
)
future_df = test_df.drop(columns="target")

# 传入 future_df,模型会同时考虑历史和未来协变量
pred_df = pipeline.predict_df(
    context_df,
    future_df=future_df,
    prediction_length=24,
    quantile_levels=[0.1, 0.5, 0.9],
    id_column="id",
    timestamp_column="timestamp",
    target="target",
)

SageMaker 生产部署(推荐生产环境使用)

pip install "autogluon.cloud>=0.5.0"

from autogluon.cloud import TimeSeriesFoundationModel

model = TimeSeriesFoundationModel(model_name="chronos-2")

# 批量预测
forecast_df = model.predict(df, prediction_length=24)

# 部署实时端点
endpoint = model.deploy(instance_type="ml.g5.xlarge")
forecast_df = endpoint.predict(df, prediction_length=24)

模型列表与选型参考

模型 参数量 特点 适用场景
amazon/chronos-2 120M 全功能、支持协变量、跨序列学习 通用首选
autogluon/chronos-2-small 28M 小型版,资源受限场景 边缘部署
amazon/chronos-bolt-base 205M 极快(250x),仅单变量 低延迟单变量
amazon/chronos-t5-large 710M 最大 T5 版本 高精度需求
amazon/chronos-bolt-tiny 9M 最小模型 极致轻量

chronos-2 通过 AWS AutoGluon-Cloud 部署时支持 Serverless 推理,适合不对齐的资源规划场景(2026年6月新功能)。


典型适用场景

  1. 多业务线批量预测:几十上百条时间序列,无需逐条调参,直接批量跑零样本预测。
  2. 新业务冷启动:历史数据不足(少于几百个点)时,零样本模型往往比数据稀缺的专用模型更准。
  3. 零售/电商需求预测:结合促销、节假日等已知未来协变量(如价格、活动标签),输出概率区间供供应链决策。
  4. 能源/IoT 时序监控:异常检测基准——预测区间外的数据点即为潜在异常。
  5. 金融波动率预测:分位数输出直接给出置信区间,适合风险评估。

坑与注意

  1. 数据格式严格:输入必须是长格式 pandas DataFrame,包含 {id_column}(序列标识)、{timestamp_column}(datetime)、{target}(数值)三列;不满足格式会直接报错。建议先做 df.dtypes 检查列类型。

  2. GPU 显存:120M 的 chronos-2 在 FP16 下约需 2-3 GB 显存;CPU 推理速度约比 GPU 慢 10-20 倍,高频实时场景建议上 GPU。

  3. 上下文长度并非越大越好:Chronos-2 最大 8192 步,但实践中超过 2048 步后精度收益递减,显存消耗却线性增长;建议根据数据量选择合适的截断窗口。

  4. 协变量类型区分: - Past-only covariates(历史已知,如已发生的节假日):放在 context_df 额外列中 - Future-known covariates(未来已知,如已排期的促销活动):放在 future_df 中 混用会导致预测偏差,文档建议仔细阅读 AutoGluon 协变量教程

  5. 概率输出 ≠ 点预测pipeline.predict_df() 返回的是分位数,不是均值;需要点预测时取 quantile_levels=[0.5](中位数)或对多次采样取平均。

  6. 环境依赖:HuggingFace Hub 下载模型需要网络畅通;生产环境建议提前 from_pretrained(cache=True) 缓存模型。

  7. 数据频率不匹配:Chronos 在预训练时覆盖了多种频率(分钟/小时/日/周/月),但模型对频率的感知依赖时间戳列是否规范;非标准时间戳(如 Unix 整数时间)需先转为 datetime。


与同类对比

方案 零样本 多变量 协变量 概率预测 速度 生产就绪度
Chronos-2 ✅ 原生 中(GPU) 高(SageMaker/AutoGluon)
Chronos-Bolt ❌(需外挂) 极快
Chronos(初代)
Darts(N-BEATS等) ❌ 需训练 部分 需外挂 取决于模型
GluonTS ❌ 需训练 取决于模型
TinyCharts(微软)
Lag-Llama ✅ 单变量

核心差异:Chronos-2 是目前功能最全面的时间序列零样本基础模型,尤其在协变量处理和跨序列学习上有代际优势;但追求极致速度的纯单变量场景可以用 Chronos-Bolt 替代。


一句话推荐结论

如果你需要快速对任意时间序列做高精度预测、尤其是涉及多变量或未来已知协变量的场景,Chronos-2 是目前最值得优先尝试的零样本基础模型——pip 安装、三行代码出结果,生产可直接上 SageMaker 或 AutoGluon-Cloud。


来源

  • GitHub README:https://github.com/amazon-science/chronos-forecasting
  • HuggingFace 模型页:https://huggingface.co/amazon/chronos-2
  • Chronos-2 Quickstart Notebook:https://github.com/amazon-science/chronos-forecasting/blob/main/notebooks/chronos-2-quickstart.ipynb
  • 技术报告 arXiv:https://arxiv.org/abs/2510.15821
  • AutoGluon-Cloud 部署指南:https://auto.gluon.ai/cloud/stable/tutorials/foundation-model-timeseries.html