google-research/timesfm

GitHub: google-research/timesfm

Google Research 推出的时间序列预测基础模型,基于 Decoder-only 架构,支持长上下文与零样本预测。

Stars: 9925 | Forks: 820

# TimesFM TimesFM (Time Series Foundation Model) 是由 Google Research 开发的用于时间序列预测的预训练时间序列基础模型。 * 论文: [用于时间序列预测的 Decoder-only 基础模型](https://arxiv.org/abs/2310.10688), ICML 2024。 * 所有检查点: [TimesFM Hugging Face 合集](https://huggingface.co/collections/google/timesfm-release-66e4be5fdb56e960c1e482a6)。 * [Google Research 博客](https://research.google/blog/a-decoder-only-foundation-model-for-time-series-forecasting/)。 * [BigQuery 中的 TimesFM](https://cloud.google.com/bigquery/docs/timesfm-model): 一款官方 Google 产品。 此开源版本并非官方支持的 Google 产品。 **最新模型版本:** TimesFM 2.5 **已归档模型版本:** - 1.0 和 2.0:相关代码归档于子目录 `v1` 中。您可以 `pip install timesfm==1.3.0` 安装此软件包的旧版本以加载它们。 ## 更新 - 2025年10月29日 通过 XReg 为 TimesFM 2.5 重新添加了协变量 支持。 ## 更新 - 2025年9月15日 TimesFM 2.5 发布了! 与 TimesFM 2.0 相比,这个新的 2.5 模型: - 使用 200M (2亿) 参数,从 500M 减少。 - 支持高达 16k 的上下文长度,从 2048 提升。 - 通过可选的 30M 分位数头,支持长达 1k 预测视界的连续分位数预测。 - 移除了 `frequency` 指示器。 - 拥有一些新的预测标志。 伴随模型升级,我们也升级了推理 API。本仓库在未来几周内将处于更新状态,以 1. 为即将推出的 Flax 版本模型添加支持(更快的推理)。 2. 重新添加协变量支持。 3. 充实更多的文档字符串、文档和笔记本。 ### 安装 1. 克隆仓库: git clone https://github.com/google-research/timesfm.git cd timesfm 2. 使用 `uv` 创建虚拟环境并安装依赖: # 创建虚拟环境 uv venv # 激活环境 source .venv/bin/activate # 以可编辑模式安装包及 torch uv pip install -e .[torch] # 或者使用 flax uv pip install -e .[flax] # 或者如果需要 XReg uv pip install -e .[xreg] 3. [可选] 根据您的操作系统和加速器 (CPU, GPU, TPU 或 Apple Silicon) 安装您偏好的 `torch` / `jax` 后端。: - [安装 PyTorch](https://pytorch.org/get-started/locally/)。 - [安装 Jax](https://docs.jax.dev/en/latest/installation.html#installation) 用于 Flax。 ### 代码示例 ``` 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)), ], # Two dummy inputs ) point_forecast.shape # (2, 12) quantile_forecast.shape # (2, 12, 10): mean, then 10th to 90th quantiles. ```
标签:Apex, Decoder-only, DNS解析, Flax, Google Research, Hugging Face, IaC 扫描, ICML 2024, JAX, Python, TimesFM, Transformer, 人工智能, 代码示例, 凭据扫描, 商业智能, 基础模型, 大模型, 开源项目, 异常检测, 数据分析, 无后门, 时间序列预测, 机器学习, 深度学习, 物联网, 用户模式Hook绕过, 统计预测, 自回归模型, 逆向工具, 量化预测, 金融科技, 长上下文, 预测分析, 预训练模型