Google Research 在 8 月底发布了时间序列基础模型 TimesFM 的第三代。仓库的 v3.0.0 tag 落在 8 月 28 日,PyTorch 权重同步上线 Hugging Face(google/timesfm-3.0-pytorch),官方技术博客在 8 月 31 日跟进,由研究科学家 Ayush Jain 和 Rajat Sen 联合署名。模型 330M 参数,预训练语料超过 1 万亿时间点,在 GIFT-Eval、FEV-Bench、TIME 三个公开基准上都拿下了预训练基础模型中的第一。伴随这次发布还有一个容易被忽略但影响实际使用的变化:3.0 的预训练权重从 Apache-2.0 转到了专用非商用许可。

TimesFM 是什么:把 decoder-only 搬进时序预测
TimesFM(Time Series Foundation Model)是 Google Research 的时间序列预测基础模型,第一代 2024 年随 ICML 2024 论文《A decoder-only foundation model for time-series forecasting》(arXiv:2310.10688)发布。它把语言模型的 decoder-only 思路搬进时序预测:把连续的时间点切成 patch(每块 32 个点),patch 作为 token 喂进 transformer,模型基于历史 patch 生成未来 patch。训练语料不依赖某个具体领域,而是混合了真实序列(维基百科页面浏览量、Google Trends 热搜查询)和大规模合成序列,模型学到的更像「序列怎么延续」的通用规律,落地时对没见过的数据直接做零样本预测。
2025 年 9 月的 2.5 版做过一次瘦身:参数从 500M 降到 200M,上下文长度从 2048 拉到 16k,并加入可选的 30M 分位数头支持最多 1k 步的连续分位数预测。这几代模型有一个共同限制:只支持单变量预测,一次只看一条序列自己的历史。
3.0 的核心变化:原生多变量
实际业务里的预测问题大多是多变量的。官方博客举的例子是零售销量:预测某个 SKU 下个月的销量,只看它自己的历史曲线不够,还要参考关联商品的销售、历史客流,以及促销计划、天气预报、节假日这类已知未来信息。2.5 及之前的版本对这一切都视而不见。
TimesFM 3.0 原生支持三类输入:
- 多目标联合预测:同时预测多条相关序列(比如同一品牌的多个 SKU),一次前向传播输出全部目标的点预测和分位数预测;
- 过去协变量:只存在于历史区间的外部特征(比如过去的客流量);
- 过去-未来协变量:未来已知的动态信息(比如排期好的促销、天气预报),这类信号可以直接引导预测。
官方演示里最能说明问题的是促销场景。把下个月的促销排期作为过去-未来协变量传入,模型从历史数据里学出促销与销量提升的关系,再把这层关系应用到未来有促销的日期,预测曲线在每个促销日提前抬升约 20%;传统单变量模型看不到排期,预测曲线照旧按周期模式走平。

架构拆解:交替注意力与单次解码
3.0 保留了 decoder-only 骨架,Hugging Face model card 给出的具体规格是:Stacked Mixing Transformer 结构,20 层 transformer,模型维度 1280,16 个注意力头,输入 patch 长 32,输出(horizon)patch 长 64,归一化采用 CPM 迭代式 RevIN,用于吸收不同序列之间量级的巨大差异。
token 构造按输入类型分两种。目标和过去协变量序列的 token 直接来自单个 patch;过去-未来协变量采用「前瞻」构造:每个 token 把当前 patch 和后续 patch 拼在一起,让模型在每个时间步都能看到即将到来的已知信号。
主干部分是一个二维注意力网格,两种注意力逐层交替:
- 因果时间注意力(causal temporal attention):沿时间轴横向注意,严格因果,每个 token 只能看自己这条序列的过去 patch,防止未来信息泄漏进训练;
- 全变量注意力(full variate attention):沿变量轴纵向注意,同一时间步的 token 可以看到数据集里所有其他序列,用于捕捉跨序列相关性(比如一个序列的促销如何影响另一条序列的销量)。
解码方式是这次改动幅度最大的部分。前几代 TimesFM 逐 patch 自回归地生成预测,延迟随预测长度线性增长,误差也会逐步累积。3.0 改用 Contiguous Patch Masking(arXiv:2505.23719):把未来 horizon 的位置全部放上被遮罩的占位 token,与观测上下文一起送进网络,其中目标和过去协变量在 horizon 区间被遮罩(未来值未知),过去-未来协变量在 horizon 区间保持可见(未来已知),两种注意力层交替填充后,一次前向传播同时补全所有被遮罩的 patch,没有迭代循环。每个目标序列在每个 horizon 步输出 9 个分位数(10% 到 90%),概率预测信息完整。
基准成绩:两个模式都排第一
Google 把 TimesFM-3 放进三个公开基准:GIFT-Eval、FEV-Bench 和 TIME,对比对象包括 Salesforce 的 Chronos-2、Datadog 的 Toto 2.0 家族(22m/313m/1B/2.5B)、TiRex 系列,以及自家上一代 TimesFM-2.5。三张官方散点图的横纵轴分别是点预测平均排名和概率预测平均排名(越靠左下越好),每张图上 TimesFM-3 有两个点:
- 单变量模式(不给任何协变量和跨序列信息,与传统单变量模型同规则对比):排名已经追平或超过全部对手;
- 完整多变量模式(利用跨序列信息和协变量):三个基准的点预测和概率预测两项都拿到所有预训练基础模型中的最佳平均排名。
具体到单项:FEV-Bench(100 个真实世界预测任务)总排名第一;TIME 基准(50 个领域数据集、98 个评估任务)总排名第一;GIFT-Eval 在全部基础模型中排名第一。从散点图看,GIFT-Eval 上 TimesFM-3 的多变量模式平均排名约 21/21(点预测/概率预测),单变量模式约 25/25,而 Chronos-2、Toto-2.0-313m 等对手分布在 35 以上,TimesFM-2.5 落在 44 附近。


