Amazon Web Services ブログ
AWS 上での LLM ベースの基盤モデルとスケーラブルな MLOps による時系列予測
このブログは Time series forecasting with LLM-based foundation models and scalable AIOps on AWS を翻訳したものです。
時系列予測は、様々な業界で重要な意思決定を行う際に欠かせません。交通量の予測から売上予測まで、正確な予測によって組織は情報に基づいた決断を下し、リスクを軽減し、効率的にリソースを配分することができます。しかし、従来の機械学習アプローチでは、データに合わせた細かい調整やモデルのカスタマイズが広範囲に必要となり、開発に長い時間とリソースを要することがしばしばありました。 そこで登場したのが Chronos です。これは大規模言語モデル(LLM)のアーキテクチャを活用して、これらの障壁を打破する最先端の時系列モデルファミリーです。Chronos は基盤モデルとして、大規模で様々なデータセットを使って事前学習を行っており、多くの分野で使える汎用的な予測能力を持っています。この革新的なアプローチにより、Chronos はゼロショット予測(対象データセットに特化した訓練なしで行う予測)において優れた性能を発揮します。Chronos はベンチマークされたほとんどのデータセットにおいて、タスク特化型モデルを上回る性能を示しています。
Chronosは、大規模言語モデル(LLM)と時系列予測の両方が、「将来を予測するために連続的なパターンを理解する」という共通の目的を持っているという重要な発見から生まれました。この類似性により、時系列データを既存の transformer アーキテクチャによってモデル化された「言語」として扱うことができます。これを実現するために、Chronos は連続的な時系列データを「言語」として扱えるよう、次の 2 段階で離散的な「言語」に変換します。まず時系列の絶対平均でスケーリングし、次にスケーリングされたデータを一定数の均等な区間に分けて量子化します。この処理によって、連続的な数値データが LLM で処理できる離散的な「言語」に変換されます。
このブログ記事では、売上予測を例にテスト用に作成した合成データを使って Chronos を Amazon SageMaker Pipeline に統合するプロセスを案内します。これにより、最小限のデータで正確かつ効率的な予測が可能になります。ファインチューニングからデプロイメントまでの全ワークフローをオーケストレーションする機能の使い方を学びます。この解説を通じて、開発プロセスを合理化し、Chronos をあらゆる時系列データに適用して、予測アプローチを変革する準備が整います。
前提条件
SageMaker ドメインへのアクセスと必要な IAM 権限:必要なリソースを作成・管理するために、適切な AWS Identity and Access Management(IAM)権限を持つ SageMaker ドメインへのアクセスが必要です。ノートブックの作成、モデルのデプロイ、およびこの記事で説明するその他のタスクを実行するための権限があることを確認してください。SageMaker ドメインのセットアップ手順については、Amazon SageMaker AI のクイックセットアップをご参照ください。実際に試すには、GitHub のコードをご覧ください。
SageMaker Pipelines の概要
私たちは、トレーニングと評価の実験をオーケストレーションするために SageMaker Pipelines を使用しています。Amazon SageMaker Pipelines を使用すると、以下のことが可能になります:
- 複数の実験イテレーションを同時に実行し、全体の処理時間とコストを削減
- Studio との統合により、各実験実行のパフォーマンスを監視および視覚化
- さらなる分析、デプロイメント、またはモデル選択のためのダウンストリームワークフローを呼び出し
学習パイプライン
データの生成
自然言語処理(NLP)分野で利用可能な広範囲で高品質なテキストデータセットと比較すると、公開されている時系列データの可用性と品質は限られています。この問題は特に、ゼロショット予測(事前の学習なしで予測を行うこと)を目指すモデルの学習において大きな課題となります。このような予測には大規模で多様な時系列データが必要であるからです。そこで、事前学習済みの Chronos モデルをファインチューニングするため、私たちは合成的に生成された小規模なデータセットのみを使用します。 多様な時系列パターンを生成するために、パイプラインの最初のステップでは基本となる時系列パターンを組み合わせて、合成したデータセットを作成します。これらの基本カーネルには、直線的な増減傾向、緩やかに変化する波形、季節ごとの周期的な変動など、時系列データの基本的な要素が含まれています。これらの基本パターンを足し算や掛け算などのランダムな演算で組み合わせることで、現実のデータに近い複雑な合成時系列データを作成します。このアプローチにより、シンプルな基本要素から出発して、多種多様で複雑な時系列パターンを効率的に生成できます。 このSageMaker Processing Job で実行されるデータ処理ジョブは PyTorchProcessor を使用して実行され、SageMaker によって管理されるコンテナ内で PyTorch コード(generate_data.py
)を実行します。データやデバッグ用のその他の関連アーティファクトは、SageMaker アカウントに関連付けられたデフォルトの Amazon Simple Storage Service(Amazon S3)バケットに配置されます。パイプラインの各ステップのログは Amazon CloudWatch で確認できます。
ハイパーパラメータの探索
データ生成の後、事前学習済みの Chronos モデルをファインチューニングします。ファインチューニングにより、事前学習データでは十分に表現されていない可能性がある特定のユースケースに特化させることができます。この記事では amazon/chronos-t5-small
を使用していますが、適切と思われる任意のモデルを使用することができます。以下の表は、利用可能なモデルを示しています。
Model | Parameters | Based on |
---|---|---|
chronos-t5-tiny | 8M | t5-efficient-tiny |
chronos-t5-mini | 20M | t5-efficient-mini |
chronos-t5-small | 46M | t5-efficient-small |
chronos-t5-base | 200M | t5-efficient-base |
chronos-t5-large | 710M | t5-efficient-large |
最適な出力を得るために、ハイパーパラメータチューニングを通じてモデルの最良のバージョンを見つける自動モデルチューニングを使用します。このステップは SageMaker Pipelines に統合されており、事前に定義したハイパーパラメータの範囲内で様々な手法を試しながら、複数のトレーニングジョブを同時に実行できるようになっています。私たちのパイプラインでは、モデルのパフォーマンスを最適化するために特に学習率をチューニングしています。SageMaker のハイパーパラメータチューニング機能を活用することで、対象タスクにおいてモデルの精度と汎用性を同時に高める可能性を向上させています。
Amazon SageMaker Model Registry
選択されたモデルは、その後 SageMaker Model Registry にアップロードされます。このレジストリは本番環境に向けたモデルの管理において重要な役割を果たします。モデルを保存し、モデルのバージョンを整理し、コンテナイメージなどの重要なメタデータやアーティファクトを記録し、各モデルの承認状態を管理します。このレジストリを使用することで、アクセス可能な SageMaker 環境へのモデルのデプロイを効率的に行い、モデルのバージョン管理の基盤を確立することができます。
推論
トレーニングパイプラインの完了後、モデルは SageMaker ホスティングサービスを使用してデプロイされます。これにより、リアルタイム予測のための推論エンドポイントが作成されます。このエンドポイントはアプリケーションやシステムとのシームレスな統合を可能にし、安全な HTTPS インターフェースを通じてモデルの予測機能にオンデマンドでアクセスできるようにします。リアルタイム予測は、株価予測やエネルギー需要予測などのシナリオで活用できます。
サンプルの予測結果
以下の図は、Chronos エンドポイントから得られたサンプル予測を示しています。
Chronos パフォーマンスのベンチマーク
上のグラフは、Chronos モデルのトレーニングに使用されていない 27 のデータセットに基づいた、様々な時系列予測モデルのパフォーマンス評価を示しています。このベンチマークでは、Chronos モデルのゼロショットパフォーマンスを、ローカル統計モデル、タスク特化型モデル、事前学習済みモデルと比較評価しています。評価には、確率的予測(WQL)と点予測(MASE)の 2 つの指標が使用されており、どちらも季節性を考慮したナイーブベースラインを用いて正規化されています。結果は幾何平均によって集計されています。なお、上記に示されている事前学習済みモデルの一部は、このベンチマークで使用されているデータセットに対して事前に学習済みであったことが指摘されています。 ゼロショットの結果は「Chronos: Learning the Language of Time Series」から引用されています。
まとめ
このブログ記事では、LLM アーキテクチャに基づく強力な時系列予測モデルである Chronos をデプロイするために、Amazon SageMaker MLOps 機能をどのように活用するかを紹介しました。SageMaker Pipelines を使用することで、高度な予測モデルを大規模に構築、トレーニング、デプロイするための包括的なアプローチを示しました。この実装は、モデル開発の効率性、スケーラビリティ、合理化された AIOps、リアルタイム推論機能、およびコスト効率の良さを提供します。Chronos と SageMaker の統合により、様々な業界の企業は、社内に広範な機械学習の専門知識を持たなくても、高度な時系列予測を実装できる新たな可能性を手に入れることができます。AI と機械学習が進化し続ける中、Amazon SageMaker 上の Chronos のようなソリューションは、高度な予測技術をより身近で実用的なものにする重要な一歩であり、業界全体でより情報に基づいた意思決定と運用効率の向上につながる可能性があります。
参照
- Chronos forecasting
- Adapting language model architectures for time series forecasting
- Robust time series forecasting with MLOps on Amazon SageMaker
ご意見やご質問がございましたら、お気軽にコメントをお寄せください!
著者
Alston Chan は Amazon Ads のソフトウェア開発エンジニアです。詳細ページでの商品レコメンデーション向けの機械学習パイプラインとレコメンデーションシステムを構築しています。仕事以外では、ゲーム開発とロッククライミングを楽しんでいます。
Maria Masood は AWS Commerce Platform でデータパイプラインとデータ可視化の構築を専門としています。自然言語処理、コンピュータビジョン、時系列分析をカバーする機械学習の専門知識を持っています。心からのサステナビリティ愛好家である Maria は、休日にガーデニングと愛犬との遊びを楽しんでいます。
Nick Biso は AWS プロフェッショナルサービスの機械学習エンジニアです。データサイエンスとエンジニアリングを活用して、複雑な組織的・技術的課題を解決しています。さらに、AWS クラウド上で AI/ML モデルの構築とデプロイを行っています。彼の情熱は、旅行と多様な文化体験への嗜好にも表れています。