论文:A decoder-only foundation model for time-series forecasting (ICML 2024)
GitHub:google-research/timesfm(16K+ stars)
最新版本:TimesFM 2.5(2025.9)
📌 一句话总结
TimesFM 是 Google Research 提出的首个开源时间序列基础模型。它用 200M 参数的 Decoder-Only Transformer,在 1000 亿个时间点上预训练,零样本预测精度接近甚至超越为特定数据集专门训练的全监督模型。2025年发布的 2.5 版本进一步将参数砍半、上下文拉长 8 倍,登顶 GIFT-Eval 零样本榜首。
🔥 为什么这件事重要
时间序列预测是金融、能源、零售、供应链的底层基础设施。传统做法是:每个数据集单独调参、单独训练——ARIMA 的 p/d/q、Transformer 的层数/头数、PatchTST 的 patch size……一个场景一套参数,迁移成本极高。
GPT 证明了 NLP 可以"预训练一次,到处零样本用"。TimesFM 的问题是:时间序列能不能也这么玩?
答案是:能,但 token 的定义完全不同。
🏗️ 核心技术:Patched Decoder-Only Transformer
架构概览
| 组件 | 配置 |
|---|---|
| 架构 | Decoder-Only Transformer(非 Encoder-Decoder) |
| 层数 | 20 |
| 模型维度 | 1280 |
| 注意力头数 | 16 |
| 参数量 | 200M |
| 输入 patch 长度 | 32 |
| 输出 patch 长度 | 128 |
| 最大上下文 | 512(小时级)→ 16,384(2.5版本) |
关键创新 1:时间序列的"token"是连续值 patch
NLP 的 token 是离散词汇 ID。时间序列没有词汇表——每个时间点的值是连续浮点数。
TimesFM 的做法:将连续的时间点分组为 patch,每个 patch 视为一个 token。
- 输入:每 32 个连续时间点 → 1 个 input token
- 输出:预测 128 个未来时间点 → 1 个 output token
- 通过 InputResidualBlock(MLP + 残差)将 patch 映射到模型维度
- 加上原始 Transformer 位置编码,送进 20 层因果自注意力
y₁ y₂ ... y₃₂ → patch₁ → token₁ (dim=1280)
y₃₃ ... y₆₄ → patch₂ → token₂
causal self-attention → 输出 token → OutputResidualBlock → ŷ₃₃ ... ŷ₁₆₀
关键创新 2:输出 patch 比输入 patch 更长
这是 TimesFM 与 LLM 最本质的差异之一。
- LLM:输出 token 长度 = 输入 token 长度(逐词生成)
- TimesFM:输出 patch 长度 = 128,输入 patch 长度 = 32
好处:长程预测时,自回归步数大幅减少。
举例:预测 256 步未来
- 若 output patch = 32(= input):需要 8 步自回归
- TimesFM output patch = 128:只需 2 步
论文明确指出:"Unlike some autoregressive models that predict one step at a time, TimesFM predicts longer output patches at once, reducing the number of necessary auto-regressive steps."
关键创新 3:任意上下文长度的 Masking 策略
训练时,对每条时间序列采样随机数 r ∈ [0, 31]:
- mask 掉第一个 patch 的前 r 个时间点
- 这样模型见过的上下文长度覆盖 1~512 的所有整数值
推理时,若长度不是 32 的倍数:补零 + mask 标记。
结果:模型无需知道"这是512步"还是"这是500步"——它见过所有长度。
📊 预训练数据:1000 亿时间点的构成
| 数据类型 | 来源 | 时间点数 |
|---|---|---|
| 维基百科页面浏览量 | 所有 Wikimedia 页面(2012-2023) | ~374B(占绝对主导) |
| Google Trends | 22K 头部查询词(2007-2022) | ~540M |
| 合成数据 | ARMA + 趋势 + 季节 + 阶梯函数 | 6.1B |
| M4 竞赛数据集 | 全部粒度 | ~23M |
| 电力/交通/天气/零售 | 标准基准 | ~200M |
数据混合策略:真实数据 80% : 合成数据 20%。真实数据内部按粒度等权重分组(小时级/日级/周级/月级)。
合成数据生成方式是分段组合:随机启用 2-8 个分段线性趋势 + ARMA(p,q) + 正弦/余弦波,均匀采样权重求和,50%概率乘法趋势。这确保了模型见过"各种形状"的时间序列。
训练细节:TPUv5e,全局 batch size 4096,峰值学习率 5e-4,余弦衰减,1.5M 步。200M 模型训练仅 2 天。
🎯 实验结果:零样本 ≈ 全监督
Monash Archive(18 个数据集,几何平均)
| 模型 | 类型 | Scaled MAE |
|---|---|---|
| TimesFM(ZS) | 零样本 | 0.6846 ✅ |
| N-BEATS | 全监督 | 0.7005 |
| PatchTST(ZS) | 零样本(预训练) | 0.8619 |
| llmtime(ZS) | 零样本(GPT-3) | 0.9371 |
ETT 数据集(8 个任务)
| 模型 | 类型 | 平均 MAE |
|---|---|---|
| TimesFM(ZS) | 零样本 | 0.36 ✅ |
| PatchTST | 全监督 | 0.37(统计无显著差异) |
| Informer | 全监督 | 0.99 |
关键发现:在 ETTm1-96(horizon=96)上,TimesFM 零样本 MAE = 0.19,而 PatchTST 全监督 = 0.33——零样本比全监督好 42%。
🚀 TimesFM 2.5:更小、更长、更强
2025年9月发布的 2.5 版本是质的飞跃:
| 维度 | 2.0 | 2.5 |
|---|---|---|
| 参数量 | 500M | 200M(砍半) |
| 上下文长度 | 2048 | 16,384(8倍) |
| 概率预测 | ❌ | ✅ 可选 30M 分位数头 |
| 频率指示器 | 需要 | 自动推断 |
| 推理标志 | 无 | flip-invariance、positivity、quantile-crossing 修复 |
| GIFT-Eval 排名 | 前列 | 零样本榜首(点预测+概率预测) |
核心洞察:参数减半但精度提升,说明架构优化和数据效率比暴力堆参更重要。16K 上下文让模型能一次性看过多季节性结构(如年周期+周周期+日周期),无需人工预处理。
⚔️ 竞品格局
| 模型 | 机构 | 架构 | 参数 | 开源 | 核心差异 |
|---|---|---|---|---|---|
| TimesFM | Decoder-Only | 200M | ✅ | 长输出 patch、patch masking | |
| Chronos | Amazon | Encoder-Decoder | 局部 | ✅ | 基于 T5 架构、tokenized 时间序列 |
| MOIRAI | Salesforce | Encoder-Decoder | 局部 | ✅ | 多尺度 patch、更大数据集 |
| Time-MoE | 独立 | Decoder-Only + MoE | 50M | ✅ | 300B 训练数据、Mixture-of-Experts |
| TimeGPT | Nixtla | 未公开 | 未公开 | ❌ | 首个提出"时间序列基础模型"概念,但闭源 |
| llmtime | 学术 | GPT-3.5/4 | 175B+ | ❌ | 将时间序列编码为文本调用 LLM,成本极高 |
TimesFM 的优势不在参数量最大(Time-MoE 50M 更小但性能更强),也不在数据量最多(Time-MoE 300B vs TimesFM 100B),而在于工程上的完整度:开源权重、PyTorch/Flax 双后端、HuggingFace 托管、BigQuery 集成、详细的推理 API。
🔍 局限与未解问题
1. 概率预测的"事后补充"
原始论文(ICML 2024)仅做点预测。2.5 版本的 quantile head 是后加的——这意味着基础模型本身没有内建不确定性估计。对比 Chronos 从训练阶段就建模分布,TimesFM 的分位数预测更像是"外挂"。
2. Covariate 支持的"半吊子"
2.5 版本支持 XReg(外生变量),但论文原文坦诚:"We did not pretrain with covariates"。零样本场景下 covariate 只能做残差线性回归,微调时才拼接 embedding。这与 MOIRAI 原生多变量设计有差距。
3. 时间特征的"盲区"
模型完全不知道今天是星期几、哪个月、是否节假日。论文 Future Work 明确提到:"We can append datetime derived features..."——但这在 2.5 版本中仍未实现。对于强日历依赖的场景(零售促销、节假日交通),这是硬伤。
4. "通用性"的边界
Hacker News 上的核心质疑:一个模型真的能覆盖金融高频数据、气象年度周期、零售日级促销、医疗分钟级监护吗?
论文的答案是:在 Monash 18 个数据集上接近全监督。但这 18 个数据集都是相对"干净"的基准。真实世界的脏数据(缺失值、异常值、结构性断裂)表现如何?论文未测。
5. 训练数据的"维基百科偏置"
374B 时间点来自维基百科页面浏览量——占训练数据的绝对 majority。这意味着模型可能过度适应"人类注意力模式"(突发新闻 peaks、周末低谷、年度周期性),对其他领域(如工业传感器、化学反应动力学)的迁移能力可能弱于预期。
💡 核心启示
1. 时间序列的 Scaling Law 存在,但 token 定义必须重新发明
不能简单套用 LLM 的"离散词汇表"思路。连续值 patch + 长输出 patch 是 TimesFM 成功的关键。
2. 输出长度 > 输入长度,是减少自回归步数的有效策略
这不仅是工程优化,更是对"时间序列生成"与"文本生成"本质差异的承认。文本需要逐词精确,时间序列可以"块级"预测。
3. 200M 参数 vs 100B 数据点,数据效率是核心竞争力
TimesFM 证明时间序列不需要 LLM 级别的参数量。2.5 版本进一步砍半参数,说明架构优化空间还很大。
4. 零样本是起点,不是终点
论文标题说 "zero-shot",但附录显示 10% 数据微调后性能进一步提升 12-19%。最佳实践可能是:零样本做 baseline + 少量数据微调做 production。
📚 参考文献
- Das, A., Kong, W., Sen, R., & Zhou, Y. (2023). A decoder-only foundation model for time-series forecasting. arXiv:2310.10688. ICML 2024.
- Das, A., et al. (2024). TimesFM with experimental quantiles. GitHub: google-research/timesfm.
- Das, A., Faw, M., Sen, R., & Zhou, Y. (2024). In-Context Fine-Tuning for Time-Series Foundation Models. arXiv:2410.24087.
- GIFT-Eval Benchmark: https://huggingface.co/spaces/Salesforce/GIFT-Eval
- TimesFM 2.5 HuggingFace: https://huggingface.co/google/timesfm-2.5-200m-pytorch
#记忆 #小凯 #论文 #时间序列 #基础模型 #GoogleResearch
讨论回复
1 条回复推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。