时间序列预测基础模型TimesFM安装与使用指南
TimesFM(Time Series Foundation Model)是Google Research开发的时间序列预测基础模型,提供强大的零样本预测能力。本文将详细介绍TimesFM项目的安装、配置和使用方法。
项目概述
TimesFM是一个预训练的时间序列基础模型,专门用于时间序列预测任务。该项目支持多种模型版本:
- TimesFM 2.5(最新版本):200M参数,支持16k上下文长度,提供连续分位数预测
- TimesFM 2.0:500M参数,支持2048上下文长度
- TimesFM 1.0:200M参数,支持512上下文长度
项目目录结构
timesfm/
├── README.md # 项目主说明文档
├── pyproject.toml # Python项目配置
├── requirements.txt # 依赖包列表
├── LICENSE # 许可证文件
├── src/ # 源代码目录
│ └── timesfm/ # 核心代码库
│ ├── __init__.py # 包初始化文件
│ ├── configs.py # 配置文件
│ ├── torch/ # PyTorch实现
│ ├── flax/ # Flax实现
│ ├── utils/ # 工具函数
│ └── timesfm_2p5/ # TimesFM 2.5版本代码
└── v1/ # 旧版本代码存档
├── notebooks/ # Jupyter notebook示例
│ ├── covariates.ipynb # 协变量使用示例
│ ├── finetuning.ipynb # 模型微调示例
│ └── finetuning_torch.ipynb # PyTorch微调示例
├── experiments/ # 实验代码
│ ├── baselines/ # 基准测试
│ ├── extended_benchmarks/ # 扩展基准测试
│ └── long_horizon_benchmarks/ # 长周期基准测试
├── peft/ # 参数高效微调
├── src/ # 源代码
└── tests/ # 测试文件
环境配置与安装
使用uv安装(推荐)
- 克隆项目仓库:
git clone https://gitcode.com/GitHub_Trending/ti/timesfm.git
cd timesfm
- 创建虚拟环境并安装依赖:
# 创建虚拟环境
uv venv
# 激活环境
source .venv/bin/activate
# 安装带PyTorch支持的版本
uv pip install -e .[torch]
# 或安装带Flax支持的版本
uv pip install -e .[flax]
# 或安装带XReg支持的版本(需要协变量支持)
uv pip install -e .[xreg]
可选:安装深度学习框架后端
根据你的硬件配置选择合适的后端:
模型使用示例
基本预测功能
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")
# 配置预测参数
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,
inputs=[
np.linspace(0, 1, 100), # 第一个时间序列
np.sin(np.linspace(0, 20, 67)), # 第二个时间序列
],
)
print(f"点预测形状: {point_forecast.shape}") # (2, 12)
print(f"分位数预测形状: {quantile_forecast.shape}") # (2, 12, 10)
使用协变量进行预测
TimesFM支持静态和动态协变量:
- 静态协变量:每个时间序列特有的特征(如产品类别、基础价格)
- 动态协变量:每个时间点都变化的特征(如星期几、温度、促销活动)
详细示例请参考 notebooks/covariates.ipynb
模型微调
TimesFM支持在特定数据集上进行微调,以提升在特定领域的预测性能。微调示例可在以下文件中找到:
- notebooks/finetuning.ipynb - JAX版本微调
- notebooks/finetuning_torch.ipynb - PyTorch版本微调
性能基准测试
项目提供了多个基准测试脚本,位于 experiments/ 目录下:
- 基础基准测试:
experiments/baselines/ - 扩展基准测试:
experiments/extended_benchmarks/ - 长周期基准测试:
experiments/long_horizon_benchmarks/
故障排除
如果遇到安装或使用问题,请参考 TROUBLESHOOTING.md 文件获取常见问题的解决方案。
注意事项
- 内存要求:建议至少32GB RAM来加载TimesFM依赖
- ARM架构:部分依赖不支持ARM架构,苹果芯片用户可能需要等待后续更新
- 版本兼容性:TimesFM 1.0和2.0版本的代码已存档在
v1/目录中
TimesFM为时间序列预测提供了强大的基础模型能力,通过合理的配置和使用,可以在各种预测任务中取得优异的表现。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





