🚀 微型时间混合器 (TTM) 研究用途模型卡片
微型时间混合器(Tiny Time Mixers,TTMs)是由IBM Research开源的用于多变量时间序列预测的紧凑型预训练模型。TTM模型(已被NeurIPS 24收录)的参数规模从100万起,开创了时间序列预测领域“微型”预训练模型的先河。
本模型卡片仅包含供研究使用的模型权重,我们在论文中发表的研究结果具备完全可复现性。不过,如果您需要用于商业和企业用途的TTM模型权重,请参考我们在此处发布的Granite版本。
TTM在零样本和少样本预测方面超越了多个需要数十亿参数的流行基准模型。TTM是轻量级的预测器,在经过各种增强处理的公开可用时间序列数据上进行预训练。它能提供最先进的零样本预测,并且只需使用5%的训练数据进行微调,就能在多变量预测中具备竞争力。更多详情请参考我们的论文。
当前的开源版本特别支持从分钟级到小时级分辨率的点预测用例(例如10分钟、15分钟、1小时)。
请注意,使用TTM进行零样本、微调以及推理任务,在单GPU机器甚至笔记本电脑上都能轻松完成!
✨ 主要特性
- 聚焦预训练模型:TTM属于“聚焦预训练模型”类别,每个预训练的TTM都针对特定的预测设置(由上下文长度和预测长度决定)进行定制。这种构建较小预训练模型的方法,能产生更准确的结果,同时确保模型极其小巧且速度极快,便于部署,无需大量资源。
- 性能卓越:在零样本和少样本预测中,TTM超越了多个流行基准模型,如TimesFM、Moirai、Chronos等,同时显著降低了计算需求。
- 轻量级且易用:TTM是轻量级的预测器,甚至可以在仅配备CPU的机器上运行,提高了可用性,有助于在资源受限的环境中更广泛地应用。
- 支持多种预测模式:支持零样本预测和微调预测两种模式,并且当前版本支持通过通道独立和通道混合两种方法进行多变量预测,还支持外生变量注入和分类数据注入。
📦 安装指南
文档未提供安装步骤,故跳过该章节。
💻 使用示例
基础用法
model = TinyTimeMixerForPrediction.from_pretrained(
"https://huggingface.co/ibm/TTM", revision="main"
)
zeroshot_trainer = Trainer(
model=model,
args=zeroshot_forecast_args,
)
zeroshot_output = zeroshot_trainer.evaluate(dset_test)
高级用法
for param in model.backbone.parameters():
param.requires_grad = False
finetune_forecast_trainer = Trainer(
model=model,
args=finetune_forecast_args,
train_dataset=dset_train,
eval_dataset=dset_val,
callbacks=[early_stopping_callback, tracking_callback],
optimizers=(optimizer, scheduler),
)
finetune_forecast_trainer.train()
fewshot_output = finetune_forecast_trainer.evaluate(dset_test)
📚 详细文档
模型描述
TTM属于“聚焦预训练模型”类别,每个预训练的TTM都针对特定的预测设置(由上下文长度和预测长度决定)进行定制。我们没有构建一个支持所有预测设置的大型模型,而是选择构建较小的预训练模型,每个模型专注于特定的预测设置,从而产生更准确的结果。此外,这种方法确保我们的模型非常小且速度极快,便于部署,无需大量资源。
在本模型卡片中,我们计划发布多个预训练的TTM,以满足实际中许多常见的预测设置。此外,我们还发布了源代码和预训练脚本,用户可以利用这些脚本来自己预训练模型。预训练TTM非常容易且快速,与传统方法需要数天或数周相比,不到一天即可完成。
每个预训练模型将在本模型卡片的不同分支名称下发布。请使用我们的入门笔记本,并指定分支名称来访问所需的模型。
模型发布情况(以及存储模型的分支名称)
- 512 - 96 - ft - r2:给定最后512个时间点(即上下文长度),该模型可以预测未来最多96个时间点(即预测长度)。(分支名称:main)
- 1024 - 96 - ft - r2:给定最后1024个时间点(即上下文长度),该模型可以预测未来最多96个时间点(即预测长度)。(分支名称:1024 - 96 - ft - r2)[[基准测试]]
- 1536 - 96 - ft - r2:给定最后1536个时间点(即上下文长度),该模型可以预测未来最多96个时间点(即预测长度)。(分支名称:1536 - 96 - ft - r2)
- 同样,我们还发布了预测长度可达720个时间点的模型。这些模型的分支名称如下:
512 - 192 - ft - r2
、1024 - 192 - ft - r2
、1536 - 192 - ft - r2
、512 - 336 - r2
、512 - 336 - ft - r2
、1024 - 336 - ft - r2
、1536 - 336 - ft - r2
、512 - 720 - ft - r2
、1024 - 720 - ft - r2
、1536 - 720 - ft - r2
- 请使用[get_model]工具,根据您输入的上下文长度和预测长度要求自动选择所需的模型。
- 目前我们允许3种上下文长度(512、1024和1536)和4种预测长度(96、192、336、720)。用户需要输入3种允许的上下文长度之一,但可以在
get_model()
中输入最多720的任何预测长度来获取所需的模型。
基准测试
在零样本/少样本预测中,TTM超越了多个流行基准模型,如TimesFM、Moirai、Chronos、Lag - Llama、Moment、GPT4TS、TimeLLM、LLMTime,同时显著降低了计算需求。此外,TTM是轻量级的,甚至可以在仅配备CPU的机器上运行,提高了可用性,有助于在资源受限的环境中更广泛地应用。更多详情请参考我们的论文。
- 论文中提到的TTM - B对应512上下文长度的模型。
- 论文中提到的TTM - E对应1024上下文长度的模型。
- 论文中提到的TTM - A对应1536上下文长度的模型。
请注意,Granite TTM模型仅在经我们法律团队批准的具有明确商业使用许可的数据集上进行预训练。因此,本次发布中使用的预训练数据集与研究论文中使用的数据集略有不同,这可能导致模型性能与发表的结果相比有轻微差异。更多详情请参考我们的论文。
基准测试脚本:此处
推荐使用方法
- 用户在将数据输入模型之前,必须为每个通道独立地对数据进行外部标准化缩放(请参考TSP,这是我们用于数据缩放的数据处理工具)。
- 当前的开源版本仅支持分钟级和小时级分辨率(例如10分钟、15分钟、1小时)。由于模型需要至少512或1024的上下文长度,当前版本不支持其他较低分辨率(如每周或每月)。
- 不建议对较短长度的数据集进行上采样或在前面填充零以虚拟增加上下文长度,这会影响模型性能。
模型详情
有关TTM架构和基准测试的更多详细信息,请参考我们的论文。
TTM - 1目前支持2种模式:
- 零样本预测:直接将预训练模型应用于目标数据,以获得初始预测(无需训练)。
- 微调预测:使用目标数据的子集对预训练模型进行微调,以进一步改进预测结果。
由于TTM模型非常小且速度极快,实际上可以在几分钟内使用可用的目标数据对模型进行微调,以获得更准确的预测。
当前版本支持通过通道独立和通道混合两种方法进行多变量预测。在微调过程中可以启用解码器通道混合,以捕捉时间序列变量之间的强通道相关模式,这是现有同类模型所缺乏的关键能力。
此外,TTM还支持外生变量注入和分类数据注入。
模型来源
- 代码仓库:https://github.com/ibm-granite/granite-tsfm/tree/main/tsfm_public/models/tinytimemixer
- 论文:https://arxiv.org/pdf/2401.03955.pdf
关于TTM的博客和文章
请参考我们的维基页面。
🔧 技术细节
文档未提供技术实现细节,故跳过该章节。
📄 许可证
本模型采用CC - BY - NC - SA 4.0许可证。
引用
如果您打算在工作中使用我们的模型或其相关架构/方法,请引用以下论文:
@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、Wesley M. Gifford、Sumanta Mukherjee、Chandra Reddy和Jayant Kalagnanam
IBM公共代码仓库声明
本代码仓库中的所有内容(包括代码)均由IBM根据相关开源软件许可证提供,IBM没有义务提供增强、更新或支持。IBM开发人员将此代码作为开源项目(而非IBM产品)开发,IBM不对代码的质量和安全性做出任何声明,并且未来不会维护此代码。