timesfm
Google开源的时间序列基础模型,pip安装即可零样本预测,无需微调
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Google开源的时间序列基础模型,pip安装即可零样本预测,无需微调
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
时间序列预测听起来简单——根据过去的数据,猜出未来的走向。但实际操作中,这个「猜」字背后藏着巨大的工程量。
传统方法需要你有深厚的统计学功底(ARIMA、SARIMA),或者花大量时间做数据清洗、特征工程、模型调参。更麻烦的是,每一个新场景、每一批新数据,都意味着从头再折腾一遍。零售公司预测下周销量要一套流程,金融团队预测汇率波动要用另一套框架,工厂传感器异常检测又要再重新建模——成本极高,门槛极高,效率极低。
这就是时序预测领域长期存在的核心痛点:通用性严重不足。
Google Research 在 2024 年用一篇 ICML 论文交出了自己的答卷:TimesFM,一款 decoder-only 架构的时间序列基础模型。它的核心能力可以用一句话概括——「喂什么数据都能猜,而且猜得准」,无需额外训练。
TimesFM 的设计思路借鉴了语言大模型的成功经验:先在大规模、多样化的时序数据上做预训练,让模型学会「时间序列的模式」是什么样子;推理时直接作用于新数据,实现零样本(zero-shot)预测。
核心架构是纯 Transformer decoder。 代码中使用了标准的 Multi-Head Self-Attention 机制,配合 Rotary Positional Embedding(RoPE,旋转位置编码),让模型能够感知时间步之间的相对位置关系。与 BERT-style 的 encoder 不同,decoder-only 的优势在于推理时只需要输入历史序列,无需对整个数据集进行编码,在长序列场景下效率更高。
PyTorch 和 Flax 双后端支持。 源码组织非常清晰:src/timesfm/torch/ 目录下是 PyTorch 实现,包含 transformer.py(注意力层)、dense.py(全连接层)、normalization.py(RMSNorm + LayerNorm);src/timesfm/flax/ 是 Google 自研的 Flax/JAX 实现,推理速度更快。这种「同一套逻辑、两套实现」的模式在 Google 内部很常见(参考 AlphaFold、T5 等项目),兼顾了灵活性与性能。
内部归一化(RevIN)。 TimesFM 采用了一种巧妙的逐样本归一化技术(Reverse Instance Normalization,RevIN),输入时对数据进行标准化,输出时还原。这让模型对不同量级、不同分布的数据都有鲁棒的预测能力——你不需要自己去做归一化处理,喂原始值就行。
1. 零样本预测(Zero-shot Forecasting)
这是 TimesFM 最有吸引力的特性。用户只需几行代码即可完成预测,无需任何训练过程。输入任意长度的时间序列(零售销售、传感器读数、股票价格均可),模型返回点预测值和分位数预测区间(10th ~ 90th)。TimesFM 2.5 版本支持的最高上下文长度为 16k tokens,最长可预测 1k 步。
2. 可选分位数预测头(Quantile Head)
TimesFM 2.5 版本引入了一个独立的 30M 参数分位数预测头,支持连续分位数预测。这个头是可选的,开启后可以输出带不确定性估计的预测区间,特别适合金融和供应链场景——不只是给一个数,而是告诉你「大概在哪个范围内」。
3. XReg 协变量支持
从 2025 年 10 月的更新开始,TimesFM 2.5 支持通过 XReg 引入外部协变量(时间特征、节假日标签、促销活动等静态/动态外部变量),进一步提升预测精度。协变量的引入让模型可以从「只有历史数据」升级到「历史数据 + 已知未来信息」,这对零售和营销场景意义重大。
4. LoRA 微调(Fine-tuning with PEFT)
不想用零样本?TimesFM 2.5 已集成到 HuggingFace Transformers 生态,可以通过 PEFT 库使用 LoRA 进行参数高效微调。官方示例覆盖了零售销售数据集,展示了从加载到微调到评估的完整流程。TimesFM 2.5 的前向传播原生支持在提供 future_values 时计算训练 loss,因此微调只需要标准 PyTorch 训练循环。
5. Agent Skill
TimesFM 团队还提供了独立的 Agent Skill(timesfm-forecasting/),包含 Preflight System Checker——在加载模型前先检查 RAM/GPU/磁盘,防止机器被撑爆。这个设计非常实用,因为 500M 参数的 v1/v2 模型需要约 32GB 内存,而 200M 参数的 2.5 版本在 CPU 上约需 1.5GB、GPU 上约需 1GB VRAM。
TimesFM 是一个标准的 Python 包,安装方式极为简洁:pip install timesfm[torch] 即可。没有 Dockerfile,没有 docker-compose,也没有 Web 界面。所有操作都在 Python 代码中进行。这意味着它天然适合:数据科学家在 Jupyter Notebook 中调用、后端服务集成预测 API、自动化流水线嵌入预测步骤。
如果你需要一个有 UI 的时序预测工具,TimesFM 本身不提供,需要自己包装 FastAPI/Gradio;或者直接用 Google 已经在 BigQuery ML、Google Sheets 和 Vertex Model Garden 里集成好的商业版本。
| 维度 | 内容 |
|---|---|
| 预训练数据 | 大规模多样化时序数据(零售、传感器、金融等) |
| 模型参数 | 200M(v2.5)/ 500M(v1/v2) |
| 上下文长度 | 最高 16k tokens(v2.5) |
| 预测长度 | 最高 1k steps(连续分位数模式) |
| 核心注意力 | Multi-Head Self-Attention + RoPE |
| 归一化 | RMSNorm + LayerNorm + RevIN |
| 推理框架 | PyTorch(通用)/ Flax(Google 内部,高速) |
| 微调支持 | HuggingFace Transformers + PEFT/LoRA |
TimesFM 的出现让时序预测领域正式进入了「基础模型时代」。在此之前,AWS 的 Chronos(Amazon)、Salesforce 的 Moirai、蚂蚁的 Informer 等都做了不同路线的探索。Google 的优势在于预训练数据的规模和多样性,以及对 TPU/Google Cloud 生态的天然整合(BigQuery ML、Vertex AI)。
从社区反馈看,TimesFM 2.5 在零售和金融场景的零样本准确率表现突出,但和所有基础模型一样,在极端异常值、长周期季节性等边缘场景仍有局限。这也是为什么 LoRA 微调接口被优先加入——给有特殊需求的用户留了后路。
TimesFM 代表了时序预测领域的一次范式转移:从业者不再需要为每个场景单独建模,基础模型的零样本能力已经可以在很多场景达到甚至超越专用模型的效果。它最适合:有大量多品类预测需求的零售/供应链团队、需要快速验证时序建模思路的数据科学团队、已有 ML 基础设施、想在预测环节引入 AI 能力的企业。主要限制是纯 API 调用、没有开箱即用的可视化界面,适合有开发能力的团队集成使用。