文章介绍 Google TimesFM 的零样本时序预测能力,并提供浏览器演示、源码及 ONNX 模型文件。开发者可输入按时间排列的数据,体验无需针对该序列训练的预测及结果区间。
这篇文章将用通俗易懂的语言介绍 Google 的 TimesFM:它是什么、采用什么架构、为什么被称为“foundation model”,以及你能用它做什么。从预测 CO₂ 浓度、油价,到估算世界大赛夺冠概率,这些都可以免费在浏览器里运行。
立即体验:webTimesFM。项目代码:GitHub 上的 vishalmysore/webTimesFM。模型文件(ONNX):Hugging Face 上的 VishalMysore/timesfm-2.5-200m-onnx-web。

TimesFM 是 Time Series Foundation Model 的缩写,是 Google Research 推出的开放 AI 模型,用于预测随时间变化的数值。给它一组按时间顺序排列的数字,比如每日销售额、每月降雨量、每小时用电量或股票价格,它就能预测接下来的数值,并给出可能结果的范围。
它的特别之处在于,你不需要训练它。TimesFM 已经从约 1000 亿个真实世界的数据点中,学会了趋势、季节性和周期的特征。即便面对从未见过的时间序列,它也能直接预测。这叫作 zero-shot forecasting,也就是零样本预测。
Abhimanyu Das、Weihao Kong、Rajat Sen 和 Yichen Zhou 在 ICML 2024 论文《A decoder-only foundation model for time-series forecasting》中介绍了这个模型。截至 2.5 版本,代码和模型权重均以 Apache-2.0 许可开源。
一句话概括:TimesFM 就像 ChatGPT,只不过它读写的是数字,而不是文字。
Foundation model 是一种大型 AI 模型,具备以下特点:
GPT、Gemini 和 Claude 是面向文本的 foundation model。TimesFM 则是面向时间序列的 foundation model,同类模型还包括 Amazon 的 Chronos、Salesforce 的 Moirai,以及 Lag-Llama 和 Nixtla 的 TimeGPT。
TimesFM 采用 decoder-only Transformer,与 GPT、Gemini 和 Llama 属于同一类神经网络架构,源自 Google 2017 年的论文《Attention Is All You Need》。Google 做出的关键改动,是重新定义什么算一个“token”:
模型接收的是一段段数据 patch,而不是单个数值。PatchTST 也采用了类似思路,这样可以降低读取长历史序列的成本。每次一次性预测包含 128 个时间步的输出 patch,则让预测既快又稳定。
以下数值来自模型公开的配置:
Your numbers ──► split into patches of 32 ──► normalise each patch (mean and spread)
│
▼
Input block: a small residual neural network turns each patch into a 1,280-number token
│
▼
20 transformer layers × 16 attention heads
• each patch attends only to earlier patches (decoder-only, causal)
• rotary position embeddings (knows the order)
• RMS normalisation and QK-norm (stable training)
│
▼
Output block ──► next 128 steps × [mean, 10th, 20th … 90th percentile]
如果要预测的时间跨度超过 128 个时间步,模型就会把自己的预测结果重新作为输入,继续预测,就像聊天机器人一个词接一个词地生成文本。
根据原始论文,预训练数据包括:
正是这种多样性,让同一个模型能够预测二氧化碳浓度、太阳黑子、商店销售额和油价。
软件:Google 使用 JAX 训练 TimesFM,首个版本使用了 Google 的 PaxML 框架。对于 2.5 版本,Google 同时发布了 Flax(JAX)和 PyTorch 实现。
硬件:Google 的 TPU(Tensor Processing Unit),也就是 Google 自研的 AI 芯片。
权重:以 safetensors 文件的形式发布在 Hugging Face 上,2.5 版本的文件大小为 925 MB。
这个项目为什么使用 TimesFM 2.5?因为它足够小,可以下载到浏览器中;最多能读取 16k 个历史数据点;采用 Apache-2.0 许可的权重可以自由使用,包括商业用途。
webTimesFM 让 Google 的 TimesFM 2.5 完全在网页内部运行。不需要服务器,不需要 Python,也不需要注册,你的数据始终留在自己的电脑上。
Google's PyTorch weights (safetensors, 925 MB)
└─► converted to ONNX (portable model format)
└─► quantised to 8-bit (261 MB) or 4-bit (146 MB)
└─► ONNX Runtime Web (runs AI models in the browser)
└─► WebGPU (your graphics card) or WASM (your CPU)
└─► timesfm.js + index.html on GitHub Pages
速度:在笔记本电脑的 GPU 上,完成一次 128 个时间步的预测大约需要 50–300 毫秒。
两种模型大小:8-bit 版本给出的结果与 Google 原始模型几乎相同。4-bit 版本下载量更小,但在较短的时间序列上可能出现偏差。
如何证明它运行的是真正的模型:点击 Run self-test vs PyTorch 按钮,就能在你的电脑上,将浏览器的预测结果与 Google 官方 Python 代码生成的结果进行比较。

