ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TimesFM 零样本时间序列预测:从零到一实战指南

TimesFM 零样本时间序列预测:从零到一实战指南 TimesFM 零样本时间序列预测从零到一实战指南【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfmTimesFM 是 Google Research 开源的预训练时间序列基础模型decoder-only 架构喂进去一段历史序列就能直接出预测。它解决的痛点很明确不用再为每条序列单独调 ARIMA、Prophet 这类统计模型一个模型覆盖所有序列。读完本文你本地就能跑通 TimesFM 零样本时间序列预测拿到带分位数区间的预测结果并知道协变量、微调、多框架后端分别该去哪找。三步跑通首次预测克隆仓库并装好依赖以 PyTorch 后端为例Flax 用户把[torch]换成[flax]即可git clone https://gitcode.com/GitHub_Trending/ti/timesfm cd timesfm uv venv source .venv/bin/activate uv pip install -e .[torch] # 需要协变量支持时改装 -e .[xreg]写一段最小脚本加载官方 checkpoint首次会从 HuggingFace 自动下载约 800MB 权重运行脚本inputs里放任意长度的序列马上就能看到点预测和分位数预测两个数组。import torch, numpy as np, timesfm torch.set_float32_matmul_precision(high) # 放宽精度要求加速矩阵乘 # 加载 2.5 版 200M 参数的 PyTorch 模型 model timesfm.TimesFM_2p5_200M_torch.from_pretrained(google/timesfm-2.5-200m-pytorch) model.compile(timesfm.ForecastConfig( max_context1024, # 最多回看 1024 个历史点 max_horizon256, # 最多预测 256 步 normalize_inputsTrue, # 自动归一化避免量纲问题 use_continuous_quantile_headTrue, # 启用连续分位数头 force_flip_invarianceTrue, infer_is_positiveTrue, # 输入非负则保证输出非负 fix_quantile_crossingTrue, )) point, quantile model.forecast( horizon12, # 预测未来 12 步 inputs[np.linspace(0, 1, 100), np.sin(np.linspace(0, 20, 67))], ) print(point.shape) # (2, 12) 点预测批量处理两条序列 print(quantile.shape) # (2, 12, 10) 均值 10%~90% 分位数三条命令加十几行代码多序列批量推理在这里就体现出来了inputs是一个列表传一百条序列它就能一次推完不用你写循环。三个版本怎么选版本参数规模 / 上下文长度核心差异2.5当前主线200M / 16k连续分位数预测头最长 1k horizon、XReg 协变量、无需 frequency 标签2.0已归档500M / 2048经典分位数头功能稳定1.0已归档200M / 512初代 decoder-only 结构代码在v1/目录选 2.5 的理由很简单参数更少但上下文长了 8 倍还带概率预测绝大多数场景直接用就行。只有需要复现早期论文结果、或跑 v1/ 里的归档 benchmark 时才回头装timesfm1.3.0用 2.0/1.0。2.5 的 torch 和 flax 两套实现在 src/timesfm/timesfm_2p5/ 下可以对照阅读想抠推理细节时很顺手。进阶用法接入协变量把外生变量喂给模型2.5 通过 XReg 支持静态协变量每条序列特有的属性比如门店品类和动态协变量随时间变化比如气温、促销标记动态协变量的长度需要覆盖 context horizon 两部分。完整调用方式和数据准备流程见 协变量示例 Notebook 和 协变量演示脚本效果长这样用 LoRA 在领域数据上微调当零样本预测在你的业务分布上不够用时可以走参数高效微调2.5 已适配 HuggingFace Transformers直接挂 PEFT 的 LoRA 适配器标准训练循环即可。默认配置跑一个零售数据集的完整流程在 LoRA 微调脚本想对比 JAX 侧的写法可以看 v1 微调 Notebook。切换后端与批量推理调优torch 后端通用性最好flax 后端主打推理速度JAX 编译后单核吞吐更高XReg 场景则依赖 JAX。想验证自己的机器扛不扛得住跑一下仓库自带的体检脚本 scripts/check_system.py它会检查内存、显存和磁盘。CSV 直接预测的端到端入口是 scripts/forecast_csv.py适合快速把业务数据丢进去看效果。基准表现怎么看仓库v1/experiments/下有两组官方基准扩展基准对比 Chronos、TimeGPT-1、统计集成模型和长周期滚动验证基准对比 Chronos 两个尺寸。长周期基准的平均结果摘出来如下指标平均TimesFMChronos-LargeChronos-MiniWAPE0.3860.4010.414sMAPE0.6360.6530.688耗时秒1079397,297252,649解读一句话精度和最好的基线基本打平甚至略优但推理速度比 Chronos-Large 快了三个数量级以上——比基线快 1000 倍不是营销话术是这张表里的实测数字。扩展基准里 27 个数据集的完整对比见 tfm_extended_new.pngTimesFM 在多数数据集的 mase 与 smape 上是加粗的第一名。零样本效果的直观感受可以看这个全球温度异常序列的实例左侧蓝色是历史数据右侧红色是 12 个月的预测加 60%/80% 置信区间代码在 run_forecast.py。踩坑与硬性限制症状Apple Silicon 上安装报lingvo编译失败 →原因lingvo依赖不支持 ARM 架构 →解法直接换 PyTorch 后端pip install timesfm[torch]它对 ARM 支持最好。症状安装过程被Killed (signal 9)杀掉 →原因内存不足 →解法官方建议至少 32GB 空闲内存安装时关其他大内存应用并用干净的虚拟环境重装。症状ModuleNotFoundError: No module named xreg_lib→原因协变量功能依赖 JAX 生态 →解法补装pip install jax jaxlib或一开始就装.[xreg]附加包。症状报Input contains NaN values→原因输入序列有空值 →解法预测前先做前向填充或插值模型不吃断点。症状GPU 报CUDA out of memory→原因上下文或批量太大 →解法把per_core_batch_size降到 8/4、max_context砍到够用为止实在不行先用backendcpu验证逻辑。更多报错的对照表在 TROUBLESHOOTING.md遇到本文没覆盖的症状先翻一遍。下一步TimesFM 把预测一条新序列的门槛从调参半天降到了加载模型 十行代码零样本 批量推理 概率区间的组合在销售、传感器、天气这类场景里开箱即用。想深入的话建议从 timesfm-forecasting/SKILL.md 入手——它把从环境体检到协变量预测的完整路径都写清楚了跑通之后下一步值得尝试的是把你自己的 CSV 丢进forecast_csv.py对比一次零样本效果或者直接上 LoRA 微调看看业务分布上能压掉多少误差。【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表