🚀 TimesFM
TimesFM(時間序列基礎模型)是由谷歌研究團隊開發的預訓練時間序列基礎模型,用於時間序列預測。它為時間序列預測任務提供了強大的支持,能幫助用戶更準確地預測未來趨勢。
資源與技術文檔
作者
谷歌研究團隊
⚠️ 重要提示
這並非谷歌官方支持的產品。
📦 安裝指南
此HuggingFace倉庫託管了TimesFm的模型檢查點。請訪問我們的GitHub倉庫,並按照其中的說明安裝timesfm
庫以進行模型推理。
⚠️ 重要提示
依賴項lingvo
不支持ARM架構,因此推理代碼在配備Apple silicon的機器上無法運行。我們已注意到這個問題,正在努力解決,請持續關注。
💻 使用示例
基礎用法
初始化模型並加載檢查點
可以按以下方式加載基類:
import timesfm
tfm = timesfm.TimesFm(
context_len=<context>,
horizon_len=<horizon>,
input_patch_len=32,
output_patch_len=128,
num_layers=20,
model_dims=1280,
backend=<backend>,
)
tfm.load_from_checkpoint(repo_id="google/timesfm-1.0-200m")
⚠️ 重要提示
加載200m模型時,以下四個參數是固定的:
input_patch_len=32,
output_patch_len=128,
num_layers=20,
model_dims=1280,
💡 使用建議
- 此處的
context_len
可以設置為模型的最大上下文長度。你可以向tfm.forecast()
函數提供更短的序列,模型會自動處理。目前,模型處理的最大上下文長度為512,後續版本可能會增加。輸入的時間序列可以是任意上下文長度。如果需要,推理代碼會處理填充或截斷操作。
- 預測長度(
horizon_len
)可以設置為任意值。我們建議將其設置為應用程序預測任務中所需的最大預測長度。一般來說,我們建議預測長度 <= 上下文長度,但在函數調用中這不是必需的。
高級用法
進行推理
我們提供了從數組輸入或pandas
數據框進行預測的API。兩種預測方法都需要(1)輸入時間序列上下文,(2)以及它們的頻率。請查看tfm.forecast()
和tfm.forecast_on_df()
函數的文檔以獲取詳細說明。
💡 使用建議
關於頻率,TimesFM期望一個取值在{0, 1, 2}的分類指標:
- 0(默認):高頻、長預測長度的時間序列。建議用於粒度達到每日的數據。
- 1:中頻時間序列。建議用於每週和每月的數據。
- 2:低頻、短預測長度的時間序列。建議用於每月以上的時間序列,例如季度或年度數據。
這個分類值應直接與數組輸入一起提供。對於數據框輸入,我們會將傳統的頻率字母編碼轉換為我們期望的類別,即:
- 0:T, MIN, H, D, B, U
- 1:W, M
- 2:Q, Y
⚠️ 重要提示
你不必嚴格遵循我們的建議。雖然這是我們在模型訓練期間的設置,並且我們期望它能提供最佳的預測結果,但你也可以將頻率輸入視為一個自由參數,並根據具體用例進行修改。
數組輸入示例
以下是將頻率分別設置為低、中、高的數組輸入示例:
import numpy as np
forecast_input = [
np.sin(np.linspace(0, 20, 100)),
np.sin(np.linspace(0, 20, 200)),
np.sin(np.linspace(0, 20, 400)),
]
frequency_input = [0, 1, 2]
point_forecast, experimental_quantile_forecast = tfm.forecast(
forecast_input,
freq=frequency_input,
)
pandas
數據框輸入示例
以下是將頻率設置為“M”(每月)的pandas
數據框輸入示例:
import pandas as pd
forecast_df = tfm.forecast_on_df(
inputs=input_df,
freq="M",
value_name="y",
num_jobs=-1,
)
📚 詳細文檔
檢查點 timesfm - 1.0 - 200m
timesfm-1.0-200m
是第一個開放的模型檢查點:
- 它可以對上下文長度達512個時間點和任意預測長度的單變量時間序列進行預測,並可選擇使用頻率指標。
- 它專注於點預測,不支持概率預測。我們實驗性地提供了分位數頭,但在預訓練後尚未進行校準。
- 它要求上下文是連續的(即沒有“空洞”),並且上下文和預測長度的頻率必須相同。
基準測試
請參考我們在擴展基準測試和長預測長度基準測試上的結果表。
請查看experiments/
目錄下各個基準測試目錄中的README文件,以獲取在相應基準測試上運行TimesFM的說明。
📄 許可證
本項目採用Apache - 2.0許可證。