网站上的每个示例都有一个 Hold back 选项。它会隐藏最近一段数据,让模型预测这部分内容,再把预测结果与最简单的猜测——“保持不变”——进行比较并评分。
Mauna Loa 的 CO₂ 浓度:持续上升的趋势,叠加每年重复的周期。TimesFM 对未来五年的预测几乎完全准确,比“保持不变”好 95%。
太阳黑子:大约 11 年一个太阳活动周期。读取 85 年的历史数据后,TimesFM 提前十年预测出了下一轮周期的上升和峰值。

全球极端贫困:TimesFM 看到了截至 2018 年持续下降的趋势,并预期这一趋势会继续。它无法预知 COVID-19 会在 2020 年让进展停滞。
可以记住这样一条经验:TimesFM 非常擅长识别模式,包括趋势、季节性和周期;但疫情、战争、政策变化等事件,只有反映到数字里之后,它才能看到。对于价格,“保持不变”是一个很难击败的基准;不确定性区间才是最有用的输出。
Current affairs 标签页把 TimesFM 用到了本周新闻涉及的数据上,数据由 GitHub Action 每天自动刷新。
世界大赛夺冠概率的计算分为三步:
2026 年 10 月 17 日,Brewers 横扫 Dodgers 后,模型给出的 Milwaukee 世界大赛夺冠概率约为 71%。TimesFM 的预测区间只会让这个概率略有变化。真正起主要作用的是系列赛比分和整个赛季的比赛结果,页面也明确说明了这一点。
对于石油和 Bitcoin,页面会给出未来 30 天的预测及不确定性区间,并解释为什么价格如此难以预测。
TimesFM 只读取数字,因此我们用了另一个小得多的模型来阅读新闻标题。每天,每个主题,包括石油、Bitcoin 和每支季后赛球队,最多会收集 100 条 Google News 标题,再用轻量级情绪模型 VADER 评分。最后取平均值,得到 −10 到 +10 之间的每日新闻情绪分数。

