☰
TimesFM 时间序列预测:200M 参数零样本基础模型如何比统计模型快 600 倍
2026/10/6 3:33:16 网站建设 项目流程

TimesFM 时间序列预测:200M 参数零样本基础模型如何比统计模型快 600 倍

【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfm

想给下周销量画一条预测线,传统做法往往要先选 ARIMA 或指数平滑模型再调参。谷歌开源的 TimesFM(Time Series Foundation Model,时间序列基础模型)让你跳过训练这一步:喂进历史数据,直接返回点预测和十档分位数区间。它解决的核心问题是"没有标注数据、也没有时间逐个建模时,如何快速拿到可用的预测"。

零样本预测,比统计组合快 600 倍

先说结论:TimesFM 的价值不在"某个指标第一",而在同一套权重下兼顾精度、速度与概率输出。在 ETT 长序列基准上,TimesFM 平均预测耗时0.606 秒,而 Chronos-Large 需要约1079 秒(仓库标注快了上千倍);在扩展基准上它比 StatisticalEnsemble 快 600 倍、比 Chronos-Large 快 80 倍。精度方面,它的均值 WAPE 0.386、SMAPE 0.636,均低于两个对比模型。

长序列基准(ETTh1/Eth2/Ettm1/Ettm2,均值)

指标TimesFMChronos-LargeChronos-Mini
WAPE 均值0.3860.4010.414
SMAPE 均值0.6360.6530.688
预测耗时(秒)均值0.6061079.6252.6

扩展基准(澳洲电力需求数据集,MASE,越低越好)

模型MASE耗时(秒)
TimesFM1.0200.55
Chronos-Large1.2336.3
SeasonalNaive1.34021.2

它如何把"读历史"变成"读上文"

一句话定位:TimesFM 是一个仅解码器(decoder-only)架构的基础模型。类比大语言模型读上文、写下一句,它读历史时间序列、写未来若干步——区别只是输入变成了数字。术语上,"基础模型"指先在大量序列上预训练、再零样本迁移到新数据;"分位数头"指额外输出第 10% 到 90% 的多档预测,而不是只给一条中位线,于是你能画出置信区间。

2.5 版相比 2.0 版有三处变化:参数量从 500M 降到200M(磁盘约 800MB,CPU 推理约 1.5GB 内存),上下文长度从 2048 提到16384,并去掉了对"频率标志"的依赖。这意味着更轻、能读更长的历史,调用也更简单。

3 步装好并跑通第一次预测

安装分两块:先拿代码,再装依赖。用 PyTorch 后端最通用(Flax 后端对 TPU/GPU 更快)。

git clone https://gitcode.com/GitHub_Trending/ti/timesfm cd timesfm uv pip install -e .[torch]

跑通第一次预测,最短代码只保留必要行。权重首次运行时从 HuggingFace 拉取并缓存到本地:

import torch, numpy as np, timesfm torch.set_float32_matmul_precision("high") model = timesfm.TimesFM_2p5_200M_torch.from_pretrained("google/timesfm-2.5-200m-pytorch") model.compile(timesfm.ForecastConfig(max_context=1024, max_horizon=256, normalize_inputs=True, use_continuous_quantile_head=True, fix_quantile_crossing=True)) point, quantiles = model.forecast(horizon=24, inputs=[np.sin(np.linspace(0, 20, 200))]) # point.shape -> (1,24) 中位预测;quantiles.shape -> (1,24,10) 第10%~90%区间

inputs直接传一个一维数组即可,批量预测则传多个数组的列表。完整参数含义见 ForecastConfig 参考,硬件与内存档位见 系统要求文档。

哪些场景传统方法反而更合适

TimesFM 适合:零样本预测、需要批量处理成百上千条序列、想要概率区间、以及用 XReg 引入协变量(价格、节假日等外生变量)。它的输出可以直接当预测区间用——落在第 10%~90% 之外的点即统计异常,仓库里给了完整的 异常检测示例。

但也有明确的边界,这些情况传统方法仍够用甚至更好:需要系数可解释或做 Granger 因果判断时用statsmodels;数据本质是表格而非时间序列用scikit-learn;要做序列分类/聚类用aeon。另外两点要注意:上下文至少要 32 个点;仓库提示十个分位数头在预训练后未做校准,用于严格区间时建议在留出集上再校准。协变量功能依赖 XReg,需额外安装timesfm[xreg]。

怎么选:TimesFM 还是 ARIMA

一句话:要零样本、要批量、要概率区间,直接上 TimesFM 2.5;要可解释系数、做因果分析、或数据很短且结构单一,用 statsmodels 的 ARIMA/VAR 更合适。若两条都要,可先用 TimesFM 快速出基线,再对关键序列用传统模型精调并解释。

下一步可以按顺序做:先运行scripts/check_system.py确认内存与磁盘够加载模型,再把你的 CSV 接进 forecast_csv.py 脚本 跑出第一份预测与区间,最后对照 系统要求文档 按硬件选批大小与上下文长度。

【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询