销量、流量、股价都能预测?Google TimesFM开源时序模型:本地免费跑,10行代码出未来曲线

销量、流量、股价都能预测?Google TimesFM开源时序模型:本地免费跑,10行代码出未来曲线 封面

第一章 预测这件事,普通人也能做

你是不是也遇到过这种事:下个月库存备多少?下周的访问量会不会爆?店铺销量到底拐点在哪?

过去,预测是数据科学家的专利。又要懂 ARIMA,又要调 XGBoost,没个硕士学历根本摸不着门。

但 8 月 16 号,Google 把自家的时间序列基础模型 TimesFM 开源了。训练用了超过 1000 亿个数据点,关键是——完全免费、能本地跑、零样本预测。你不用懂数学,喂一段历史数据进去,它就吐出未来曲线。

今天圈圈带你把这玩意儿从安装到实战跑通。看完你会发现:预测,真没那么玄。

第二章 TimesFM 到底是什么来头

先搞懂一个词:基础模型(Foundation Model)。跟 ChatGPT 是文本的基础模型一样,TimesFM 是”时间序列的基础模型”。

传统预测麻烦在哪?每一条序列都要单独建模、单独训练。一百个商品,得训一百个模型。累死。

TimesFM 不一样。它在上亿条真实序列上预训练过,学会了”时间”这件事的通用规律。等你拿到一条从没见过的新数据,它不用重新训练,直接预测。这叫零样本(zero-shot)。

它用的是 decoder-only 架构,跟大语言模型同源。把数值切成小段、量化成词表,再用 Transformer 生成”未来”。最新版 TimesFM 2.5 只有 2 亿参数,上下文长达 1.6 万步,还支持分位数预测——不光给你一个点,还给你一个置信区间。这才叫专业。

第三章 10分钟装好,本地就能跑

最香的一点:它不吃显卡也能跑,普通笔记本就行。装起来就一行:

pip install timesfm

想用 PyTorch 完整版(支持外部变量),装这个:

pip install timesfm[torch]

然后从 Hugging Face 拉模型。官方推荐 google/timesfm-2.5-200m-pytorch,才 2 亿参数,下载飞快:

import timesfm
model = timesfm.TimesFM_2p5_200M_torch.from_pretrained(
    "google/timesfm-2.5-200m-pytorch")
model.compile(timesfm.ForecastConfig(
    max_context=1024, max_horizon=256, normalize_inputs=True))

没有 GPU?加个 --cpu 参数,慢点但能跑。想白嫖算力,Google Colab 挂个免费 T4 直接上手。门槛低到离谱。

第一次预测:喂历史、出未来,还带置信区间
第一次预测:喂历史、出未来,还带置信区间

第四章 第一次预测:拿历史数据喂进去

模型就绪,来个真实预测。假设你有一组过去 100 天的数值,想看未来 12 步怎么走:

import numpy as np
vals = np.linspace(0, 1, 100)  # 你的真实历史数据
point, quant = model.forecast(horizon=12, inputs=[vals])
lower, median, upper = quant[0,:,1], point[0], quant[0,:,9]

就这三行,未来 12 步的预测就出来了。而且 quant 给的是分位数:quant[0,:,1] 是下沿,quant[0,:,9] 是上沿,中间 median 是基准线。

这意味着什么?你拿到的不是一根孤零零的线,而是一条带”可信区间”的带子。老板问”最差会怎样”,你直接把下沿甩过去。这才叫能交代。

真实场景:CSV 一行一周期,30 天销量曲线直接出
真实场景:CSV 一行一周期,30 天销量曲线直接出

第五章 真实场景:预测销量和流量

光跑 demo 没意思,来点真用场。最常见的两个:销量预测流量预测

假设你有某商品每天的销售记录(CSV,一列日期一列销量)。读进来、排序、转成浮点数组,直接喂:

import pandas as pd
df = pd.read_csv("sales.csv", parse_dates=["date"]).sort_values("date")
vals = df["value"].astype("float32").to_numpy()
point, quant = model.forecast(horizon=30, inputs=[vals])

30 天后的销量曲线就出来了。更狠的是 TimesFM 2.5 支持外部变量(covariates)——比如你知道下个月要搞促销、要涨价,把这些”已知未来”一起喂进去,预测会更准。这叫 XReg,零售和能源场景直接起飞。

提醒一句:数据要等间隔,一行一个周期,空缺用 NaN 别删行。上下文越长通常越准,但别超过模型上限。

第六章 进阶玩法:置信区间与异常检测

会用预测只是入门,会用”区间”和”异常”才是高手。

置信区间做预警:别只盯那个点。拿上下沿去做告警——一旦真实值跌破下沿,说明情况异常,立刻发通知。这比设死阈值聪明多了。

异常检测:TimesFM 还能反过来用。先对历史做线性去趋势,再用 Z-score 找离群点,最后用预测的分位数区间框住正常波动。某个月的销量突然被标红?八成是数据错了或者真出事了。

回测别偷懒:上生产前,用滚动原点回测(rolling-origin backtest),拿 MASE 指标跟”季节朴素法”比一比。基础模型在平均意义上赢,但强趋势、短数据它可能输给老方法。先验证再上线,别盲信。

第七章 避坑清单与总结

圈圈给你一份实战避坑清单:

  • 数据不等间隔:这是头号坑。缺的天补 NaN,别直接删行,否则时间轴错位全错。
  • 把动态字段放 prompt 前缀:喂模型前,稳定内容放前面、时间戳这类动态字段放最后,缓存和逻辑都更干净。
  • 上限要对齐:max_context 最好是 32 的倍数,max_horizon 是 128 的倍数,否则可能报错或裁切。
  • 能为负的别开 infer_is_positive:股价、温差这种能负的值,记得关掉”强制正数”,不然预测被压歪。
  • 别神话趋势外推:TimesFM 是”趋势收缩者”不是”趋势外推者”。强趋势、短数据,老牌方法可能更稳。它真正的强项是短时序列和带噪声的真实业务流。

说到底,Google 把这东西开源,等于把”预测能力”从实验室下放到了每个人的笔记本。销量、流量、股价、服务器负载——只要是你手里有历史数据的东西,今天就能跑出未来。别再拍脑袋了,让模型替你算。现在就去 pip install timesfm,十分钟后,你就能看见下个月的曲线。

© 版权声明
THE END
喜欢就支持一下吧
点赞91 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容