在时间序列预测领域,传统方法通常需要在目标数据集上进行显式训练或参数调优,才能获得理想的预测效果。然而,Google Research 推出的 TimesFM(Time Series Foundation Model)正在改变这一范式 —— 通过大规模预训练,它能够在完全不需要微调的情况下,对全新的多变量时间序列直接进行推理,实现真正的零样本预测能力。
零样本预测的技术本质
TimesFM 的零样本预测能力源于其独特的预训练范式。与传统 AR 模型需要在目标序列上拟合参数不同,TimesFM 在训练阶段就已经 “见过” 了来自不同领域、不同频率、不同模式的数百亿个时间点数据。这种大规模预训练使其能够学习到时间序列的通用模式 —— 趋势、周期、季节性、突变等 —— 从而在面对从未见过的新序列时,能够基于已学习的模式进行推断。
从模型架构来看,TimesFM 采用解码器 - only(decoder-only)的 Transformer 结构,类似于大型语言模型的设计思路。关键创新在于其分块(patch)处理机制:将连续的时间点聚合为一个个 “补丁” 作为 token 输入 Transformer,输出时则可以预测比输入更长的未来序列。这种设计使得模型能够灵活处理从分钟级到年度级的不同粒度数据,同时保持对长程依赖的建模能力。当前开源的 TimesFM 2.5 版本拥有 2 亿参数,支持最高 1.6 万个时间点的上下文长度,并配备可选的分位数预测头,能够输出从 10% 到 90% 共 9 个分位数的预测区间。
多变量序列的零样本推理实现
在实际工程中,TimesFM 的零样本预测调用极为简洁。开发者无需对目标数据进行任何预训练或参数调优,只需加载预训练模型并输入历史序列即可获得预测结果。以下是核心的推理代码模式:首先通过 TimesFM_2p5_200M_torch.from_pretrained 加载模型,然后使用 model.compile 配置预测参数,最后调用 model.forecast 方法直接输出预测结果。
对于多变量序列的处理,TimesFM 支持将多个独立的时间序列作为列表同时传入。例如,在代码中传入两条不同形态的测试序列 —— 一条线性增长,一条正弦波动 —— 模型会分别对每条序列进行预测,返回形状为(序列数 × 预测步长 × 分位数数量)的结果张量。关键配置参数包括:max_context 控制输入上下文窗口长度,max_horizon 设定预测未来多少个时间点,normalize_inputs 决定是否对输入进行标准化以提升稳定性,use_continuous_quantile_head 启用分位数预测功能,infer_is_positive 强制输出非负值适用于 demand forecasting 等场景。
与传统 AR 模型的系统性对比
将 TimesFM 与传统自回归模型(如 ARIMA)进行对比,能够更清晰地理解零样本预测的价值所在。从预测范式看,ARIMA 需要在目标序列上进行显式拟合,通过最大似然估计确定自回归阶数、差分阶数和移动平均阶数,这一过程通常涉及耗时的人工参数选择(如 AIC/BIC 准则)和序列平稳性检验;而 TimesFM 完全省去了这一步,模型参数在预训练阶段已经固定,推理时直接基于输入序列的上下文模式生成预测。
从性能表现看,根据 Google 在 Monash Forecasting Archive 数据集上的零样本评估结果,TimesFM 在平均绝对误差(MAE)指标上优于 ARIMA、ETS 等传统统计方法,并能够匹配甚至超越在目标数据集上显式训练的深度学习模型(如 DeepAR、PatchTST)。特别是在长程预测场景下(如预测 96 或 192 个时间点后的值),TimesFM 仍能保持较强的竞争力,而传统 AR 模型在长 horizon 上面临误差累积的挑战。
然而,零样本范式并非在所有场景下都绝对优于传统方法。对于高度平稳、模式单一的时间序列,经过精心调参的 ARIMA 往往能够达到更低的预测误差,因为其模型假设与数据生成过程高度匹配。TimesFM 的优势在于 “泛化性”—— 当面对全新领域、快速部署需求、或数据模式存在非平稳切换时,零样本能力能够显著降低从数据到预测的门槛。根据对比研究的具体发现,在某些特定数据集上 ARIMA 仍能取得更低的 RMSE,特别是在数据量充足且序列特征符合 AR 过程假设的情况下。
实用参数选择与场景适配
针对不同的应用场景,以下是 TimesFM 零样本预测的关键参数建议:
短期预测场景(如零售需求预测、业务指标监控):推荐 max_context=512 到 1024,max_horizon=24 到 96,启用 normalize_inputs=True 以适应不同量级的序列。如果业务要求不确定性量化,开启 use_continuous_quantile_head=True 并通过 fix_quantile_crossing=True 解决分位数交叉问题。
长期预测场景(如 Capacity Planning、季节性分析):将 max_context 设为 2048 或更高以捕获更完整的历史模式,max_horizon 可扩展至 256 甚至 512。注意长程预测应关注 force_flip_invariance=True 以处理可能的趋势翻转,并通过监控分位数区间宽度评估预测可信度。
非负约束场景(如销量、流量、用户数):务必设置 infer_is_positive=True,这会在输出层强制约束确保预测值非负,避免出现业务上不合理的负值预测。
需要特别注意的是,虽然 TimesFM 在大多数零样本场景下表现优异,但在面对数据分布剧烈变化(regime shift)或完全异常的模式时,建议保留与传统模型(如 ARIMA 或 Prophet)的回滚机制。实践中可以采用 “基线 + 监测” 策略:同步运行零样本模型和传统基线,当二者预测偏差超过阈值时触发人工复核。
结语
TimesFM 证明了大规模预训练在时间序列领域的可行性,其零样本预测能力使得开发者无需为每个新场景重新训练模型,即可获得具有竞争力的预测效果。与传统 AR 模型相比,TimesFM 在部署效率、泛化能力和多领域适应性上具有明显优势,而在特定平稳序列上,传统方法仍可作为可靠的补充选项。掌握上述关键参数与场景适配原则,能够帮助工程团队在实际项目中快速落地零样本时间序列预测能力。
资料来源:本文技术细节主要参考 TimesFM 官方 GitHub 仓库(google-research/timesfm)及 Google Research 博客论文《A decoder-only foundation model for time-series forecasting》(ICML 2024)。