AWSで始める時系列予測。Amazon ForecastかAmazon SageMakerかどちらを使うべき?

記事タイトルとURLをコピーする

f:id:swx-mine:20200824174418p:plain

はじめに

商品の需要予測や何らかのリソースの稼働の予測などを、時系列予測で実施したいとき、AWSのマネージドサービスでは2つの選択肢があります。Amazon ForecastAmazon SageMakerです(もちろんECSやEC2上で自分たちで実装する方法もありますが、今回はMLサービスに絞って記載します。。。)。あまりAWSに詳しくない方・機械学習に詳しくない方はこの2つのどちらを利用すべきか迷われるかと思います。今回はそれぞれのメリット・デメリットを説明しつつ、どちらを利用すべきか考えたいと思います。

1. それぞれの概要

まずはそれぞれのサービスの概要をみていきましょう。

1-1. Amazon Forecast

docs.aws.amazon.com

Amazon Forecastは時系列予測のためのフルマネージドサービスです。ユーザーはデータを用意して、Amazon Forecastへデータをインポート、トレーニングを実行するだけで簡単に時系列予測の実施が可能です。Forecastでは事前定義済みのアルゴリズム/ハイパーパラメータが用意されています。ユーザーがトレーニング実行時にこれらを選択することも可能なのですが、Forecastの特徴的な機能としてAutoMLがあります。AutoMLを使うことで最適なアルゴリズム/ハイパーパラメータが選択されます。ユーザーは機械学習に詳しくなくてもAutoMLが勝手にやってくれるということです。

1-2. Amazon SageMaker

docs.aws.amazon.com

AWSで機械学習といえばAmazon SageMakerでしょう。完全マネージド型の機械学習サービス とドキュメントに記載はありますが、私は「機械学習の実行環境と便利機能」といったイメージです。SageMaker Studioという開発環境や、前処理・トレーニングを実行する機能、モデルの比較・評価する機能もあります。もちろんSageMakerにモデルをデプロイすることもできます。つまり、いろいろ多機能です。

時系列予測では、DeepARという組み込みアルゴリズムが用意されているのでこちらを使うことになるでしょう。またAWSが用意しているコンテナイメージならTensorFlowやPytorchも利用できます。ユーザー側でイメージを用意すれば任意のアルゴリズムを持ち込んで実行すつことも可能です。

2. 比較

さて、ざっくり2つのサービスがわかったところで2つのサービスを比較してみましょう。

2-1. データの前処理

モデルをトレーニングする前にデータの前処理が必要です。

サービス 内容
Amazon Foracast Forecastでは前処理などの処理はできない
Amazon SageMaker SageMaker NotebookやSageMaker Processingで前処理を実行できる

SageMakerはほぼなんでもできます、しかし初心者からするとそれが逆に面倒かも。。。Forecast自体にはデータをゴニョゴニョする機能がないので、インポートする前に別のサービスか何かでデータスキーマに対応するようにデータを成形してやる必要があります。決まりきった形にすればいいので初心者からするとこちらの方が気が楽かも。。。

2-2. モデルのトレーニング

サービス 内容
Amazon Foracast アルゴリズムは事前定義済みの物のみ。
AutoMLが使える
Amazon SageMaker 組み込みアルゴリズム・フレームワーク・持ち込みアルゴリズムなど様々なものが使える。
ハイパーパラメータ調整ジョブで適切なハイパーパラメータの探索。

ForecastでAutoMLが使えるのは大きなメリットでしょう。まったくの機械学習初心者でもモデルのトレーニングができてしまいます。SageMakerにもAutopilotというAutoMLな機能はありますが、いまのところ(2020/08現在)DeepARは使えません。ハイパーパラメータ調整ジョブもある程度ユーザーで当たりをつけてやった方がいいので、初心者には難しいかもしれません。

2-3. 料金

さて気になる料金ですが、課金体系が違うので単純比較はできません。

サービス 内容
Amazon Foracast データの量・トレーニング実行時間・予測のリクエストの量による課金
Amazon SageMaker 主にインスタンスタイプの稼働時間による課金

aws.amazon.com aws.amazon.com

さてForecastは使った分だけといった感じで、サーバーレスサービス的な課金体系です。SageMakerはインスタンスタイプとその実行時間による課金が発生します(もちろんその他もある)。ンスタンスタイプやリクエスト量によって料金が変わってくるので、比較は難しいかも。。。

2-4. その他

サービス 内容
Amazon Foracast -
Amazon SageMaker 前述したとおり多機能

SageMakerは多機能ですが、初心者からすると使いこなせないかもしれません。。。

3. 結論

まあ、シンプルに使えるForecastから検討するのが無難でしょう。組織内にデータサイエンティストがいて、より多くの機能を使いたいとかならSageMakerをその次に考えればよいと思います。もちろんForecastとSageMaker 両方とも要件に合わない場合もあると思いますので、その時はECS/EKS/EC2で考えるとかでしょうか。