こんにちは、ソラコムのテクノロジー・エバンジェリスト 松下(ニックネーム: Max)です。
この記事では最近私が注目している、時系列データの予測に使える「時系列基盤モデル」をご紹介します。
基盤モデルとは
基盤モデル(Foundation Model)とは、膨大なデータを基にした学習済みのAIモデルです。
生成 AI で話題となる LLM(大規模言語モデル)は、基盤モデルの一種です。その名の通り、言語を対象にしたモデルですが、昨今はテキストだけでなく音声、静止画、動画といった様々なデータに対応し、複合的に扱える(マルチモーダル)ようにもなっています。
ここでご紹介する時系列基盤モデルも、LLMと同様に基盤モデルの一種です。
IoTと時系列データの関係性、未来予測の課題
IoTに限らず、ビジネスでは時系列データを扱う機会がとても多いです。
時系列というのは、例えば室温であれば、10時に25.5℃、11時に26.3℃といった、時間の経過に沿って測定されたデータの事です。ざっと例を挙げるだけでも、以下のようなものがあります。
- 温湿度や気圧といった天候データ
- 電力消費量
- 水やオイル等の水位
- 製造ラインの生産数
- 来店者数
- ネットワークトラフィックやサーバー負荷
- 為替レートや株価
時系列データは、過去のデータを可視化したり、また最新データを基に通知をするという活用が一般的です。ただ、この活用の本質は「今後どうなるのか」を知るための情報源です。
すなわち、時系列データ活用の理想は「未来を知る」ことです。
現状は回帰分析などの統計手法や、現場の勘(!!)といった手法を行っている現場がほとんどではないでしょうか。また、機械学習(ML)や深層学習(DL)を用いることもできるようになってきました。例えば Amazon CloudWatch Logs Anomaly Detection といった、特定分野における予測や異常検知をMLで行える仕組みもありますが、汎用的なデータに対しては未だに専門知識や事前学習といった手間が課題です。
そこで時系列基盤モデルを用いることで、手軽に未来予測が扱える可能性が出てきました。
時系列基盤モデル
時系列基盤モデル(Time-series Foundation Mode)は、時系列データに特化した学習済みモデルです。時系列データを入力すると、予測が出力されます。
時系列基盤モデルには様々な実装があります。リストは後述しますが、共通しているのは、LLM におけるプロンプトによる指示の入力では無く、出力などの調整は未来予測時の関数・メソッド呼び出し時のパラメータで行うところです。
曖昧だったり未整形のデータ入力には対応していません。そのため、入力データの事前整形が不可欠です。いわゆるプログラムのライブラリのように呼び出して使う事になります。
Amazon.com の時系列データ向け基盤モデル「Chronos」の例では、以下の通りです(forecast
の値については、解説をご覧ください)。
#!python3 csv = pd.read_csv('data.csv') # データの読み込み pipeline = ChronosPipeline.from_pretrained("amazon/chronos-t5-tiny") # 基盤モデルの読み込み forecast = pipeline.predict(torch.tensor(csv[0]), prediction_length=1) # 次の1件を予測
その他の時系列基盤モデルでも多少の差異はあるものの、基本的な利用は以上のような流れとなります。
どのように活かすか? ― 時系列基盤モデルの活用
時系列基盤モデルの効果的な活用の方向性は、以下のような事が考えられます。
- 周期性ある中で、季節指数などの考慮が必要な場合
- スパイクのような “これまでと異なる兆候” の予測
前者は室温が考えられます。季節によって基礎となる室温が異なるが、朝・昼・夜という時間帯毎の値は相対的に同じトレンドを描くというデータです。
後者は、来店者数やネットワークトラフィックがあるでしょう。ルールベースの判定も出来そうですが、近々の実績を考慮しつつ予測をするといった、今までに人間が行っていた部分を任せられる可能性があります。
また、予測と実績の比較の仕方も工夫ができます。以下は、単純な右肩上がりのグラフです。
青がこれまでの実績、赤が予測です。予測を1点で行うピンポイント予測なら「この値になる、これ以上、これ以下になるべき」という比較ができます。また、範囲予測をすることで「将来は、この範囲内に収まるはず」という使い方もできます。
GPT-4o や Claude 3.5 等のLLMで、ここで紹介しているように時系列データの予測をさせることも可能です。一方で、適切なプロンプト等、研究段階(e.g. Large Language Models for Time Series: A Survey)でもあります。マルチモーダルLLMのような汎用型LLMと、今回のような特化型基盤モデル、どちらも発展が見込まれます。
時系列基盤モデルの例
時系列基盤モデルは、様々なところから発表・提供されてます。主だったものをピックアップしてみました。
- Chronos (by Amazon)
- Lag-Llama (by ServiceNow)
- Prophet (by Facebook)
- MOMENT (by AutonLab)
- Moirai (by Salesforce)
- TimeGPT-1 (by Nixtla)
- TimesFM (by Google)
ここで挙げた基盤モデルのほとんどが、先ほど紹介したChronosと同様のコード量で利用できます。
他にも、AIモデルの共同開発プラットフォーム「Hugging Face」で “Time Series Foundation Model” といった検索で見つけられます。
まとめ
IoTのみならず、ビジネスでも良く扱う「時系列データ」の未来予測が時系列基盤モデルによって手軽になったことを紹介しました。
現状、構築や運用については、フルマネージドサービスを見つけることができませんでした。そのため、例えばコンテナ化したアプリケーション実行基盤(AWS Fargate や Google Cloud Run、Azure Container Apps 等)での動作となるでしょうが、有用性が見えてくればマネージドサービスの登場もあり得るでしょう。
また、データの扱いについて、予測できることも大切ですが、予測と実績の評価や、そこから通知といったアクションへつなげる必要もあることを忘れずにしたいものです。
IoTプラットフォーム「SORACOM」では、Anthropic Claude 3.5 Sonnet や OpenAI GPT-4o といったLLM※を基にしたAIアプリケーションをローコードで構築できるサービス「SORACOM Flux」を提供しています。カメラ画像から状況を判断したり、結果を通知したり現場のデバイスと連携するといったアクションを結びつけることができます。AIの本格活用の際には、ぜひご検討ください!
※時系列基盤モデルは現状サポートしていませんが、ご希望の声があれば是非お寄せください!
詳しくは以下のページやブログ記事をご覧ください。
資料
Chronos 紹介資料 (8/24 JAWS PANKRATION での登壇資料)
Chronos の利用例と、Lambda Web Adapter 化のコード
― ソラコム松下 (Max)