【timesfm】一个能处理超长时序、支持概率预测的谷歌开源时间序列大模型
TimesFM 是 Google Research 推出的时序基础模型,专为高精度、通用化的时间序列预测任务而设计,解决了传统模型在跨领域、多尺度、长周期预测中泛化能力弱、需大量人工特征工程的问题。
主要特性包括:
– 基于纯解码器(decoder-only)架构的预训练基础模型,支持零样本或少样本迁移;
– 当前最新版本 TimesFM 2.5 参数量为 2 亿(200M),相比前代更轻量、更高效;
– 上下文长度最高支持 16,000 步(远超此前的 2,048),适合长历史依赖场景;
– 可选配 3000 万参数的连续分位数头(continuous quantile head),支持最多 1,000 步的分位数预测;
– 移除了显式的 frequency 输入要求,简化使用流程;
– 新增对协变量(covariates)的支持(通过 XReg 模块),适用于带外部变量的预测任务;
– 提供 PyTorch 和 Flax(JAX)双后端支持,兼顾易用性与高性能推理潜力。
安装与快速上手:
按官方步骤克隆仓库并安装依赖(推荐使用 uv):
git clone https://github.com/google-research/timesfm.git
cd timesfm
uv venv && source .venv/bin/activate
uv pip install -e .[torch] # 或 .[flax] / .[xreg]
简单预测示例如下(PyTorch 版):
import torch
import numpy as np
import timesfm
torch.set_float32_matmul_precision("high")
model = timesfm.TimesFM_2p5_200M_torch.from_pretrained("google/timesfm-2.5-200m-pytorch")
point_forecast, quantile_forecast = model.forecast(
horizon=12,
inputs=[
np.linspace(0, 1, 100),
np.sin(np.linspace(0, 20, 67)),
]
)
# 输出形状:point_forecast → (2, 12);quantile_forecast → (2, 12, 10)
该项目特别适合以下场景:
– 需要跨多个业务线(如零售销量、服务器指标、能源负荷)统一建模的平台型团队;
– 数据频率多样、历史跨度长、且缺乏明确周期标注的工业或科研时序任务;
– 要求不仅输出点预测,还需可信区间(如 10%–90% 分位数)的风险敏感型应用(如金融风控、供应链备货);
– 具备 GPU/TPU 算力资源,希望尝试前沿基础模型但不愿从零训练的算法工程师或数据科学家。
总结:TimesFM 是目前少有的真正面向“通用时序理解”的开源基础模型,它将大规模预训练范式成功迁移到时间序列领域,在上下文长度、量化预测、协变量支持等关键维度持续迭代。虽然当前文档和示例仍处于完善阶段,部分高级功能(如 Flax 加速版、完整 API 文档)尚在建设中,但其设计理念与实测潜力已展现出显著的工程价值——建议关注其 Hugging Face 官方模型库与 BigQuery 集成进展,也建议访问其主页获取更详细信息。
