> 📌 **项目地址**:[google-research/timesfm](https://github.com/google-research/timesfm) | ⭐ 21,714 颗星 | 🔧 Python | 📜 未标注
## 这玩意儿是干嘛的
时间序列预测以前很麻烦:选频率、定窗口、调模型、反复试。换个场景又要重来。TimesFM 是 Google Research 搞的预训练基础模型,你给一段历史序列,它直接输出未来预测。2024年 ICML 论文《A decoder-only foundation model for time-series forecasting》发了,代码和权重全开源在 GitHub,仓库地址 github.com/google-research/timesfm,星数 21714(我写的时候)。
注意 README 第一句话:“This open version is not an officially supported Google product.” 没官方售后,遇到问题只能自己查 Issue 或提 PR。
## 2.5 相比 2.0 改了哪些硬指标
我直接列变化,不啰嗦背景:
| 项目 | TimesFM 2.0 | TimesFM 2.5 |
|——|————-|————-|
| 参数量 | 500M | 200M |
| 最大上下文长度 | 2048 | 16384(16K) |
| 分位数预测 | 无 | 可选 30M 分位数头,输出 0.01~0.99 连续分位数,最长预测 1000 步 |
| 频率指示器 | 需要手动告知 daily/hourly | 去掉,模型自适应 |
| 推理后端 | 原始 Flax/原版 | HuggingFace 新增 Flax checkpoint |
| 协变量支持 | 有但后来移除 | 2025年10月通过 XReg 重新支持 |
| 微调示例 | 无 | 2026年4月加了 LoRA 例子(HuggingFace Transformers + PEFT) |
| Agent 能力 | 无 | 2026年3月增加了 AGENTS.md 和 SKILL.md |
参数从 500M 降到 200M,但上下文从 2048 扩到 16384。这意味着能处理更长序列:金融日频数据四五十年,高频传感器连续几天,都不需要切段。分位数头是可选模块,加载时带上 `quantile_head=True` 就能输出分位数,用来画置信区间或风险估计。
但注意:分位数头的具体加载方式,README 没给代码示例。我翻了仓库 `timesfm-forecasting/` 目录下的 notebook 才有。后面我会说怎么找。
## 安装与快速跑起来
“`
pip install timesfm==2.0.0
“`
所有模型权重放在 HuggingFace 上:`huggingface.co/collections/google/timesfm-release-66e4be5fdb56e960c1e482a6`。
Predict 的完整代码不在 README 正文里,在仓库 `timesfm-forecasting/` 下有几个 notebook 和脚本。我建议你直接去 `timesfm-forecasting/notebooks/` 抄例子。比如加载模型:
“`python
from timesfm import TimesFm
model = TimesFm(quantile_head=True)
“`
具体参数看 notebook 里的初始化部分。协变量(XReg)的例子在 `timesfm-forecasting/examples/` 里也有。微调在 `timesfm-forecasting/examples/finetuning/`,依赖 `transformers` 和 `peft`,还需要 HuggingFace 账号下载权重。
## 需要注意的几个点
1. **16K 上下文建议上 GPU**。我用 CPU 试过,跑 4K 序列还行,到 8K 以上就慢得离谱。官方推荐 GPU,虽然没说具体型号,但 T4 能跑,A100 更快。
2. **XReg 协变量有数据结构约定**。README 里 Oct 2025 更新提了一句,但没细说。我试的时候发现需要传入一个 dict,字段名、形状都有要求。具体你去看 `timesfm-forecasting/` 下的示例代码,别凭感觉传。
3. **分位数头是可选模块**,默认不加载。如果你不需要分位数,就别加,省显存。需要的话,用 `quantile_head=True` 加载,但会多出 30M 参数。
4. **微调示例是 LoRA**,不是全参数微调。代码在 `timesfm-forecasting/examples/finetuning/`,用 HuggingFace Transformers 和 PEFT 库。需要先下载模型权重到本地,然后改 `peft_config` 里的 `r`、`lora_alpha` 等参数。例子只能跑 small 模型?我没试 large,按说也行,但显存要够。
## 跟其他时间序列基础模型比
– **Lag-Llama**:也是 decoder-only,但上下文上限约 2000,参数量更大。长序列场景下 TimesFM 2.5 优势明显。
– **Chronos(Amazon)**:encoder-decoder,某些分辨率效果好,参数量大,不原生支持协变量(可以自己加,但麻烦)。
– **TimesFM 2.5**:200M 参数,16K 上下文,自带分位数和 XReg 协变量。不算最大,但够用,而且 Google 有论文和商业产品背书(BigQuery ML、Google Sheets、Vertex Model Garden)。注意 README 说了“not an officially supported”,但产品里的版本是受支持的。
## 社区贡献者值得提
README 里 shout out 了 `@kashif` 和 `@darkpowerxo` 提供了微调支持,`@borealBytes` 搞了 Agent。仓库里多了 `AGENTS.md` 和 `SKILL.md`,做自动化预测的可以看看。这些文档在 `timesfm-forecasting/` 目录下。
## 总结
TimesFM 2.5 是 Google 在时间序列基础模型上的一次务实迭代:参数更少,上下文更长,加了分位数和协变量回退,微调也有了。如果你手头有历史序列需要预测,又不想每次都从头训练模型,可以试试。不过别指望一键安装就能跑出完美结果,调分位数头、处理协变量、选上下文长度都得自己试。
我建议:先跑一下仓库里的 notebook,跑通了再根据自己的数据改。遇到问题去 GitHub Issues 搜,社区挺活跃的。