概要
TimesFM は Google の研究チームが開発したデコーダーベースの事前学習済み時系列基盤モデルであり、長いコンテキストと連続分位数予測をサポートし、PyTorch 版と Flax 版を提供しています。
README プレビュー
# TimesFM\n\nTimesFM (Time Series Foundation Model) is a pretrained time-series foundation\nmodel developed by Google Research for time-series forecasting.\n\n* Paper:\n [A decoder-only foundation model for time-series forecasting](https://arxiv.org/abs/2310.10688),\n ICML 2024.\n* All checkpoints:\n [TimesFM Hugging Face Collection](https://huggingface.co/collections/google/timesfm-release-66e4be5fdb56e960c1e482a6).\n* [Google Research blog](https://research.google/blog/a-decoder-only-foundation-model-for-time-series-forecasting/).\n* TimesFM in Google 1P Products:\n * [BigQuery ML](https://cloud.google.com/bigquery/docs/timesfm-model): Enterprise level SQL queries for scalability and reliability.\n * [Google Sheets](https://workspaceupdates.googleblog.com/2026/02/forecast-data-in-connected-sheets-BigQueryML-TimesFM.html): For your daily spreadsheet. \n * [Vertex Model Garden](https://pantheon.corp.google.com/vertex-ai/publishers/google/model-garden/timesfm): Dockerized endpoint for agentic calling.\n\nThis open version is not an officially supported Google product.\n\n**Latest Model Version:** TimesFM 2.5\n\n**Archived Model Versions:**\n\n- 1.0 and 2.0: relevant code archived in the sub directory `v1`. You can `pip\n install timesfm==1.3.0` to install an older version of this package to load\n them.\n## Update - June 5, 2026\n\nUpdated PyPI to `timesfm=2.0.0`. See [Install](https://github.com/google-research/timesfm#from-pypi).\n\n## Update - Apr. 9, 2026\n\nAdded fine-tuning example using HuggingFace Transformers + PEFT (LoRA) — see\n[`timesfm-forecasting/examples/finetuning/`](timesfm-forecasting/examples/finetuning/).\nAlso added unit tests (`tests/`) and incorporated several community fixes.\n\nShoutout to [@kashif](https://github.com/kashif) and [@darkpowerxo](https://github.com/darkpowerxo). \n\n## Update - Mar. 19, 2026\n\nHuge shoutout to [@borealBytes](https://github.com/borealBytes) for adding the support for [AGE
FAQ (4)
トラブル対応TimesFM PyTorchでtorch_compile=Trueが効果を発揮しないのはなぜか、また、torch.compileで推論を高速化するにはどうすればよいか
この no-op は、load_checkpoint 内の self = torch.compile(self) が原因です。self はローカル変数であるため、それを再バインドしても from_pretrained が返すモデルオブジェクトは変わりません。
PR #459 の修正を適用するか、読み込み後に forward を直接コンパイルしてください:
model = timesfm.TimesFM_2p5_200M_torch.from_pretrained(
"google/timesfm-2.5-200m-pytorch"
)
model.model.forward = torch.compile(model.model.forward)
同様に、timesfm_2p5_torch.py 内の効果のない行を次のように置き換えます:
self.model.forward = torch.compile(self.model.forward)
KV キャッシュのスライス代入は依然としてグラフブレイクを引き起こしますが、アテンションと MLP の matmul はコンパイルされるため、推論は高速になります。A100 上で batch=64、context=512、horizon=128 の場合、レイテンシが 108.8 ms から 73.7 ms に短縮されました (1.48 倍)。再バインドを修正した後にモジュール全体をコンパイルしても、報告されたベンチマークでは測定可能な速度向上は得られませんでした。
トラブル対応なぜTimesFMの`xreg_mode`は、`xreg + timesfm`と`timesfm + xreg`に対してdocstringとは逆の動作をするのですか?
影響を受ける実装では、docstring が逆になっています。ドキュメントではなく、コードに従ってモードを使用してください:
- まずターゲットに対して xreg をフィットさせ、その後 TimesFM で残差を予測するには、次を使用してください:
xreg_mode="xreg + timesfm"- まず TimesFM の予測を生成し、その後その残差に対して xreg をフィットさせるには、次を使用してください:
xreg_mode="timesfm + xreg"
これは L488–L494 付近の分岐で確認できます:timesfm + xreg は max(0, input_len - self.input_patch_len) を使用し、「For fitting residuals」というコメントが付いています。一方、xreg + timesfm は input_len を使用します。docstring が修正されるまでは、ドキュメントの記述は入れ替わっているものとして扱ってください。
トラブル対応TimesFM 2.5 PyTorch の from_pretrained エラー: unexpected keyword argument 'proxies' と load_checkpoint の NotImplementedError を修正する方法
これは timesfm の PR #435 で修正されています。その修正を含むリリースにアップグレードするか、最新のソースをインストールしてください:
pip install -U git+https://github.com/google-research/timesfm.git
その後、再試行してください:
import timesfm
tfm = timesfm.TimesFM_2p5_200M_torch.from_pretrained(
"google/timesfm-2.5-200m-pytorch"
)
アップグレードできない場合は、一時的に古い Hub クライアントに固定してください:
pip install "huggingface_hub<0.34"
# for example:
pip install huggingface_hub==0.33.5
これは新しい transformers/accelerate リリースと競合する可能性があります。影響を受ける timesfm バージョンでは、PyTorch サブクラスが NotImplementedError を送出するため、回避策として load_checkpoint(local_path) を使用しないでください。代わりにパッチ適用済みの timesfm ビルドを使用してください。ソースレベルでの修正としては、モデルのコンストラクタが新しい Mixin のキーワード引数を受け取って無視するようにする方法があります。例: def __init__(self, config, **_ignored):。
how_toPyTorchを使わずにApple SiliconでTimesFM 3.0を実行するにはどうすればよいですか?
MLXバックエンドを使用してください。これはPR #476でsrc/timesfm3/mlx/配下に提供されており、既存のPyTorchバックエンドはsrc/timesfm3/torch/配下に維持されています。MLX版は同じtimesfm3_forecasterインターフェースを公開し、同じチェックポイントを読み込み、最大絶対誤差約1e-6でPyTorchの出力と一致します。スタンドアロン実装はhttps://github.com/rachittshah/mlx-tsfmで入手できます。
クイックセットアップ:
python -m pip install -U mlx
git clone https://github.com/rachittshah/mlx-tsfm.git
cd mlx-tsfm
pytest tests/test_timesfm.py
PR #476が適用されたTimesFMリポジトリを使用する場合は、Torchモジュールの代わりにtimesfm3.mlx.timesfm3_forecasterからforecasterをインポートし、同じ初期化および予測呼び出しを使用してください。M4 Maxでは、330Mモデルは単一予測あたり約20 msかかり、バッチ処理時には約475予測/秒に達すると報告されています。