情绪不等于价格方向。“战争升级”听起来很负面,却会推高油价。因此,新闻不会改变预测结果,而是充当预警灯:
在不使用事后信息、回放 2026 年 8 月至 10 月的数据时,五次石油新闻警报中,有三次出现在 Brent 原油大幅波动之前,随后涨幅分别为 +7%、+10% 和 +18%;另有一次大涨未被捕捉到。即便是新闻风暴区间,也不足以覆盖战争引发的价格飙升。新闻可以告诉你什么时候该提高警惕,却不一定能告诉你波动会有多大。
把 timesfm.js 复制到网页所在目录,然后加入以下代码:
<script type="module">
import * as ort from "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.29.0/dist/ort.webgpu.min.mjs";
import { TimesFM } from "./timesfm.js";
ort.env.wasm.wasmPaths = "https://cdn.jsdelivr.net/npm/onnxruntime-web@1.29.0/dist/";
const model = await TimesFM.load(ort,
"https://huggingface.co/VishalMysore/timesfm-2.5-200m-onnx-web/resolve/main/timesfm25_q8.onnx",
navigator.gpu ? "webgpu" : "wasm");
const history = [/* your numbers, oldest first */];
const { point, quantiles } = await model.forecast(history, 128);
// point: median forecast; quantiles[t] = [mean, q10, q20, ..., q90]
</script>
不写代码也能用。打开网站的 Tutorial 标签页,里面会演示如何粘贴 Excel 或 Google Sheets 中的一列数据、上传 CSV、选择上下文长度和预测跨度,以及用 Hold back 检查准确性。
如果使用 Python,可以查看 Google 官方 timesfm 仓库中的软件包和示例。
打开 webTimesFM 网站,点击 Load model,完成一次性的 261 MB 下载,再选择一个示例,点击 Forecast。所有计算都在你自己的电脑上完成。
在使用本网站或本文中的预测结果之前,请先阅读以下说明。
TimesFM 由 Google Research 创建,相关成果包括论文、代码和 TimesFM 2.5 权重。“Google”和“TimesFM”是 Google LLC 的名称及商标。
webTimesFM 是独立、非官方的社区项目。它并非由 Google 制作、赞助、审核或认可,这里的任何内容都不代表 Google 的立场。
这里运行的模型由 Google 的 TimesFM 2.5 权重转换为 ONNX,并压缩为 8-bit 和 4-bit。权重数值完全来自 Google 发布的版本,没有重新训练或微调。
由于经过压缩,并且在浏览器中重新实现了预处理和后处理,预测结果可能与 Google 官方代码略有不同。4-bit 模型的差异更大,尤其是在较短的时间序列上。可以点击 Run self-test vs PyTorch 按钮,在自己的电脑上检查。
TimesFM 2.5 的代码和权重采用 Apache-2.0 许可,按“原样”提供,不附带任何形式的担保或条件。本次转换所做的修改列在模型卡中。TimesFM 3.0 采用单独的非商业许可,本项目未使用或包含该版本。
石油、Bitcoin 及其他价格预测仅用于教学演示,不是在建议你买入、卖出或持有任何资产。价格的表现很像随机游走,在我们自己的测试中,模型与简单的“保持不变”猜测大致打平。
世界大赛夺冠概率只是对一种预测方法的演示,不是投注建议。它没有考虑先发投手、伤病,以及许多其他重要因素。
预测可能出错,而且经常出错。过去的准确性不保证未来的表现。不要根据本网站做出金融、博彩、商业、医疗或政策决策,应咨询具备相应资质的专业人士。
数据来自第三方公开来源:MLB Stats API、FRED(圣路易斯联邦储备银行)、IMF、World Bank、美国劳工统计局、NOAA、SILSO / 比利时皇家天文台、Johns Hopkins CSSE 和 Google News。各来源都有自己的使用条款,这里仅用于非商业的教育用途。
数据可能存在延迟、修订或缺失。例如,官方油价数据比市场大约滞后一周。数据每天自动刷新一次,没有人工核查,也不保证准确。
新闻标题归各自的发布者所有,页面提供链接,不会完整复制新闻内容。新闻情绪由简单的情绪模型 VADER 自动评分。它可能误读讽刺、上下文或包含复杂信息的报道,评分也不代表对任何球队、公司或事件的编辑判断。
球队和联盟名称是各自所有者的商标。本项目与 Major League Baseball 或任何球队均无关联,也未获得其认可。
预测完全在你的浏览器中运行。你粘贴或上传的数字不会被本网站发送到任何服务器。
浏览器确实会从第三方下载文件:模型来自 Hugging Face,ONNX Runtime 来自 jsDelivr CDN。这些服务可能像其他网站一样记录请求。
这是一个用于学习和研究的免费开源演示项目,按原样提供,不附带任何形式的担保。作者不对使用本项目造成的任何损失或损害负责。对于重要数字,请始终向原始来源核实。
如果还想采取进一步措施,可以考虑屏蔽此人和/或举报滥用行为。