間序列預(yù)測(cè):從零到一實(shí)戰(zhàn)指南)
TimesFM 零樣本時(shí)間序列預(yù)測(cè)從零到一實(shí)戰(zhàn)指南【免費(fèi)下載鏈接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ti/timesfmTimesFM 是 Google Research 開(kāi)源的預(yù)訓(xùn)練時(shí)間序列基礎(chǔ)模型decoder-only 架構(gòu)喂進(jìn)去一段歷史序列就能直接出預(yù)測(cè)。它解決的痛點(diǎn)很明確不用再為每條序列單獨(dú)調(diào) ARIMA、Prophet 這類統(tǒng)計(jì)模型一個(gè)模型覆蓋所有序列。讀完本文你本地就能跑通 TimesFM 零樣本時(shí)間序列預(yù)測(cè)拿到帶分位數(shù)區(qū)間的預(yù)測(cè)結(jié)果并知道協(xié)變量、微調(diào)、多框架后端分別該去哪找。三步跑通首次預(yù)測(cè)克隆倉(cāng)庫(kù)并裝好依賴以 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] # 需要協(xié)變量支持時(shí)改裝 -e .[xreg]寫一段最小腳本加載官方 checkpoint首次會(huì)從 HuggingFace 自動(dòng)下載約 800MB 權(quán)重運(yùn)行腳本inputs里放任意長(zhǎng)度的序列馬上就能看到點(diǎn)預(yù)測(cè)和分位數(shù)預(yù)測(cè)兩個(gè)數(shù)組。import torch, numpy as np, timesfm torch.set_float32_matmul_precision(high) # 放寬精度要求加速矩陣乘 # 加載 2.5 版 200M 參數(shù)的 PyTorch 模型 model timesfm.TimesFM_2p5_200M_torch.from_pretrained(google/timesfm-2.5-200m-pytorch) model.compile(timesfm.ForecastConfig( max_context1024, # 最多回看 1024 個(gè)歷史點(diǎn) max_horizon256, # 最多預(yù)測(cè) 256 步 normalize_inputsTrue, # 自動(dòng)歸一化避免量綱問(wèn)題 use_continuous_quantile_headTrue, # 啟用連續(xù)分位數(shù)頭 force_flip_invarianceTrue, infer_is_positiveTrue, # 輸入非負(fù)則保證輸出非負(fù) fix_quantile_crossingTrue, )) point, quantile model.forecast( horizon12, # 預(yù)測(cè)未來(lái) 12 步 inputs[np.linspace(0, 1, 100), np.sin(np.linspace(0, 20, 67))], ) print(point.shape) # (2, 12) 點(diǎn)預(yù)測(cè)批量處理兩條序列 print(quantile.shape) # (2, 12, 10) 均值 10%~90% 分位數(shù)三條命令加十幾行代碼多序列批量推理在這里就體現(xiàn)出來(lái)了inputs是一個(gè)列表傳一百條序列它就能一次推完不用你寫循環(huán)。三個(gè)版本怎么選版本參數(shù)規(guī)模 / 上下文長(zhǎng)度核心差異2.5當(dāng)前主線200M / 16k連續(xù)分位數(shù)預(yù)測(cè)頭最長(zhǎng) 1k horizon、XReg 協(xié)變量、無(wú)需 frequency 標(biāo)簽2.0已歸檔500M / 2048經(jīng)典分位數(shù)頭功能穩(wěn)定1.0已歸檔200M / 512初代 decoder-only 結(jié)構(gòu)代碼在v1/目錄選 2.5 的理由很簡(jiǎn)單參數(shù)更少但上下文長(zhǎng)了 8 倍還帶概率預(yù)測(cè)絕大多數(shù)場(chǎng)景直接用就行。只有需要復(fù)現(xiàn)早期論文結(jié)果、或跑 v1/ 里的歸檔 benchmark 時(shí)才回頭裝timesfm1.3.0用 2.0/1.0。2.5 的 torch 和 flax 兩套實(shí)現(xiàn)在 src/timesfm/timesfm_2p5/ 下可以對(duì)照閱讀想摳推理細(xì)節(jié)時(shí)很順手。進(jìn)階用法接入?yún)f(xié)變量把外生變量喂給模型2.5 通過(guò) XReg 支持靜態(tài)協(xié)變量每條序列特有的屬性比如門店品類和動(dòng)態(tài)協(xié)變量隨時(shí)間變化比如氣溫、促銷標(biāo)記動(dòng)態(tài)協(xié)變量的長(zhǎng)度需要覆蓋 context horizon 兩部分。完整調(diào)用方式和數(shù)據(jù)準(zhǔn)備流程見(jiàn) 協(xié)變量示例 Notebook 和 協(xié)變量演示腳本效果長(zhǎng)這樣用 LoRA 在領(lǐng)域數(shù)據(jù)上微調(diào)當(dāng)零樣本預(yù)測(cè)在你的業(yè)務(wù)分布上不夠用時(shí)可以走參數(shù)高效微調(diào)2.5 已適配 HuggingFace Transformers直接掛 PEFT 的 LoRA 適配器標(biāo)準(zhǔn)訓(xùn)練循環(huán)即可。默認(rèn)配置跑一個(gè)零售數(shù)據(jù)集的完整流程在 LoRA 微調(diào)腳本想對(duì)比 JAX 側(cè)的寫法可以看 v1 微調(diào) Notebook。切換后端與批量推理調(diào)優(yōu)torch 后端通用性最好flax 后端主打推理速度JAX 編譯后單核吞吐更高XReg 場(chǎng)景則依賴 JAX。想驗(yàn)證自己的機(jī)器扛不扛得住跑一下倉(cāng)庫(kù)自帶的體檢腳本 scripts/check_system.py它會(huì)檢查內(nèi)存、顯存和磁盤。CSV 直接預(yù)測(cè)的端到端入口是 scripts/forecast_csv.py適合快速把業(yè)務(wù)數(shù)據(jù)丟進(jìn)去看效果?;鶞?zhǔn)表現(xiàn)怎么看倉(cāng)庫(kù)v1/experiments/下有兩組官方基準(zhǔn)擴(kuò)展基準(zhǔn)對(duì)比 Chronos、TimeGPT-1、統(tǒng)計(jì)集成模型和長(zhǎng)周期滾動(dòng)驗(yàn)證基準(zhǔn)對(duì)比 Chronos 兩個(gè)尺寸。長(zhǎng)周期基準(zhǔn)的平均結(jié)果摘出來(lái)如下指標(biāo)平均TimesFMChronos-LargeChronos-MiniWAPE0.3860.4010.414sMAPE0.6360.6530.688耗時(shí)秒1079397,297252,649解讀一句話精度和最好的基線基本打平甚至略優(yōu)但推理速度比 Chronos-Large 快了三個(gè)數(shù)量級(jí)以上——比基線快 1000 倍不是營(yíng)銷話術(shù)是這張表里的實(shí)測(cè)數(shù)字。擴(kuò)展基準(zhǔn)里 27 個(gè)數(shù)據(jù)集的完整對(duì)比見(jiàn) tfm_extended_new.pngTimesFM 在多數(shù)數(shù)據(jù)集的 mase 與 smape 上是加粗的第一名。零樣本效果的直觀感受可以看這個(gè)全球溫度異常序列的實(shí)例左側(cè)藍(lán)色是歷史數(shù)據(jù)右側(cè)紅色是 12 個(gè)月的預(yù)測(cè)加 60%/80% 置信區(qū)間代碼在 run_forecast.py。踩坑與硬性限制癥狀A(yù)pple Silicon 上安裝報(bào)lingvo編譯失敗 →原因lingvo依賴不支持 ARM 架構(gòu) →解法直接換 PyTorch 后端pip install timesfm[torch]它對(duì) ARM 支持最好。癥狀安裝過(guò)程被Killed (signal 9)殺掉 →原因內(nèi)存不足 →解法官方建議至少 32GB 空閑內(nèi)存安裝時(shí)關(guān)其他大內(nèi)存應(yīng)用并用干凈的虛擬環(huán)境重裝。癥狀ModuleNotFoundError: No module named xreg_lib→原因協(xié)變量功能依賴 JAX 生態(tài) →解法補(bǔ)裝pip install jax jaxlib或一開(kāi)始就裝.[xreg]附加包。癥狀報(bào)Input contains NaN values→原因輸入序列有空值 →解法預(yù)測(cè)前先做前向填充或插值模型不吃斷點(diǎn)。癥狀GPU 報(bào)CUDA out of memory→原因上下文或批量太大 →解法把per_core_batch_size降到 8/4、max_context砍到夠用為止實(shí)在不行先用backendcpu驗(yàn)證邏輯。更多報(bào)錯(cuò)的對(duì)照表在 TROUBLESHOOTING.md遇到本文沒(méi)覆蓋的癥狀先翻一遍。下一步TimesFM 把預(yù)測(cè)一條新序列的門檻從調(diào)參半天降到了加載模型 十行代碼零樣本 批量推理 概率區(qū)間的組合在銷售、傳感器、天氣這類場(chǎng)景里開(kāi)箱即用。想深入的話建議從 timesfm-forecasting/SKILL.md 入手——它把從環(huán)境體檢到協(xié)變量預(yù)測(cè)的完整路徑都寫清楚了跑通之后下一步值得嘗試的是把你自己的 CSV 丟進(jìn)forecast_csv.py對(duì)比一次零樣本效果或者直接上 LoRA 微調(diào)看看業(yè)務(wù)分布上能壓掉多少誤差?!久赓M(fèi)下載鏈接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ti/timesfm創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考