参数量级还有一层对比:拿下第一的模型只有 0.3B 参数(safetensors 权重 F32 格式约 1.2GB),对比图里 Toto-2.0-2.5B 的参数量是它的七倍多。0.3B 的体量意味着一张 24GB 显存的消费级显卡(RTX 4090 级别)就能轻松完成本地推理,不需要数据中心设备。
许可证变化:代码与权重分家
这次发布里对使用者影响最直接的是许可条款。仓库 README 的说明是:源代码维持 Apache-2.0;2.5 及更早的预训练权重维持 Apache-2.0;3.0 的预训练权重则采用单独的 timesfm-non-commercial-license-v1.0,仅限非商业、非生产环境使用,默认权重的商业和生产用途不被允许。
对个人研究、学习、内部实验没有影响,权重照常可以从 Hugging Face 下载;打算把 3.0 权重用进商业产品或生产系统的团队,目前只有两条路:留在 Apache-2.0 的 2.5 权重上(单变量场景),或者等 Google 后续放开条款。历史上 Google 对 TimesFM 系列的权重许可一直宽松,这次收紧大概率与模型能力升级有关,官方暂未解释原因,也暂未说明商用授权的获取方式。
部署与使用边界
安装走 PyPI:
pip install timesfm[torch]3.0 的 Python 接口换成了新的 timesfm3 包。单变量场景支持变长批量输入:
import numpy as np
from timesfm3 import TimesFM3Evaluator, ModelConfig
config = ModelConfig(
checkpoint_path="google/timesfm-3.0-pytorch",
per_core_batch_size=32,
device="cuda"
)
forecaster = TimesFM3Evaluator(config)
ts1 = np.linspace(0, 1, 100).astype(np.float32)
ts2 = np.sin(np.linspace(0, 24, 72)).astype(np.float32)
outputs = list(forecaster.predict_batch(
[ts1, ts2], horizon=12, return_quantiles=True, use_symmetric_averaging=False
))
print(outputs[0].forecast.shape) # (12,)
print(outputs[0].quantiles.shape) # (12, 9)多变量场景把目标序列组织成 (num_variates, context_length) 的二维数组,协变量按是否含未来区间分别传入:
context_len, horizon = 128, 24
target = np.random.randn(3, context_len).astype(np.float32) # 3 条目标序列
past_only_cov = np.random.randn(1, context_len).astype(np.float32) # 1 条过去协变量
past_future_cov = np.random.randn(2, context_len + horizon).astype(np.float32) # 2 条含未来区间的协变量
outputs = list(forecaster.predict_batch(
contexts=[target],
horizon=horizon,
past_only_covariates=[past_only_cov],
past_future_covariates=[past_future_cov],
return_quantiles=True,
))
print(outputs[0].forecast.shape) # (3, 24)
print(outputs[0].quantiles.shape) # (3, 24, 9)产品侧,TimesFM 已经接入 Google 三条产品线:BigQuery ML(SQL 接口 AI.FORECAST,当前可用的版本是 2.5)、Google Sheets(2026 年 2 月起在 Connected Sheets 中提供)、Vertex Model Garden(容器化端点,供智能体调用)。3.0 的 BigQuery 集成官方说法是「未来几周内落地」。
选型上的几个事实边界:3.0 的零样本能力覆盖官方列出的零售、金融、可观测性、制造、医疗、自然科学等领域,但基准成绩来自这三个公开榜单,具体业务数据上的表现仍需自行验证;权重 0.3B 的体量对硬件要求很低,而非商用许可把试用和商用清楚地隔开;需要商用且只有单变量需求的场景,Apache-2.0 的 2.5 权重仍是当前可直接落地的版本。
来源:Google Research 官方博客(2026-08-31) · google-research/timesfm GitHub · google/timesfm-3.0-pytorch Hugging Face