Amazon Redshift 機械学習を使用するためのコスト - Amazon Redshift

Amazon Redshift 機械学習を使用するためのコスト

Amazon Redshift ML は予測に既存のクラスターリソースを使用するため、Amazon Redshift で追加料金が発生することを回避できます。モデルの作成または使用に対しては、追加の Amazon Redshift の料金は発生しません。予測は Redshift クラスター内でローカルに実行されるため、クラスターのサイズを変更する必要がない限り追加料金は発生しません。Amazon Redshift ML はモデルのトレーニングに Amazon SageMaker を使用します。これには追加費用がかかります。

Amazon Redshift クラスター内で実行される予測関数については、追加料金は発生しません。CREATE MODEL ステートメントは Amazon SageMaker を使用し、追加料金が発生します。コストは、トレーニングデータのセル数とともに増加します。セル数は、(トレーニングクエリまたはテーブルの時間) レコード数と列数の積です。たとえば、CREATE MODEL ステートメントの SELECT クエリが 10,000 レコードと 5 列を作成する場合、作成されるセルの数は 50,000 です。

場合によっては、CREATE MODEL の SELECT クエリによって生成されるトレーニングデータが、指定した MAX_CELLS 制限 (指定しなかった場合はデフォルトの 100 万) を超えことがあります。このような場合、CREATE MODEL はランダムに概算の MAX_CELLS (つまり、トレーニングデータセットからの「列数」レコード) を選択します。その後 CREATE MODEL は、このランダムに選択されたタプルを使用してトレーニングを実行します。ランダムなサンプリングの使用により、削減されたトレーニングデータセットにはバイアスが存在しないことが保証されます。したがって、MAX_CELLS を設定することで、トレーニングコストを制御できます。

CREATE MODEL ステートメントを使用する場合、MAX_CELLS オプションと MAX_RUNTIME オプションを使用して、コスト、時間、およびモデルに見込まれる精度を制御できます。

MAX_RUNTIME は、AUTO ON または OFF オプションを使用した場合に SageMaker でトレーニングにかかる最大時間を指定します。トレーニングジョブは、データセットのサイズに応じて、MAX_RUNTIME よりも早く完了することがよくあります。モデルのトレーニングが完了すると、Amazon Redshift はバックグラウンドで追加の作業を行い、クラスターにモデルをコンパイルしてインストールします。したがって、CREATE MODEL が完了するまで MAX_RUNTIME よりも時間がかかる場合があります。ただし、MAX_RUNTIME では、モデルをトレーニングするために SageMaker で使用される計算量と時間を制限します。モデルのステータスは、SHOW MODEL を使用していつでも確認できます。

AUTO ON で CREATE MODEL を実行すると、Amazon Redshift ML は SageMaker Autopilot を使用して、さまざまなモデル (または候補) を自動的かつインテリジェントに探索し、最適なモデルを見つけます。MAX_RUNTIME は、費やされる時間と計算の量を制限します。MAX_RUNTIME の設定が低すぎると、候補が 1 つでも探索するのに十分な時間がない可能性があります。「Autopilot の候補にモデルがありません」というエラーが表示された場合は、MAX_RUNTIME の値を大きくして CREATE MODEL を再実行してください。このパラメータの詳細については、Amazon SageMaker API リファレンスMaxAutoMLJobRuntimeInSeconds を参照してください。

AUTO OFF で CREATE MODEL を実行すると、MAX_RUNTIME は SageMaker でトレーニングジョブが実行される時間の制限に対応します。多くの場合、トレーニングジョブは、データセットのサイズや、MODEL_TYPE XGBOOST の num_rounds など、使用されるその他のパラメータに応じてより早く完了します。

また、CREATE MODEL を実行するときに小さな MAX_CELLS 値を指定することで、コストを管理したり、トレーニング時間を短縮したりすることもできます。セルはデータベースのエントリです。各行は、列の数と同じ数のセルに対応します。列は、固定幅でも可変幅でもかまいません。MAX_CELLS はセルの数を制限するため、モデルのトレーニングに使用するトレーニング例の数を制限します。デフォルトでは、MAX_CELLS は 100 万個のセルに設定されています。MAX_CELLS を減らすと、Amazon Redshift がエクスポートしてモデルをトレーニングするために SageMaker に送信する CREATE MODEL の SELECT クエリの結果から、行数が減ります。したがって、MAX_CELLS を減らすと、AUTO ON と AUTO OFF の両方でモデルをトレーニングするために使用されるデータセットのサイズが小さくなります。このアプローチは、モデルのトレーニングにかかるコストと時間を削減する場合に役に立ちます。特定のトレーニングジョブのトレーニングと請求時間に関する情報を表示するには、Amazon SageMaker で [トレーニングジョブ] を選択します。

MAX_RUNTIME と MAX_CELLS を増やすと、SageMaker がより多くの候補を探索できるようになるため、モデルの品質が向上することがよくあります。この手法を取ると、SageMaker は各候補をトレーニングするためにより多くの時間を消費でき、また、より多くのデータを使用してより良いモデルのトレーニングが行えるようになります。データセットの反復または探索を高速化したい場合は、MAX_RUNTIME および MAX_CELLS を小さくしてください。モデルの精度を向上させたい場合は、より高い MAX_RUNTIME および MAX_CELLS を使用してください。

さまざまなセル番号に関連するコストと無料トライアルの詳細については、Amazon Redshift の料金を参照してください。