google-research/timesfm
学習させ直さずに、過去の数値をそのまま渡して先を予測させる
どういうものか
時系列予測の「事前学習ずみモデル」です。ふつう売上や需要の予測は、系列ごとにデータを集めてモデルを育てるところから始まります。TimesFM はその工程を前提にしません。過去の数値の並びを配列で渡すと、この先の値が返ってきます。言語モデルと同じデコーダのみの構成で、大量の時系列で先に学習させてあるためです(ICML 2024 の論文が元)。
いまの主役は 3.0 です。1本の系列だけでなく複数系列をまとめて扱え、共変量——予測したい値のそばにある別の数字——を一緒に渡せます。共変量は2種類あり、過去ぶんしか分からないもの(実績の気温など)と、未来まで分かっているもの(暦、セール予定など)を区別して渡します。出力は1本の予測線だけでなく、0.1 から 0.9 まで9本の分位が付きます。
版による違いも押さえておくと読みやすくなります。系列の長さの上限は 2.0 の 2048 に対し、2.5 は最大 16k。パラメータ数は 2.5 が2億で、2.0 の5億から小さくなりました。3.0 は3.3億です。ベンチマークは fev-bench(実データ100タスク)、TIME Benchmark(50データセット・98タスク)、GIFT-Eval の3つで首位を掲げています(ただし GIFT-Eval だけは「基盤モデルの中で1位」という限定が付いています)。BigQuery ML、Google スプレッドシート、Vertex Model Garden からも呼べます。
どんなときに使うか
予測したい系列が多すぎて、1本ずつモデルを作っていられないとき
商品ごと・店舗ごとに需要を読みたい、というときに系列は数千本になります。1本ずつ学習させる設計はそこで詰まります。まず全部を渡してみて、精度が足りないところだけ手をかける、という順番に変えられます。
「いくつになるか」だけでなく「どれだけ外れうるか」も要るとき
在庫や人員の計画では、真ん中の値より上振れ・下振れの幅のほうが効きます。3.0 なら9本の分位が最初から付いてくるので、予測とは別に区間推定を組む必要がありません(2.5 では、任意の分位ヘッドを足す形になります)。
注意点
3.0 の重みは非商用ライセンスです。ここが最初に確認すべき点です。 ソースコードは Apache-2.0 ですが、3.0 の既定の学習ずみ重みは timesfm-non-commercial-license-v1.0 で配られており、商用・本番での利用は認められていません。仕事で使うなら、Apache-2.0 のまま配られている 2.5 以前を選ぶことになります。Google 製品からも呼べますが、そちらの条件は各サービス側で確かめる必要があります。「リポジトリが Apache-2.0 だから自由に使える」と読むと間違えます。
Google の公式サポート製品ではない、と本人が明記しています。 研究成果の公開版という位置づけです。サポート窓口や後方互換の保証を期待する種類のものではありません。
ベンチマーク1位は、あなたのデータで1位という意味ではありません。 掲げられている3つの順位は公開データセットの平均での話です。自社の系列は癖が強いことが多く、素朴な移動平均に負けることもあります。乗り換えを決める前に、手元の直近データで従来手法と並べて測るのが先です。