时序基础模型 Google TimesFM(上):模型算法和工程实践

目录
在上一篇《要不要在一片森林中建起一座“通天塔”:浅析时序基础模型与工程落地》中,我们梳理了“借壳语言模型”与“时序原生基础模型”(Time Series Foundation Models,TSFMs)的底层分野:剥离沉重的自然语言外壳、直接在连续时间序列上从头预训练的紧凑深度架构,才是工业界应当认真评估的方向。
概念解析:什么是时序基础模型与“零样本预测”(Zero-shot Forecasting)?时序基础模型(TSFM)是指在跨行业、跨采样频段(涵盖从秒级传感器到月度财务报表)的数千亿乃至万亿连续观测点上,完成大规模预训练的高容量深度神经网络。它最具吸引力的商业价值在于零样本预测(Zero-shot Forecasting):面对全新开张的门店、刚刚上架的新品类或新投产的设备,模型无需使用本地历史数据重新训练或微调参数(Fine-tuning);只需输入可见的历史观测序列,模型就能凭借预训练沉淀下的波形几何规律与周期先验,直接推演未来走势。
文章发布后,不少一线工程师提出了一个共同的疑问:如今打开 Hugging Face 等主流时序评测榜单——无论是 GIFT-Eval[1]、fev-bench[2] 还是 ICML 2026 的 TIME 基准[3]——上面密密麻麻陈列着 Chronos-2、TimesFM、Moirai、Sundial、Timer、TiRex 等数十个模型。算法团队既没有精力逐一研读所有论文,也不可能把所有模型权重都下载到本地跑一遍离线回测与线上验证。在如此拥挤的赛道中,为什么值得以 Google 的 TimesFM 为标本,展开一次从底层数学到企业部署的系统拆解?
理由其实只有两条,但足够充分:
第一,榜单上的模型虽多,底层建模思想已高度同构——“解剖一只麻雀,足以看懂整张榜单”。 剥开各家论文里的新词包装,过去两年能够稳居第一梯队的主流原生时序大模型,在底层设计上已经高度收敛。除了极早期尝试将连续数值离散化为词表分箱的方案(如第一代 Chronos[4])外,目前的主流架构几乎都在围绕同一套核心范式迭代:局部窗口归一化、连续时间切片(Patching,将一维波形按固定步长切分为输入词元)、纯因果 Transformer 解码器、多步点预测与分位数联合输出头,以及真实与合成混合语料预训练。与其浮光掠影地罗列十几份参数对比表,不如把这套最具代表性的工业级架构从输入切片、前缀掩码对齐到损失函数彻底拆透。只要真正弄清楚 TimesFM 是如何处理不等长冷启动序列、如何抑制长程自回归误差累积、又如何融合促销协变量的,再去审视榜单上的其他模型时,就能一眼看穿它们究竟调整了哪块积木。
第二,Google 的全栈工程落地,使它成为少数同时提供开源 Python 权重与云端托管接口的研究对象。 学术界很多刷榜模型在论文接收后往往停留在静态的权重快照上,缺乏应对复杂商业诉求的持续迭代;而 TimesFM 从 2024 年初登 ICML 的 1.0 版本[5],一路迭代至 2.0、2.5,再到 2026 年下半年的 3.0 版本[6],留下了可以对照研究的架构、代码和部署契约。工程团队既可以通过固定 revision 的 Python checkpoint 建立可复现基线,也可以评估 BigQuery AI.FORECAST 或 Vertex AI 等托管路径[7]。这些路径的输入契约、许可证和成本并不相同,不能把“同属 TimesFM”理解为同一种运行环境。
核心导览与判断
- 架构演进:TimesFM 1.0–2.5 采用 Decoder-only 因果架构,以输入切片 \(p=32\) 和输出切片 \(h=128\) 减少长预测区间中的滚动次数。TimesFM 3.0 保留 32 步输入切片,但将输出切片改为 64,并通过连续切片掩码(Contiguous Patch Masking,CPM)一次填充整个未来区间,不再沿用“最后一个历史词元逐 patch 滚动”的解码方式[6]。
- 任意长度泛化:训练阶段引入随机前缀掩码(Random Prefix Masking),使模型适应从任意模 \(p\) 余数位置起步,从而在面对仅有十几天历史的冷启动序列时能够无缝对齐。
- 协变量接入与合规边界:纯单变量模型无法感知零售促销与闭店日历;工业落地需通过 XReg(上下文内岭回归残差分解)或 TimesFM 3.0 的时空交替注意力网格接入业务计划。在私有化部署时,必须严格区分 TimesFM 2.5 的
Apache-2.0商用许可与 TimesFM 3.0 权重的非商用限制。 - 可复现实验接口:本文配套基准固定
google/timesfm-3.0-pytorch的具体 revision,以 Python 适配器分别运行单变量和已知协变量配置;BigQuery 仍是部署选项,但不是当前实验结果的来源。
一、四代演进与业务动机 #
在展开推导前,不妨先沿时间轴审视 Google Research 团队在过去三年中对 TimesFM 的四次架构迭代。每一次版本演进,都对应着工业界在业务落地时撞上的一堵“南墙”:
| 演进维度 | TimesFM 1.0 | TimesFM 2.0 | TimesFM 2.5 | TimesFM 3.0 |
|---|---|---|---|---|
| 发布时间 | 2024 年 2 月 / ICML'24[5] | 2024 年 12 月 | 2025 年 9 月 | 2026 年 8 月[6] |
| 参数规模 | 200M | 500M | 200M(另配 30M 分位数头) | 330M |
| 最大上下文 \(L_{\max}\) | 512 步 | 2,048 步 | 16,384 步 | BigQuery 最多 2,048 步[7] |
| 输入/输出切片 | \(p=32 \to h=128\) | \(p=32 \to h=128\) | \(p=32 \to h=128\)(支持千步分位数) | \(p=32 \to h=64\) + CPM |
| 外生协变量 | 不支持(纯单变量) | 外挂 XReg 岭回归 | 外挂 XReg 岭回归 | 原生时空全变量注意力 |
| 开源权重协议 | Apache-2.0 | Apache-2.0 | Apache-2.0(商用安全) | timesfm-non-commercial-v1.0 |
对照这张演进表,四代迭代背后的工程动机非常明确:
- TimesFM 1.0(验证非对称切片基座):确立了
Patch (p=32 -> h=128)、20 层 Decoder-only 主干与点预测/分位数联合输出头的标准范式,首次在单变量零样本基准上证明了纯连续波形切片预训练能够追平监督学习模型。 - TimesFM 2.0(扩充容量与引入外挂 XReg):参数量扩展至
500M,上下文窗口增至2,048步,并提供 XReg 接口,使模型能够纳入节假日和促销等外部信号。 - TimesFM 2.5(精简架构与 16k 长上下文):主干调整为
200M,上下文增至16,384步;同时移除旧版的显式采样频率参数,并提供独立的 30M 连续分位数头(Continuous Quantile Head)。 - TimesFM 3.0(迈向原生多变量与端到端协变量):在超万亿时间点上预训练
330M模型[6],在主干中交替堆叠因果时间注意力与全变量注意力。未来已知协变量通过 lookahead 词元暴露给模型,CPM 则让模型一次生成完整预测区间。公开 PyTorch 权重采用非商用协议;商业生产可依据 Google Cloud 服务条款使用 BigQuery,或选择采用 Apache-2.0 协议的 2.5 权重[7][9]。
简而言之:1.0 确立了“如何将一维连续时序高效切片并由 Transformer 外推”的基础范式;2.0 与 2.5 攻克了“超长上下文吞吐与外挂线性协变量”的实用化瓶颈;而 3.0 则完成了向“原生多变量端到端基础模型”的跨越。
二、分版本拆解切片与解码架构 #
为什么大语言模型(如 GPT-4、LLaMA)能够直接采用“读入一个词、预测下一个词”的逐点自回归(Point-by-point Autoregression),而时序基础模型却行不通?
核心制约在于信息密度与误差累积:
- 单点数值缺乏局部几何语义:自然语言中的单个词元(Token)蕴含明确语义;而时序数据中的单个浮点数(如 \(y_t = 102.0\)),一旦脱离了相邻时间点的斜率、曲率与局部波动,几乎无法表达任何几何形态。此外,若将长度为 \(L=2048\) 的序列逐点展开计算自注意力,\(O(L^2)\) 的显存与计算开销在工程上极不经济。
- 多步自回归会增加误差累积机会:商业预测很少只需预测未来 1 个时间步,通常需要一次性推演未来 28 天(零售补货)甚至 720 小时(电力负荷)。若每次前向只输出 \(\hat{y}_{L+1}\),再将其拼入输入端递归预测 \(\hat{y}_{L+2}\),数十次滚动不仅增加延迟,也会反复把前序预测当成后续输入,使早期误差可能继续传播并放大。
为了打破这种双重制约,Das 等人[5]为早期 TimesFM 设计了基于非对称连续切片(Asymmetric Patching)的纯解码器(Decoder-only)架构。下面三个阶段描述的是 TimesFM 1.0–2.5;TimesFM 3.0 仍使用 32 步输入切片,但解码方式已经改为 CPM,将在 2.4 节单独说明:
- 阶段 1(输入表征层):\(p=32\) 连续切片、RevIN 尺度剥离与特征升维;
- 阶段 2(因果主干层):20 层 Transformer 解码器汇聚全局历史感受野;
- 阶段 3(输出投影层):\(h=128\) 长步长单次前向,输出点预测与 P10–P90 走廊。
下面分别拆解各阶段的数学机制与张量变换:
2.1 输入表征与切片归一 #
在应用数学与深度学习规范中,本文所有一维向量默认均为列向量(Column Vector)。给定一条长度为 \(L\) 的历史时间序列列向量 \(\mathbf{y}_{1:L} = (y_1, y_2, \dots, y_L)^\top \in \mathbb{R}^L\):
第一步是序列切分(Patching)。模型将长度为 \(L\) 的一维序列按固定步长 \(p\)(TimesFM 1.0/2.0/2.5 标准输入切片长度 input_patch_len 设为 \(p=32\))切分为 \(N = \lceil L / p \rceil\) 个连续子序列切片列向量:
若原始长度 \(L\) 不是 \(p=32\) 的整数倍,模型在首个切片前端左填充补零(Left-padding),并同步生成二元掩码列向量 \(\mathbf{m}_j \in \{0, 1\}^p\)(\(m_{j,k}=1\) 表示填充或掩码无效点,\(m_{j,k}=0\) 表示有效真实观测点)。
第二步是可逆实例归一化(Instance Normalization)。不同业务序列的量纲差异巨大——超市鸡蛋日销量可能是数百盒,奢品手袋可能是零点几只,电网负荷则是数万兆瓦。为了让同一套网络权重适应不同量纲,TimesFM 在输入端单独计算首个有效窗口的样本均值 \(\mu\) 与标准差 \(\sigma\) 进行标准化处理:
\[ \tilde{\mathbf{y}}_j = \frac{\mathbf{y}_j - \mu \mathbf{1}}{\sigma + \epsilon} \in \mathbb{R}^p \]其中 \(\mathbf{1} = (1, \dots, 1)^\top \in \mathbb{R}^p\),\(\epsilon\) 为防止常数序列除零的极小常数(如 \(10^{-5}\))。该操作与 RevIN[8] 思想一致:在进入注意力网络前剥离绝对水平与尺度,仅保留相对波形几何;网络输出预测后,再反向乘回 \(\sigma\) 并加上 \(\mu\),恢复真实物理单位。
第三步是输入残差块投影(Input Residual Block)。归一化后的 \(p\) 维切片列向量与掩码列向量纵向拼接为 \(2p\) 维特征列向量 \(\mathbf{u}_j\),随后输入带跳跃连接的多层感知机(MLP Residual Block),投影到 Transformer 的隐藏维度 \(d_{\text{model}}=1280\):
\[ \begin{aligned} \mathbf{u}_j &= \begin{bmatrix} \tilde{\mathbf{y}}_j \odot (\mathbf{1} - \mathbf{m}_j) \\ \mathbf{m}_j \end{bmatrix} \in \mathbb{R}^{2p}, \\[4pt] \mathbf{t}_j &= \operatorname{ResBlock}_{\text{in}}(\mathbf{u}_j) + \mathbf{p}_j + \mathbf{f}_{\text{freq}} \in \mathbb{R}^{d_{\text{model}}} \end{aligned} \]各符号含义如下:
| 符号 | 维度或类型 | 数学与工程含义 |
|---|---|---|
| \(\tilde{\mathbf{y}}_j \odot (\mathbf{1} - \mathbf{m}_j)\) | \(\mathbb{R}^p\)(列向量) | 填充位置清零后的标准化输入切片;\(\odot\) 为逐元素相乘 |
| \(\mathbf{u}_j\) | \(\mathbb{R}^{2p}\)(列向量) | 数值切片与二元掩码纵向拼接而成的 \(2p=64\) 维输入特征向量 |
| \(\operatorname{ResBlock}_{\text{in}}(\mathbf{u}_j)\) | \(\mathbb{R}^{2p} \to \mathbb{R}^{d_{\text{model}}}\) | 输入残差映射:\(\mathbf{W}_{\text{out}}\,\sigma_{\text{act}}(\mathbf{W}_{\text{hid}}\mathbf{u}_j + \mathbf{b}_{\text{hid}}) + \mathbf{W}_{\text{skip}}\mathbf{u}_j\) |
| \(\mathbf{p}_j\) | \(\mathbb{R}^{d_{\text{model}}}\)(列向量) | 第 \(j\) 个 Patch Token 的绝对位置编码,标明时间先后次序 |
| \(\mathbf{f}_{\text{freq}}\) | \(\mathbb{R}^{d_{\text{model}}}\)(列向量) | 采样频率嵌入(2.5 起已移除显式参数,由长上下文自适应推断) |
2.2 因果解码器主干网络 #
生成词元序列 \((\mathbf{t}_1, \dots, \mathbf{t}_N)\) 后,模型将其送入 Transformer 解码器主干。以下公式以原始 200M 架构为例:它包含 20 层解码器块、每层 16 个注意力头,隐藏维为 \(d_{\text{model}}=1280\);不同版本的层数和容量并不完全相同。
在 TimesFM 1.0 至 2.5 中,主干网络严格执行单变量因果时间自注意力(Causal Self-Attention):第 \(j\) 个切片词元 \(\mathbf{t}_j\) 在计算注意力时,由于下三角因果掩码的存在,只能关注当前及之前的历史词元 \(\{\mathbf{t}_1, \dots, \mathbf{t}_j\}\),绝不能获取未来的切片信息。该设计具备两项核心优势:
- 训练高效:类似大语言模型的 Next-token Prediction,一条长度为 \(N\) 个切片的序列在单次前向中即可同时计算所有位置 \(j=1, \dots, N\) 对各自未来窗口的损失。
- 上下文长度可变:因信息按时序逐步累积,同一检查点可以接收从短序列到其配置上限内的不同上下文长度;上限随版本而变化。
2.3 非对称长步长输出头 #
以原始 200M 架构为例,末尾输入词元经过 20 层解码器得到顶层隐状态 \(\mathbf{h}_N^{(20)} \in \mathbb{R}^{d_{\text{model}}}\),再由输出残差块(Output Residual Block)映射为未来预测:
\[ \hat{\tilde{\mathbf{y}}}_{Np+1 \,:\, Np+h} = \operatorname{ResBlock}_{\text{out}}\!\left(\mathbf{h}_N^{(20)}\right) \in \mathbb{R}^{h \times (1 + |\mathcal{Q}|)} \]其中 \(1 + |\mathcal{Q}|\) 表示旧版输出接口中每个时间步包含 1 个点预测与 \(|\mathcal{Q}|=9\) 个分位数预测(对应 \(\mathcal{Q}=\{0.1, 0.2, \dots, 0.9\}\)):
- 点预测(Point Forecast):不同版本与接口可能分别返回均值或 P50,使用时必须查明契约。BigQuery
AI.FORECAST的forecast_value明确定义为 P50 条件中位数,而不是条件期望[7]。 - P90 分位数(90th Percentile):在模型条件分布下,需求超过该水平的概率为 10%。它可以作为库存决策的输入,但不等同于安全库存上限,也不能单独保证 90% 服务水平。
- P10 分位数(10th Percentile):在模型条件分布下,需求低于该水平的概率为 10%。它可辅助评估下行风险,但不是可直接套用的清仓线或库存下限。
- P10–P90 预测区间宽度:描述模型给出的分布离散程度;它是否校准,仍需在多个时间窗口和序列上验证。
为什么采用“短输入(\(p=32\))、长输出(\(h=128\))”的非对称设计?
Das 等人在消融实验中证实了这一权衡的工程必要性[5]:
- 输入切片不宜过长:若将输入切片设为 \(p=128\),一条仅有 28 天或 50 天历史的短序列连一个完整切片都填不满,局部转折细节会在过宽的线性投影中被平滑抹去;同时用于适应任意长度的随机前缀掩码需在 \(0 \sim 127\) 之间采样,收敛难度陡增。
- 输出切片保持较长:若将输出切片缩短为 \(h=32\) 或 \(h=8\),覆盖 128 步分别需要 4 次或 16 次滚动。\(h=128\) 能减少重复前向与误差累积机会;未来 28 天补货等任务可从一次输出中截取所需区间,但这并不消除长预测区间本身的不确定性。
2.4 TimesFM 3.0:CPM 非自回归解码 #
TimesFM 3.0 没有把 1.0–2.5 的 \(h=128\) 输出头原样扩展到多变量网格。官方配置使用 32 步输入切片和 64 步输出切片,并采用连续切片掩码(Contiguous Patch Masking,CPM)生成未来[6]:
- 模型在已观测历史词元之后追加覆盖预测区间的占位词元;
- 目标变量和仅历史可知的协变量在未来区间保持掩码,未来已知协变量则保留可见值;
- 未来已知协变量使用 lookahead 构造,让当前词元能够携带后续计划信号;
- 因果时间注意力与全变量注意力交替传播信息,模型在一次前向中同时填充全部未来占位词元,并为每个目标输出 P10 至 P90 九个分位数。
因此,3.0 的“一次前向”不是从最后一个历史词元投影 128 步,也不是把预测结果追加回输入后继续滚动,而是利用未来占位词元并行解码整个请求区间。这个差异决定了后文的张量示例必须按版本分别讨论。
2.5 外生业务协变量接入 #
在理解了单变量从切片到输出的完整流水线后,便能进一步探讨工程落地中最关注的现实问题:现实中的促销折扣、气温高低和节假日,究竟是在哪个环节、以何种形式进入模型的?
所谓外生协变量(Exogenous Covariates),指除了目标预测序列自身历史数值之外、由商业策略或物理环境驱动且对需求产生直接影响的辅助特征。以零售日销量 \(y(t)\) 为例,其数据生成机制往往由多种业务因素共同决定:
\[ y(t) = g(t) + s(t) + h(t) + \beta_{\text{discount}} \cdot \text{discount}(t) + \beta_{\text{temp}} \cdot \text{Temp}(t) + \epsilon_t \]其中 \(g(t)\) 代表基线趋势,\(s(t)\) 为周期季节项,\(h(t)\) 为节假日与闭店脉冲。八折大促(折扣率 \(q_t = 0.20\))会带来固定需求增量,闭店日(营业指示变量 \(O_t = 0\))导致物理销量硬归零,夏季高温则持续拉升冷饮需求。
在时序大模型的架构中,这些外生变量按信息时效性严格区分为两大类:
- 未来已知的强确定性业务变量(Future-known Covariates,覆盖历史与未来,总长 \(L + H\)):
- 营销计划:如未来 28 天的前 7 天排定八折大促(
discount = 0.20); - 法定营业日历:排定的闭店日(
is_open = 0,当天绝无销售机会); - 公共节假日:法定节假日日历标记(
is_holiday \in \{0, 1\})。
- 营销计划:如未来 28 天的前 7 天排定八折大促(
- 仅历史可知 / 未来需依赖预报的环境变量(Past-only / Forecasted Covariates):
- 天气与气温:历史 50 天的日最高气温 \(\mathrm{Temp}_t\) 为实测真值;但预测未来 28 天时,业务无法预知真实天气,只能输入数值气象预报值或历史同期常态均值。
针对这两类变量,TimesFM 在演进过程中交出了两份截然不同但各具工程智慧的答卷:
- 范式 A(TimesFM 2.0 / 2.5:外挂 XReg 正交解耦):
XReg为 Exogenous Regressors(外生回归器) 的缩写。其核心设计理念是正交解耦:让 Transformer 主干保持单变量一维切片的纯净性(只处理去脉冲后的平稳残差,以保障 200M 级别模型的高吞吐与通用性),同时在外部挂接局部岭回归(Ridge Regression),按三步完成流转:- 历史冲击剥离:在历史期 \(1:L\) 求解带 L2 正则的系数闭式解: \[ \hat{\boldsymbol{\beta}} = \left(\mathbf{X}_{1:L}^\top \mathbf{X}_{1:L} + \lambda \mathbf{I}\right)^{-1} \mathbf{X}_{1:L}^\top \mathbf{y}_{1:L} \] 求得促销、闭店与气温的敏感度系数;
- 纯净残差外推:剥离外部脉冲得到平稳残差 \(\mathbf{r} = \mathbf{y} - \mathbf{X}\hat{\boldsymbol{\beta}}\),交由 TimesFM 单变量主干执行零样本自回归外推;
- 未来计划叠回:将 TimesFM 预测的平稳残差 \(\hat{\mathbf{r}}\) 与未来排定的业务计划 \(\mathbf{X}_{\text{future}}\hat{\boldsymbol{\beta}}\) 线性叠加,还原业务预测值。
- 范式 B(TimesFM 3.0:原生二维变量网格):将输入从一维切片序列升维为“变量通道 \(\times\) 时间切片网格”,张量维度扩展为 \([B,\, C,\, N,\, d_{\text{model}}]\) (\(C\) 为变量数,如销量、折扣、气温、营业状态)[6]。主干层采用时空交替注意力机制(Alternating Attention):
- 因果时间注意力层:固定通道索引 \(c\),沿时间轴 \(N\) 单向传递信息,严格隔绝未来信息向历史渗透;
- 全变量跨通道注意力层:固定时间切片索引 \(j\),在同一时间切片内让 \(C\) 个通道计算双向注意力。此时目标销量词元能与当期的折扣和气温词元自由交互;对未来已知协变量(如未来 28 天排定的折扣),其未来切片直接填入网格,使销量在隐层空间端到端感知促销强度,自适应捕捉非线性交叉影响。
2.6 端到端张量穿透实例 #
为了将数学公式与工程实现紧密结合,下文以单品零售预测场景为例,追踪一条融合外生变量的序列从输入到输出的全部张量流转。
符号与张量维度约定:
- 向量默认均为列向量;深度学习实现中加上批维度表示为 \([B=1, L=50]\);
- 输入切片步长 \(p = 32\),输出切片步长 \(h = 128\),业务预测天数 \(H = 28\)(\(H \le h\),仅需 1 次前向);
- 特征列向量 \(\mathbf{u}_j \in \mathbb{R}^{64}\);解码器隐状态列向量 \(\mathbf{h}_j^{(l)} \in \mathbb{R}^{1280}\);
- 在 TimesFM 2.5 + XReg 范式下,主干模型处理的是剥离外生冲击后的平滑残差列向量 \(\mathbf{r}_{1:50} \in \mathbb{R}^{50}\)。
1. 业务输入与协变量 #
- 目标日销量:长度 \(L=50\) 天的历史日销量列向量 \(\mathbf{y}_{1:50} = (y_1, \dots, y_{50})^\top \in \mathbb{R}^{50}\);
- 外生协变量矩阵 \(\mathbf{X}\) (覆盖历史 50 天 + 未来 28 天,总长 \(78\) 天):包含折扣率
discount、营业状态is_open(闭店日为 0)与最高气温temp; - 业务预测目标:一次性输出未来 \(H=28\) 天的点估计与 P10–P90 分位数区间。
2. XReg 范式流转 #
- 局部岭回归剥离脉冲: 在历史 50 天上,利用局部岭回归求解系数向量 \(\hat{\boldsymbol{\beta}} \in \mathbb{R}^3\): \[ \hat{\boldsymbol{\beta}} = \left(\mathbf{X}_{1:50}^\top \mathbf{X}_{1:50} + \lambda \mathbf{I}\right)^{-1} \mathbf{X}_{1:50}^\top \mathbf{y}_{1:50} \] 提取去促销平滑残差列向量:\(\mathbf{r}_{1:50} = \mathbf{y}_{1:50} - \mathbf{X}_{1:50}\hat{\boldsymbol{\beta}} \in \mathbb{R}^{50}\)。
- 切片、掩码对齐与 \(\mathbf{u}_j\) 构造(\([1, 50] \to [1, 2, 64]\)): 步长 \(p=32\),切分为 \(N = \lceil 50/32 \rceil = 2\) 个切片。首个切片左填充 \(14\) 个 0,拼接掩码 \(\mathbf{m}_1 \in \{0, 1\}^{32}\)(前 14 位为 1,后 18 位为 0);第 2 个切片全部有效(掩码全为 0)。归一化后构造输入特征矩阵 \(\mathbf{U} \in \mathbb{R}^{2 \times 64}\)(张量维度 \([1, 2, 64]\))。
- 输入残差块投影(\([1, 2, 64] \to [1, 2, 1280]\)): 映射为词元序列 \(\mathbf{H}^{(0)} \in \mathbb{R}^{2 \times 1280}\)。
- 20 层因果解码器递推: 逐层维持 \([1, 2, 1280]\) 维度。第 1 个 Token 因下三角遮罩仅见自身;第 2 个 Token 聚合第 1 个 Token 的历史并保留当前动态,全序列感受野汇聚于顶层隐状态 \(\mathbf{h}_2^{(20)} \in \mathbb{R}^{1280}\)。
- 输出残差投影与未来重建(\([1, 1280] \to [1, 128, 10] \to [1, 28, 10]\)): \(\operatorname{ResBlock}_{\text{out}}\) 单步直出未来 128 步的 10 通道矩阵(1 点预测 + 9 分位数);反归一化还原尺度后,叠加未来 28 天已知计划 \(\mathbf{X}_{51:78}\hat{\boldsymbol{\beta}}\),截取前 28 步交付最终结果。
3. TimesFM 3.0 的网格与占位词元 #
在 TimesFM 3.0 中,协变量不再通过外部岭回归解耦,而是直接在神经网络内部交互。不过,未来已知协变量的词元并不只是与历史目标序列做同形拼接:
- 历史切片:销量、折扣、营业状态和气温仍按 32 步切片,并组织为“变量 \(\times\) 时间”的词元网格;
- 未来占位:预测未来 28 天时,模型为目标销量和仅历史可知变量追加被掩码的未来占位词元;
- lookahead 协变量:折扣与营业日历等未来已知变量保留计划值,并把未来 patch 信息编码到协变量词元中;
- 交替注意力与解码:时间注意力保持因果性,变量注意力在同一时间位置连接各通道;CPM 随后一次生成整个 28 天区间的九个分位数。
这里不再写死 [1, 4, 2, 64] -> [1, 4, 2, 1280] -> [1, 28, 10] 之类的形状,因为 3.0 的实际词元数还取决于未来占位 patch、lookahead 结构、批处理方式和调用接口。对工程团队而言,稳定的接口契约是“目标变量、仅历史协变量、历史—未来协变量”三类输入,而不是沿用 2.5 的最后词元输出头。
全流程演进对比如下:
| 执行阶段 | TimesFM 2.5 + XReg | TimesFM 3.0 |
|---|---|---|
| 输入类型 | 单目标历史 + 历史/未来协变量 | 多目标、仅历史协变量、历史—未来协变量 |
| 协变量融合 | 局部岭回归剥离并叠回线性增量 | lookahead 词元 + 全变量注意力 |
| 时间解码 | 最后历史词元输出 128 步;超长区间继续滚动 | CPM 追加未来占位词元,一次填充请求区间 |
| 输出语义 | 点预测与分位数接口依配置而定 | 每个目标在每个未来时间步输出 P10–P90 九个分位数 |
| 28 天任务 | 截取 128 步输出的前 28 步 | 直接请求并解码 28 天预测区间 |
三、通用预训练算法机理 #
既然模型以 \(p=32\) 为固定步长切分词元,若线上遇到长度为 \(L=14\)(刚上架两周的新品)或 \(L=50\)(余数为 18)的序列,模型如何确保能精准从第 15 天或第 51 天紧接着向后外推?
3.1 随机前缀掩码机制 #
若仅在整倍数(\(32, 64, \dots\))序列上训练,模型就会养成只在“第 \(32k\) 个观测点后起步”的思维定势,一旦线上遇到非整倍数输入,输出就会出现相位错位。
TimesFM 在预训练阶段引入随机前缀掩码(Random Prefix Masking):
- 每个训练序列首先从均匀分布中抽取一个掩码长度: \[ r \sim \operatorname{Uniform}\{0, 1, \dots, p-1\} \]
- 将首个输入切片 \(\mathbf{y}_1\) 的前 \(r\) 个时间步强制置为掩码(\(m_{1,1} = \dots = m_{1,r} = 1\));
- 此时首个词元仅包含 \(p-r\) 个真实点,其对应的输出对齐目标区间 \(\mathbf{y}_{p+1 : p+h}\);第二个词元累计有效长度为 \(2p-r\),依此类推。
因 \(r\) 在 \(0 \sim 31\) 之间均匀采样,模型在数千亿次迭代中充分学习了所有模 \(p\) 余数下的未来外推映射。推理时,前端自动左填充补零,最后一个词元自然精准从第 \(L+1\) 步起步外推。
3.2 复合分位数损失函数 #
TimesFM 优化的是标准化空间下的点预测均方误差(MSE)与多步分位数球棒损失(Pinball / Quantile Loss)之和[5]:
\[ \begin{aligned} \mathcal{L}(\Theta) &= \frac{1}{N} \sum_{j=1}^{N} \Bigl( \mathcal{L}_{\text{point}}(j) + \mathcal{L}_{\text{quantile}}(j) \Bigr), \\[6pt] \mathcal{L}_{\text{point}}(j) &= \frac{1}{h}\left\|\tilde{\mathbf{y}}_{jp+1:jp+h} - \hat{\tilde{\mathbf{y}}}_j^{(\text{point})}\right\|_2^2, \\[6pt] \mathcal{L}_{\text{quantile}}(j) &= \frac{1}{h} \sum_{q \in \mathcal{Q}} \sum_{\tau=1}^{h} \rho_q\!\left(\tilde{y}_{jp+\tau} - \hat{\tilde{y}}_{j,\tau}^{(q)}\right) \end{aligned} \]其中 \(\rho_q(e)\) 为标准分位数损失(Pinball Loss):
\[ \rho_q(e) = \max\!\left(q \cdot e,\, (q - 1) \cdot e\right) = \begin{cases} q \cdot e, & \text{if } e \ge 0, \\[4pt] (1 - q) \cdot (-e), & \text{if } e < 0. \end{cases} \]以某天真实需求为 25 件为例:
- P90 预测低估为 22 件(残差 \(e = +3\)):惩罚为 \(0.9 \times 3 = 2.7\);
- P90 预测高估为 28 件(残差 \(e = -3\)):惩罚仅为 \((1 - 0.9) \times 3 = 0.3\)。
可见,在 P90 损失函数下,低估受到的惩罚正好是高估的 9 倍。这种非对称梯度引导模型拟合条件分布的第 90 分位数;同理,P10 损失中高估的惩罚是低估的 9 倍,促使曲线贴近第 10 分位数。模型无需假设真实时序服从对称高斯分布,便能在一次前向中输出非对称分位数区间;但训练目标本身不能保证样本外覆盖率,仍需通过多序列、多预测起点回测校准。
3.3 真实与合成语料配方 #
原始 TimesFM 1.0 论文披露的预训练配方为 80% 真实世界数据与 20% 人工合成数学过程[5]。这一比例不能直接套用于 TimesFM 3.0;3.0 官方资料只披露了真实与合成数据合计超过 1 万亿个时间点[6]。以下内容描述的是 1.0 的配方:
- 真实世界核心语料(80%):
- Google Trends(约 2.2 万个高频词的小时/日/周/月搜索热度,涵盖突发热点脉冲与作息规律);
- Wikipedia Pageviews(数百万词条的小时与日度访问流水,覆盖稀疏长尾与节假日);
- 公开时序基准(M4、电力负荷、交通流等,严格剔除下游测试窗口防泄露)。
- 人工合成数学语料(20%):
- 真实数据往往集中在特定自然周期且噪声较大。为了让 Transformer 学会通用的“时间几何算法”,Google 引入了四种经典数学过程的随机组合:
- 自回归移动平均过程(\(\operatorname{ARMA}(p, q)\),捕捉随机自相关);
- 多频正余弦叠加(随机采样非整数周期,迫使模型学习傅里叶周期外推而非死记硬背 7 天);
- 带变点的多项式与指数趋势(训练模型识别局部拐点);
- 阶跃函数与脉冲方波(模拟设备启停与促销台阶)。
- 真实数据往往集中在特定自然周期且噪声较大。为了让 Transformer 学会通用的“时间几何算法”,Google 引入了四种经典数学过程的随机组合:
3.4 核心技术术语速查 #
| 核心术语 | 形象类比 | 核心功能 | 常见误区与注意事项 |
|---|---|---|---|
| Patch Token(切片词元) | NLP 里的词汇;CV 里的图像切片 | 将连续 32 个时间点打包为高维浮点向量,保留局部波形与斜率 | 是高维连续浮点向量,非离散 ID;步长越大吞吐越高,但对极短序列不友好 |
| Context Window(上下文窗口) | 观察历史时序波形的“视野范围” | 决定模型单次前向可接入的最大历史时间步(如 1.0 的 512 步跃升至 2.5 的 16,384 步) | 较长的上下文有利于提取长周期规律;面对冷启动短序列,模型借助前缀掩码对齐,无需强求超长历史 |
| Future Covariates(未来已知协变量) | 提前排定的大促计划与营业日历 | 覆盖历史与未来(\(L+H\)),在 XReg 中估计增量,或在 3.0 中提供条件信号 | 只有预测发起时确定的计划才可作为未来已知变量;气温等环境变量需填入预报值 |
| Alternating Attn(时空交替注意力) | 纵向查历史档案、横向开部门协同会 | 时间因果注意力沿时间轴单向流动;全变量注意力在同一切片内跨通道双向交互 | 仅在 TimesFM 3.0 中引入;2.5 及以前版本主干保持纯单变量,依赖外挂 XReg 解耦 |
| Causal Mask(因果下三角掩码) | “考试单向隔板”,只看前题不看后题 | 将注意力矩阵右上三角置为 \(-\infty\),确保未来信息不向历史泄露 | 与掩码语言模型(BERT)的双向掩码不同,时序生成必须严格因果单向 |
| Residual Block(残差跳跃连接) | “高速保真直通车”,原始信号直达深层 | 实现 \(x + f(x)\),防止 20 层深度网络梯度消失,维持浅层高频特征 | 输入与输出残差块兼具升维(\(2p \to d\))与投影(\(d \to h \times 10\))功能 |
| RevIN / InstNorm(可逆实例归一化) | “进门脱外套、出门穿原衣”的清洗机 | 进网络前减 \(\mu\) 除 \(\sigma\),出网络后乘回 \(\sigma\) 加回 \(\mu\) | 若历史序列存在缺货删失,归一化统计量与输入波形都可能受影响;是否产生低估仍需用对照实验验证 |
| Prefix Masking(随机前缀掩码) | 驾校教练把车停在半坡各种位置练起步 | 训练时随机遮蔽首个切片前 \(r\) 个点,使模型精通所有模 32 余数序列 | 推理时任意长度输入均无需对齐到 32 的整数倍,前端自动左填充平滑外推 |
| Pinball Loss(分位数/球棒损失) | 对高估与低估采用不同斜率的不对称秤 | 通过斜率 \(q\) 与 \(1-q\) 的非对称惩罚,学习不依赖高斯对称假设的条件分位数 | 优化分位数损失不等于自动获得样本外校准;覆盖率仍需滚动回测 |
| P10–P90 / Quantile(分位数区间) | 未来需求分布的上下边界 | P10、P90 与区间宽度共同描述模型给出的条件分布与不确定性 | 分位数可进入库存优化,但服务水平还取决于提前期、库存位置、损失函数和校准结果,不能把 P90 直接等同于 90% 服务水平 |
四、工程实践与落地评价 #
理解了底层架构与算法机理后,工程团队最关心的实践问题是:在实际业务中如何调用 TimesFM?遇到促销折扣与节假日如何处理?生产环境中如何低成本上线?它的真实优势、局限与合规红线究竟在哪里?
注:本章涉及的云端实践代码基于 Google Cloud 官方 TimesFM 预测教程。该功能目前遵循 Google Cloud「正式发布前产品条款」(Pre-GA Offerings Terms),未来接口与参数可能发生变化,建议在生产落地前以最新的官方文档为准。
4.1 开源本地零样本推理 #
在本地 GPU 或 CPU(包括 Apple Silicon M 系列芯片)环境中,可将采用 Apache-2.0 许可的 TimesFM 2.5(200M PyTorch 版)作为开源候选基线。200M 个 FP32 参数的原始权重约为 800 MB,但完整运行时还需要模型结构、激活值和框架开销;轻量 CPU 实验宜至少预留约 4 GB 内存,并根据上下文长度和批大小实测。该版本支持最长 16,384 步上下文输入:
import numpy as np
import timesfm
# 1. 加载预训练的 TimesFM 2.5 (200M PyTorch 权重, Apache-2.0 商业协议)
model = timesfm.TimesFM_2p5_200M_torch.from_pretrained(
"google/timesfm-2.5-200m-pytorch"
)
# 2. 编译模型推理配置(例如预测未来 28 天)
model.compile(
timesfm.ForecastConfig(
max_context=1024,
max_horizon=28,
normalize_inputs=True,
use_continuous_quantile_head=True,
return_backcast=True, # 后续调用 XReg 接口时需要
)
)
# 3. 传入多条不等长历史序列(模型自动执行左填充与前缀掩码对齐)
# 示例:sku_a 为 365 天成熟品,sku_b 为上架仅 14 天的冷启动新品
inputs = [
np.sin(np.linspace(0, 20, 365)) * 15 + 100,
np.array([12.0, 15.0, 14.0, 18.0, 22.0, 25.0, 20.0,
16.0, 19.0, 21.0, 24.0, 28.0, 30.0, 26.0]),
]
# 4. 零样本前向推理:同时返回点预测 [2, 28] 与分位数预测 [2, 28, 10]
point_forecast, quantile_forecast = model.forecast(
horizon=28,
inputs=inputs,
)
同一批次内,成熟品与冷启动新品可以直接放进同一个 inputs 列表中并发前向,无需单独微调,也无需手动构造滞后特征。
4.2 XReg 协变量工程 #
若将纯单变量 model.forecast() 直接用于超市杂货或红酒品类,预测往往会出现系统性偏差:单变量主干无法获知未来排定的八折大促,也无法获知法定节假日闭店的确定性安排。
为了兼顾大模型的通用性与外部业务信号,TimesFM 提供了 XReg(In-Context Ridge Regression,上下文内岭回归)接口。在调用时,将覆盖历史与未来(总长 \(L + H\))的已知协变量传入。工程落地中主要提供两种执行模式:
- 模式一(
xreg + timesfm,默认推荐模式):- 执行逻辑:先在历史期拟合局部岭回归估计促销、折扣与闭店的即时冲击 \(\hat{\boldsymbol{\beta}}\),提取平滑残差 \(\mathbf{r} = \mathbf{y} - \mathbf{X}\hat{\boldsymbol{\beta}}\);随后由 TimesFM 对纯净残差进行零样本未来外推,最后在预测窗口叠加未来已知业务计划 \(\mathbf{X}_{\text{future}}\hat{\boldsymbol{\beta}}\)。
- 可能优势:把协变量的线性贡献与目标序列残差分开建模,可能降低促销脉冲对主干预测的干扰;是否改善促销敏感品类仍需与其他融合方式按同一信息集验证。
- 模式二(
timesfm + xreg,备选模式):- 执行逻辑:TimesFM 先在历史期执行滑动预测提取纯时序基线,计算未被基线解释的偏差残差,再利用协变量拟合局部回归补偿增量。
- 适用场景:自然周期与长期趋势占绝对主导、促销与天气仅起微调作用的弱敏感品类。
Python 调用示例:
# 使用 forecast_with_covariates 融合未来已知的折扣率、营业状态与节假日
point_forecast, xreg_forecast = model.forecast_with_covariates(
inputs=[history_sales],
dynamic_numerical_covariates={
"discount": [discount_history_and_future], # 长度必须为 L + H
},
dynamic_categorical_covariates={
"is_open": [is_open_history_and_future], # 长度为 L + H
"is_holiday": [holiday_flag_history_and_future], # 长度为 L + H
},
static_categorical_covariates={
"category": ["grocery"],
},
xreg_mode="xreg + timesfm", # 默认推荐:先剥离促销冲击,再用 TimesFM 预测平稳残差
)
TimesFM 2.5 的 XReg 额外依赖可通过 timesfm[xreg] 安装。上述“局部线性回归刻画外部信号 + 预训练模型预测残差”的设计便于解释各部分贡献,但效果取决于线性假设、特征质量与评价协议。TimesFM 3.0 则通过全变量注意力层在网络内部融合协变量[6]。
4.3 配套基准中的 TimesFM 3.0 Python 适配器 #
配套的零售基准没有调用旧版 BigQuery SQL,而是直接运行 TimesFM 3.0 的 Python checkpoint。实验固定 google/timesfm-3.0-pytorch,revision 为 43046b85ec22d584a13f8098c2ed39c889e129c2,并在 CPU、batch size 1 的条件下串行执行。固定 revision 的目的不是宣称该版本永远最佳,而是保证不同日期重跑时不会悄然下载到另一套权重。
适配器在每个预测起点执行四步:
- 建立规则日历上的历史上下文:历史标签只有在门店营业、没有缺货删失且
y非空时才有效。无效位置先遮蔽,再在规则日序列上前向填充和后向填充;如果整段历史没有任何有效标签,适配器直接失败,而不是输出伪预测。 - 按配置构造信息集:单变量配置只传入历史目标;已知协变量配置额外构造形状为“特征通道数 \(\times\)(历史长度 + 28 天)”的矩阵。矩阵包含营业状态、日历与傅里叶项、维州节假日和场景业务计划,但明确禁止未来
y、实际stockout、conditional_mean与latent_demand等诊断真值进入输入。 - 调用 3.0 原生预测接口:同一进程缓存模型权重,避免 13 个 fold 反复加载约 1.2 GB checkpoint。核心调用为:
result = model.predict(
context=context,
horizon=len(future),
past_future_covariates=covariates,
return_quantiles=True,
sort_quantiles=True,
)
- 统一输出与营业约束:
result.forecast作为点预测;九个分位数通道中的首尾两列映射为 P10 与 P90。负预测截断为零,闭店日再按已知营业计划归零。仓库测试会扰动未来销量、缺货标记和诊断真值,确认这些变化不会影响模型输入或预测。
因此,下篇报告比较的不是“BigQuery TimesFM 与本地模型”,而是统一评估协议下的 TimesFM 3.0 Python 零样本配置与其他冻结配置。这个实现仍然不能消除工具包之间的训练方式差异;公平性来自相同预测日期、已知信息边界、有效标签和预先声明的比较角色,而不是把不同模型强行写成同一种算法。
4.4 BigQuery 部署 #
在企业生产环境中,很多团队最大的痛点并非算法精度,而是基础设施运维成本——为了每天定时跑一次未来 28 天预测,专门申请 GPU、维护容器镜像、编写分布式切片脚本往往投入产出比过低。
Google 将 TimesFM 直接封装进了云原生数据仓库 BigQuery ML 的无服务器内置函数 AI.FORECAST[7]。数据工程师无需导出数据,直接写一行标准 SQL 即可在数仓内并发完成成千上万条门店—SKU 序列的概率预测:
-- 在 BigQuery 中直接调用内置的 TimesFM 3.0 预测未来 28 天需求与 90% 预测区间
SELECT
store_id,
sku_id,
forecast_timestamp AS business_date,
forecast_value AS yhat_point,
prediction_interval_lower_bound AS yhat_p05,
prediction_interval_upper_bound AS yhat_p95
FROM
AI.FORECAST(
(
SELECT
store_id,
sku_id,
business_date,
clean_demand_units
FROM
`retail_prod_dw.daily_store_sku_demand`
WHERE
business_date <= DATE '2025-12-03'
),
data_col => 'clean_demand_units',
timestamp_col => 'business_date',
id_cols => ['store_id', 'sku_id'],
model => 'TimesFM 3.0',
horizon => 28,
confidence_level => 0.90
)
ORDER BY
store_id, sku_id, business_date;
针对不同的数据规模与合规诉求,生产落地主要有三种形态:
| 评估维度 | 1. BigQuery AI.FORECAST | 2. Vertex AI 在线端点 | 3. 开源权重私有化部署 |
|---|---|---|---|
| 底层模型版本 | TimesFM 2.0 / 2.5 / 3.0 | TimesFM 2.5 / 3.0 | TimesFM 2.5 (200M) / 2.0 |
| 适用团队画像 | 数据已在 GCP 的 BI 与数仓团队 | 需低延迟在线微服务的算法团队 | 本地机房、AWS/Azure 或数据严禁出域团队 |
| 协变量与定制 | SQL 原生支持多序列并行与预测区间 | 支持完整张量配置与 MLOps 接入 | 完全可控(自由配置 XReg、提取隐层表征) |
| 硬件与运维成本 | 极低:Serverless 按扫描计费,免 GPU 运维 | 中等:按托管 GPU/CPU 节点时长计费 | 自主掌控:单卡 A10G/T4 或多核 CPU 批处理 |
| 商用合规边界 | GCP 商业托管协议直接覆盖 | GCP 平台服务条款直接覆盖 | 2.5 为 Apache-2.0 可商用(3.0 权重限非商用) |
4.5 工程优势与架构亮点 #
- 按版本选择长步长输出或 CPM 解码: TimesFM 1.0–2.5 用 \(p=32 \to h=128\) 减少逐点滚动次数;TimesFM 3.0 则用 64 步输出 patch 与 CPM 一次生成请求区间。两种方案都旨在降低长预测区间中的重复前向和误差累积,但不能保证消除所有远期误差,实际延迟也取决于硬件、批量大小和托管服务调度。
- XReg 实用主义解耦(上下文内岭回归):
TimesFM 2.0/2.5 没有强迫用户为了几列促销特征去微调 2 亿参数的大模型,而是通过
xreg + timesfm在推理时动态求解带正则的线性模型,先剥离脉冲再预测基线。这种“经典统计回归 + 深度预训练先验”的组合,非常贴合冷启动促销场景。 - BigQuery
AI.FORECAST降低数仓交付门槛: 将模型封装为数仓原生 SQL 算子,可以减少数据搬迁、GPU 环境配置与分布式调度的工程工作,使分析师更容易建立零样本挑战者基线(Shadow Challenger)。费用和端到端时延仍需结合扫描量、并发、区域与查询作业统计单独评估。
4.6 局限边界与商用许可 #
- 复杂高维交叉特征需要单独比较:
TimesFM 2.5 的 XReg 本质上是单序列局部线性岭回归,不能表达所有非线性交叉、跨商品替代或硬性单调约束。即使 TimesFM 3.0 引入全变量注意力,面对宽表特征与
monotone_constraints等业务要求时,也应与 LightGBM 等可控监督模型按相同信息集比较,而不能从架构名称直接判断优劣。 - 高零值间歇需求与缺货删失需要专门验证: 连续切片模型在极端稀疏序列上可能回缩为接近零的小数预测,因此应与 Croston/SBA、二阶段发生—数量模型和计数感知树模型开展多起点比较。若输入包含未修复的缺货删失,任何只观察销量的模型都可能把供给限制误当成需求变化;这不是 TimesFM 独有的问题,也不能仅凭一次案例归因于实例归一化。
- 开源许可证的商业合规红线(2.5 Apache-2.0 vs. 3.0 非商用许可):
TimesFM 1.0、2.0 与 2.5 的代码及模型权重均采用宽松的
Apache-2.0开源协议,允许企业免费下载并部署在自有服务器中用于商业生产;但 Google 在发布 TimesFM 3.0 开源权重时,将其变更为timesfm-non-commercial-license-v1.0(非商业许可协议)[6][9],明确限制直接在商业生产中调用公开下载的 3.0 权重(商业生产合规路径需通过 Google Cloud BigQueryAI.FORECAST或 Vertex AI 托管服务)。因此,计划在私有集群部署的工程团队,TimesFM 2.5(200M)或同样采用Apache-2.0的 Chronos-2[10]、Sundial[11] 才是合规首选。
五、总结与工程落地指南 #
在梳理完 Google TimesFM 的四代架构与算法原理后,可以看到两条相互关联但不能混为一谈的演进路线:1.0 建立 \(32 \to 128\) 非对称切片基座,2.0 将模型扩展至 500M 参数和 2,048 步上下文,2.5 又以 200M 主干、16,384 步上下文与可选连续分位数头降低部署门槛;3.0 则以 330M 参数、\(32 \to 64\) 切片、CPM 与原生多变量注意力重构解码方式[6]。评估同类模型时,应分别检查切片、归一化、解码、协变量契约和许可证,而不能用一套旧版张量流程概括所有版本。
面向工业界生产系统,工程团队可按以下三条原则将 TimesFM 纳入预测技术栈:
- 确立“3.0 用于研究验证与托管候选、2.5 用于开源商业私有化”的选型双轨:
- 研究验证与云原生批处理(候选 TimesFM 3.0):当任务需要原生多变量和未来协变量时,可用固定 revision 的 Python checkpoint 建立教学或非商业实验,也可在 BigQuery 中评估托管服务;两种路径都需用企业自身的滚动回测验证精度、区间质量、费用与延迟;
- 私有化集群与开源商业合规(候选 TimesFM 2.5):企业自建环境可评估 Apache-2.0 的 2.5 权重。约 800 MB 只是 200M 个 FP32 参数的原始权重数量级,不代表完整运行时显存或内存需求。
- 充当敏捷的零样本挑战者基准(Shadow Challenger):在投入数周编写复杂特征工程前,先用 TimesFM 在干净历史数据上跑出一版开箱即用的基准线。若精心调优的监督模型连大模型的零样本外推都无法超越,往往意味着特征工程存在方向性偏差或数据质量本身存在断层。
- 把短历史预测作为独立验证场景:新品首发或新店开业可能没有足够样本构造长滞后特征,此时可以把 TimesFM、季节朴素法和带业务先验的统计模型共同列为候选。随机前缀掩码解释了旧版模型为何能够接收非整 patch 长度,但并不保证它在所有冷启动品类中胜出。团队应通过多个上市批次和滚动起点决定何时切换模型,同时在上游处理营业标记、缺货删失与高间歇性序列。
下篇预告:在下一篇《时序基础模型 Google TimesFM(下):合成零售实验和预测结果分析》中,Python 适配器将在四个五年合成零售场景上完成 13 个非重叠的 28 日滚动预测,并分别比较扩展历史与固定 104 周训练窗口。实验同时报告 TimesFM 单变量基线、已知协变量消融、多模型广度榜和间歇需求事件指标,把结论限定在一个固定合成随机种子和当前冻结配置内。
参考文献 #
[1] G. Woo, C. Liu, A. Kumar, C. Xiong, S. Savarese, and D. Sahoo. GIFT-Eval: A benchmark for general time series forecasting evaluation. arXiv preprint arXiv:2406.06688, 2024. https://arxiv.org/abs/2406.06688
[2] O. Shchur, A. Turkmani, Y. Zhang, B. N. Oreshkin, and A. F. Ansari. fev-bench: A unified framework and benchmark for time series forecasting evaluation. arXiv preprint arXiv:2509.26468, 2025. https://arxiv.org/abs/2509.26468
[3] Z. Qiao, S. Pan, A. Wang, V. Zhukova, Y. Liu, X. Jiang, Q. Wen, M. Long, M. Jin, and C. Liu. It’s TIME: Towards the next generation of time series forecasting benchmarks. In Proceedings of the 43rd International Conference on Machine Learning (ICML), PMLR 306, 2026. https://arxiv.org/abs/2602.12147
[4] A. F. Ansari et al. Chronos: Learning the language of time series. Transactions on Machine Learning Research (TMLR), 2024. https://arxiv.org/abs/2403.07815
[5] A. Das, W. Kong, R. Sen, and Y. Zhou. A decoder-only foundation model for time-series forecasting. In Proceedings of the 41st International Conference on Machine Learning (ICML), PMLR 235, pp. 10148–10167, 2024. https://arxiv.org/abs/2310.10688
[6] A. Jain and R. Sen. TimesFM-3: A zero-shot foundation model for multivariate forecasting. Google Research Blog, 2026. https://research.google/blog/timesfm-3-a-zero-shot-foundation-model-for-multivariate-forecasting/
[7] Google Cloud. The AI.FORECAST function in BigQuery ML. Google Cloud Documentation, 2026. https://cloud.google.com/bigquery/docs/reference/standard-sql/bigqueryml-syntax-ai-forecast
[8] T. Kim, J. Kim, Y. Tae, C. Park, J.-H. Choi, and J. Choo. Reversible instance normalization for accurate time-series forecasting against distribution shift. In International Conference on Learning Representations (ICLR), 2022. https://openreview.net/forum?id=cGDAkQo1C0p
[9] Google Research. TimesFM: Time Series Foundation Model Repository. GitHub, 2026. https://github.com/google-research/timesfm
[10] A. F. Ansari, O. Shchur, J. Küken, et al. Chronos-2: From univariate to universal forecasting. arXiv preprint arXiv:2510.15821, 2025. https://arxiv.org/abs/2510.15821
[11] Y. Liu, G. Qin, Z. Shi, Z. Chen, C. Yang, X. Huang, J. Wang, and M. Long. Sundial: A family of highly capable time series foundation models. In Proceedings of the 42nd International Conference on Machine Learning (ICML), PMLR 267, pp. 39295–39317, 2025. https://arxiv.org/abs/2502.00816