license: apache-2.0
pipeline_tag: time-series-forecasting
tags:
- 时间序列
- 预测
- 预训练模型
- 基础模型
- 时间序列基础模型
- 时序分析
library_name: granite-tsfm
Granite-TimeSeries-TTM-R2 模型卡片
TinyTimeMixers(TTMs)是由IBM Research开源的多变量时间序列预测紧凑型预训练模型。
模型参数规模从100万起步,TTM首次提出了时间序列预测领域“微型”预训练模型的概念。相关论文已被NeurIPS 24接收。
在多个流行的零样本和小样本预测基准测试中,TTM的表现优于需要数十亿参数的其他模型。这些轻量级预测模型通过多种数据增强技术在公开时间序列数据上预训练而成,能提供最先进的零样本预测效果,仅需5%的目标数据微调即可获得竞争力表现。值得注意的是,使用TTM进行零样本预测、微调和推理任务均可轻松在单块GPU或笔记本电脑上完成。
TTM r2系列包含在更大规模预训练数据集(约7亿样本)上训练的变体。TTM r2.1版本将预训练数据规模扩展至约10亿样本。早期发布的TTM r1模型训练数据约2.5亿样本,可通过此链接获取。通常TTM r2模型因训练数据更丰富而表现更优,在标准基准测试中比r1版本提升超过15%。但具体选择应基于目标数据分布,建议用户尝试两个版本后择优使用。
TTM r2系列支持分钟级至小时级分辨率(如10分钟、15分钟、1小时)的点预测场景。r2.1版本新增了对日频和周频数据的支持。
相关链接
- 论文: NeurIPS 2024, ArXiV
- 代码库: https://github.com/ibm-granite/granite-tsfm
- PyPI项目: https://pypi.org/project/granite-tsfm/
- 模型架构: https://github.com/ibm-granite/granite-tsfm/tree/main/tsfm_public/models/tinytimemixer
- 时间序列指南: https://github.com/ibm-granite-community/granite-timeseries-cookbook
模型描述
TTM属于“专注型预训练模型”类别,每个预训练模型针对特定预测场景(由历史窗口长度和预测长度决定)定制。不同于构建单一巨型模型,我们采用多个小型专用模型的策略,在保持高精度的同时确保模型极简高效,便于低资源部署。
本模型卡片发布了覆盖常见预测场景的多个预训练TTM变体,各模型存放于不同分支。推荐使用get_model()
工具根据输入需求自动选择模型,也可通过入门指南直接指定分支名调用特定模型。
模型发布
各分支模型命名遵循格式:
<历史窗口长度>-<预测长度>-<频率前缀调优标识>-<预训练指标>-<版本号>
- 历史窗口长度:模型输入的时序历史数据长度
- 预测长度:模型输出预测点数量
- 频率调优标识("ft"或空缺):"ft"表示启用频率前缀嵌入
- 预训练指标("mae"或空缺):"mae"表示使用平均绝对误差损失
- 版本号("r2"或"r2.1"):标识训练数据版本
示例教程
以下脚本适用于所有TTM模型,使用时需在from_pretrained
调用中替换正确的HF模型路径和分支名。部分教程直接使用get_model()
工具自动选型。
- 快速入门 [教程] [Colab]
- IBM watsonx入门 [教程]
- 零样本多变量预测 [示例]
- 微调多变量预测:
- TTM r2扩展功能(2024年10月发布):
- TTM r2.1功能:
使用规范
- 输入数据需按通道分别进行标准化处理(推荐使用
TimeSeriesPreprocessor
工具)
- 当前版本支持分钟级和小时级分辨率(r2.1新增日频/周频支持)
- 不建议通过上采样或补零方式扩展短时序数据
自动选型工具
get_model()
函数支持基于历史窗口、预测长度等参数自动选型,函数签名如下:
def get_model(
model_path: str,
model_name: str = "ttm",
context_length: Optional[int] = None,
prediction_length: Optional[int] = None,
freq_prefix_tuning: bool = False,
freq: Optional[str] = None,
prefer_l1_loss: bool = False,
prefer_longer_context: bool = True,
force_return: Optional[str] = None,
return_model_key: bool = False,
**kwargs,
) -> Union[str, PreTrainedModel]:
"""根据输入参数自动选择最优TTM模型"""
基准测试
TTM在零/小样本预测中显著优于TimesFM、Moirai、Chronos等基准模型,同时计算需求大幅降低。完整测试脚本参见[此处](https://github.com/ibm-granite/granite-tsfm/tree/main/notebooks/hfdemo/tinytimemixer/full_benchmarking)。
- 论文中TTM-B对应512历史窗口模型
- TTM-E对应1024历史窗口模型
- TTM-A对应1536历史窗口模型
模型详情
TTM支持两种模式:
- 零样本预测:直接应用预训练模型
- 微调预测:使用目标数据微调提升精度
当前版本支持通过通道独立和通道混合策略进行多变量预测,r2.1版本增强了短历史窗口精度并扩展了频率支持。
训练数据
r2版本训练数据包含:
- 澳大利亚电力需求、气象数据
- 比特币交易记录
- KDD Cup 2018数据集
- 伦敦智能电表数据等公开来源
r2.1版本新增:
- 新冠疫情数据
- 维基百科流量数据
- 温度降水记录等20+新增数据集
引用
若使用本模型或相关方法,请引用:
@inproceedings{ekambaram2024tinytimemixersttms,
title={Tiny Time Mixers (TTMs): Fast Pre-trained Models for Enhanced Zero/Few-Shot Forecasting of Multivariate Time Series},
author={Vijay Ekambaram and Arindam Jati and Pankaj Dayama and Sumanta Mukherjee and Nam H. Nguyen and Wesley M. Gifford and Chandra Reddy and Jayant Kalagnanam},
booktitle={Advances in Neural Information Processing Systems (NeurIPS 2024)},
year={2024},
}
模型作者
Vijay Ekambaram, Arindam Jati, Pankaj Dayama等IBM研究院团队
开源声明
本仓库所有内容(含代码)均依据开源协议提供,IBM无持续维护义务。该代码作为开源项目(非IBM产品)开发,不承诺质量保证或后续支持。