概要
TimesFM はGoogle Researchが開発した時系列予測用の 事前学習済み基盤モデル。 最新バージョンは TimesFM 2.5 で、パラメータ削減や文脈長拡大など大幅な進化。 Hugging Face や BigQuery で利用可能、オープンバージョンも提供。 インストール方法やコード例 が公式リポジトリに記載。 Flax対応やドキュメント拡充 も進行中。
TimesFM: Google Researchの時系列基盤モデル
- TimesFM はGoogle Researchによる 時系列予測専用の大規模事前学習モデル
- ICML 2024 で発表された論文「A decoder-only foundation model for time-series forecasting」に基づく設計
- Hugging Face Collection で全チェックポイント提供
- BigQuery との連携による公式Googleプロダクト展開
- オープン版は Google公式サポート対象外 であることに注意
モデルバージョンと主なアップデート
- 最新バージョン:TimesFM 2.5
- パラメータ数:200M (従来の500Mから大幅削減)
- 文脈長:最大16,000 (2.0の2,048から拡大)
- 連続量子予測 :最大1,000ホライズン対応、30Mパラメータの量子ヘッド搭載
- frequency indicator廃止
- 新たな予測フラグ を追加
- covariate(外生変数)サポート をXReg経由で再導入(2025年10月29日アップデート)
- 旧バージョン:1.0、2.0
- v1サブディレクトリ に関連コードをアーカイブ
- pip install timesfm==1.3.0 で旧バージョン利用可能
インストール方法
- リポジトリのクローン
git clone https://github.com/google-research/timesfm.gitcd timesfm
- 仮想環境の作成と有効化
uv venvsource .venv/bin/activate
- 依存パッケージのインストール
- PyTorch版 :
uv pip install -e .[torch] - Flax版 :
uv pip install -e .[flax] - XReg(外生変数対応) :
uv pip install -e .[xreg]
- PyTorch版 :
- バックエンドの選択的インストール
- PyTorch または Jax(Flax用) をOSやアクセラレータに応じて追加インストール
コード例(PyTorch版TimesFM 2.5)
- 主要ライブラリのインポート
import torchimport numpy as npimport timesfm
- 精度設定とモデルロード
torch.set_float32_matmul_precision("high")model = timesfm.TimesFM_2p5_200M_torch.from_pretrained("google/timesfm-2.5-200m-pytorch")
- モデルのコンパイル
model.compile(timesfm.ForecastConfig(...))max_context=1024max_horizon=256normalize_inputs=Trueuse_continuous_quantile_head=Trueforce_flip_invariance=Trueinfer_is_positive=Truefix_quantile_crossing=True
- 予測の実行
point_forecast, quantile_forecast = model.forecast(...)- 入力例:
np.linspace(0, 1, 100),np.sin(np.linspace(0, 20, 67)) - 出力:
point_forecast.shape→ (2, 12)、quantile_forecast.shape→ (2, 12, 10)
- 入力例:
今後の開発・サポート予定
- Flaxバージョン 対応による推論高速化
- covariateサポート の拡充
- ドキュメント・ノートブック のさらなる整備
- リポジトリは順次アップデート中 である点に注意
参考リンク
- 論文 :A decoder-only foundation model for time-series forecasting(ICML 2024)
- Hugging Face Collection :TimesFM Models
- Google Research Blog :TimesFM解説記事
- GitHubリポジトリ :google-research/timesfm