TimesFM 2.5 解读:Google 开源的时间序列基础模型,200M 参数支持 16K 上下文
时间序列预测是工业界最常见的需求之一:销量预测、库存管理、流量监控、能源调度、金融分析……传统方法如 ARIMA、Prophet、LSTM 各有局限——要么需要手动调参,要么对长序列效果差,要么无法迁移到新领域。
TimesFM(Time Series Foundation Model)试图用基础模型的思路解决这个问题。它由 Google Research 开发,是一个预训练的时间序列基础模型,论文发表于 ICML 2024。最新版本 TimesFM 2.5 仅用 200M 参数,就支持 16K 上下文长度和连续分位数预测,GitHub 上已超过 3 万 Star。
项目地址:https://github.com/google-research/timesfm
一、它是什么
TimesFM 的核心定位是:一个 decoder-only 架构的时间序列基础模型,用大规模时间序列数据预训练后,可以零样本(zero-shot)迁移到各种预测任务。
论文标题为《A decoder-only foundation model for time-series forecasting》,发表于 ICML 2024。它的设计思路与大语言模型类似:先在海量时间序列数据上预训练,然后在下游任务上直接推理或微调,而不是为每个任务单独训练模型。
TimesFM 已经被集成到多个 Google 产品中:
- BigQuery ML:企业级 SQL 查询,支持可扩展性和可靠性
- Google Sheets:日常电子表格中的预测功能
- Vertex Model Garden:Docker 化端点,支持 Agent 调用
需要注意的是,这个开源版本不是 Google 官方支持的产品。
二、版本演进:从 500M 到 200M,上下文翻 8 倍
TimesFM 经历了三个主要版本:
| 版本 | 参数 | 上下文长度 | 主要特性 |
|---|---|---|---|
| 1.0 | - | - | 初始版本,代码已归档到 v1 子目录 |
| 2.0 | 500M | 2048 | 基础模型架构,支持频率指示器 |
| 2.5 | 200M | 16K | 参数减半、上下文翻 8 倍、连续分位数预测、去除频率指示器 |
TimesFM 2.5 于 2025 年 9 月发布,相比 2.0 的关键改进:
- 参数从 500M 降到 200M:模型更小,推理更快
- 上下文从 2048 扩展到 16K:可以处理更长的历史序列
- 连续分位数预测:通过可选的 30M 分位数头,支持最长 1K 预测步长的分位数输出
- 去除频率指示器:不再需要手动指定数据频率(日/周/月等),模型自动适应
- 新增预测标志:提供更多推理控制选项
自 2.5 发布以来,团队又完成了多项改进:
- Flax 版本模型,推理更快
- 通过 XReg 恢复协变量(covariate)支持
- 完善文档、示例和 Agent Skill
- 基于 HuggingFace Transformers + PEFT 的 LoRA 微调示例
- 核心层、配置和工具的单元测试
三、核心特性
1. Decoder-only 架构
与 GPT 系列类似,TimesFM 采用 decoder-only 的 Transformer 架构。时间序列被视为一种"语言",模型学习序列中的模式并自回归地预测未来值。这种架构的优势是可以直接复用大语言模型的训练和推理优化技术。
2. 连续分位数预测
TimesFM 2.5 不仅输出点预测(point forecast),还支持分位数预测(quantile forecast)。通过一个可选的 30M 参数分位数头,模型可以输出从 10% 到 90% 的多个分位数,帮助用户评估预测的不确定性范围。这在风险敏感的场景(如库存管理、金融预测)中尤为重要。
3. XReg 协变量支持
2025 年 10 月,TimesFM 通过 XReg 恢复了协变量支持。协变量是指与目标序列相关的外部变量,例如促销活动、节假日、天气等。引入协变量可以显著提升预测精度,尤其是在有明显外部驱动因素的场景中。
4. LoRA 微调
TimesFM 提供了基于 HuggingFace Transformers + PEFT 的 LoRA(Low-Rank Adaptation)微调示例。这意味着用户可以在自己的领域数据上高效微调模型,而不需要重新训练全部参数。LoRA 只训练少量低秩矩阵,训练成本低、速度快,适合企业级定制化需求。
5. 多后端支持
TimesFM 同时支持 PyTorch 和 Flax/JAX 两个后端:
pip install timesfm[torch]:PyTorch 版本,生态丰富,GPU 支持成熟pip install timesfm[flax]:Flax 版本,推理速度更快,适合 TPU 环境pip install timesfm[xreg]:需要协变量支持时安装
用户可以根据自己的硬件和技术栈选择合适的后端。
6. Agent Skill 支持
TimesFM 仓库包含 AGENTS.md 和 SKILL.md,支持 AI Coding Agent(如 Claude Code、Cursor)直接调用。Agent 可以读取项目结构、运行示例、生成预测代码,降低了使用门槛。
四、安装与快速上手
安装
从 PyPI 安装(推荐):
# PyTorch 版本
pip install timesfm[torch]
# 或 Flax 版本
pip install timesfm[flax]
# 需要协变量支持时
pip install timesfm[xreg]
本地安装(开发模式):
git clone https://github.com/google-research/timesfm.git
cd timesfm
uv venv
source .venv/bin/activate
uv pip install -e .[torch]
代码示例
import torch
import numpy as np
import timesfm
torch.set_float32_matmul_precision("high")
# 加载 TimesFM 2.5 200M 模型(PyTorch 版本)
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, # 启用分位数预测
force_flip_invariance=True, # 翻转不变性
infer_is_positive=True, # 推断正值约束
fix_quantile_crossing=True, # 修复分位数交叉
)
)
# 执行预测
point_forecast, quantile_forecast = model.forecast(
horizon=12, # 预测未来 12 步
inputs=[
np.linspace(0, 1, 100), # 线性增长序列
np.sin(np.linspace(0, 20, 67)), # 正弦序列
],
)
point_forecast.shape # (2, 12):2 个序列,各预测 12 步
quantile_forecast.shape # (2, 12, 10):均值 + 10% 到 90% 共 9 个分位数
模型权重托管在 Hugging Face 上,所有检查点可以在 TimesFM Hugging Face Collection 中找到。
五、与传统方法的区别
| 维度 | ARIMA / Prophet | LSTM / TCN | TimesFM |
|---|---|---|---|
| 建模方式 | 统计模型,手动定阶 | 深度学习,需训练 | 预训练基础模型,零样本迁移 |
| 数据需求 | 单序列即可 | 需要大量标注数据 | 预训练后小数据即可微调 |
| 长序列 | 效果下降 | 受限于记忆能力 | 16K 上下文,支持长历史 |
| 不确定性 | 置信区间(假设性) | 需额外建模 | 连续分位数预测(10%–90%) |
| 跨领域 | 需重新建模 | 需重新训练 | 零样本迁移,LoRA 高效微调 |
| 协变量 | 支持(需手动指定) | 支持 | 通过 XReg 支持 |
| 部署复杂度 | 低 | 中 | 中(需 GPU/TPU 推理) |
TimesFM 的核心优势在于预训练 + 零样本迁移。传统方法需要为每个时间序列单独建模或训练,而 TimesFM 在大规模数据上预训练后,可以直接对新序列进行预测,只需要少量数据微调就能达到很好的效果。
六、适用场景与局限
适用场景:
- 零售与电商:销量预测、库存管理、补货计划
- 金融:股价预测、风险评估、交易量预测
- 能源:电力负荷预测、可再生能源出力预测
- 运维:服务器流量监控、异常检测、容量规划
- 供应链:需求预测、物流调度
- IoT:传感器数据预测、设备健康监测
局限:
- 需要 GPU/TPU 推理:200M 参数模型在 CPU 上推理较慢,生产环境建议使用 GPU 或 TPU
- 不是万能的:对于完全没有历史模式的突变事件(如疫情、政策突变),任何预测模型都难以准确预测
- 开源版本非官方支持:这是 Google Research 的研究项目,不是 Google 官方支持的产品,企业使用需自行评估
- 微调需要一定技术能力:虽然提供了 LoRA 示例,但在自己的数据上微调仍需要 ML 工程经验
七、总结
TimesFM 代表了时间序列预测领域的一个重要方向:用基础模型的思路统一各种预测任务。从 500M 参数到 200M 参数、从 2048 上下文到 16K 上下文、从点预测到连续分位数预测,TimesFM 2.5 在模型效率和能力上都有显著提升。
对于需要做时间序列预测的开发者和企业,TimesFM 提供了一个开箱即用的基础模型选项:不需要从零训练,不需要手动调参,只需要加载模型、传入历史数据,就能得到包含不确定性估计的预测结果。如果需要更高精度,还可以通过 LoRA 在自己的数据上高效微调。
如果你正在做时间序列相关的工作,不妨试试 TimesFM,看看基础模型能否替代你手头的 ARIMA 或 Prophet。
项目地址:https://github.com/google-research/timesfm