Amazon Redshift 機械学習を使用するためのコスト
Amazon Redshift では、広範なデータエンジニアリングや機械学習の専門知識を必要とせずに、機械学習機能を活用してデータからインサイトを得ることができます。以下のセクションでは、Amazon Redshift ML の使用に関連するコストについて説明し、強力な機械学習統合を活用しながら、コストを計画し最適化する方法について説明します。
Amazon Redshift ML と SageMaker AI を使用するためのコスト
SageMaker AI を使用した Amazon Redshift ML では、既存のクラスターリソースを予測に使用するため、Amazon Redshift で別途料金が発生することはありません。モデルの作成または使用に対しては、追加の Amazon Redshift の料金は発生しません。予測は Redshift クラスター内でローカルに実行されるため、クラスターのサイズを変更する必要がない限り追加料金は発生しません。ただし、Amazon Redshift ML はモデルのトレーニングに Amazon SageMaker AI を使用するため、これには別途料金がかかります。
Amazon Redshift クラスター内で実行される予測関数については、追加料金は発生しません。CREATE MODEL ステートメントは Amazon SageMaker AI を使用するので、追加料金が発生します。コストは、トレーニングデータのセル数とともに増加します。セル数は、(トレーニングクエリまたはテーブルの時間) レコード数と列数の積です。たとえば、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 AI でのトレーニングにかかる最大時間を指定します。トレーニングジョブは、データセットのサイズに応じて、MAX_RUNTIME よりも早く完了することがよくあります。モデルのトレーニングが完了すると、Amazon Redshift はバックグラウンドで追加の作業を行い、クラスターにモデルをコンパイルしてインストールします。したがって、CREATE MODEL が完了するまで MAX_RUNTIME よりも時間がかかる場合があります。ただし、MAX_RUNTIME は、SageMaker AI がモデルのトレーニングに使用する計算量と時間を制限します。モデルのステータスは、SHOW MODEL を使用していつでも確認できます。
AUTO ON を指定して CREATE MODEL を実行すると、Amazon Redshift ML は SageMaker AI Autopilot を使用して、さまざまなモデル (または候補) を自動的かつインテリジェントに探索し、最適なモデルを見つけます。MAX_RUNTIME は、費やされる時間と計算の量を制限します。MAX_RUNTIME の設定が低すぎると、候補が 1 つでも探索するのに十分な時間がない可能性があります。「Autopilot の候補にモデルがありません」というエラーが表示された場合は、MAX_RUNTIME の値を大きくして CREATE MODEL を再実行してください。このパラメータの詳細については、「Amazon SageMaker API リファレンス」の「MaxAutoMLJobRuntimeInSeconds」を参照してください。
AUTO OFF を指定して CREATE MODEL を実行する場合は、MAX_RUNTIME では、SageMaker AI でのトレーニングジョブの実行時間を制限します。多くの場合、トレーニングジョブは、データセットのサイズや、MODEL_TYPE XGBOOST の num_rounds など、使用されるその他のパラメータに応じてより早く完了します。
また、CREATE MODEL を実行するときに小さな MAX_CELLS 値を指定することで、コストを管理したり、トレーニング時間を短縮したりすることもできます。セルはデータベースのエントリです。各行は、列の数と同じ数のセルに対応します。列は、固定幅でも可変幅でもかまいません。MAX_CELLS はセルの数を制限するため、モデルのトレーニングに使用するトレーニング例の数を制限します。デフォルトでは、MAX_CELLS は 100 万個のセルに設定されています。MAX_CELLS を減らすと、CREATE MODEL の SELECT クエリの結果の行数が減ります。これらの行を Amazon Redshift がエクスポートし、モデルのトレーニングのために SageMaker AI に送信します。したがって、MAX_CELLS を減らすと、AUTO ON と AUTO OFF の両方でモデルをトレーニングするために使用されるデータセットのサイズが小さくなります。このアプローチは、モデルのトレーニングにかかるコストと時間を削減する場合に役に立ちます。特定のトレーニングジョブのトレーニングと請求時間に関する情報を表示するには、Amazon SageMaker AI で [トレーニングジョブ] を選択します。
MAX_RUNTIME と MAX_CELLS を増やすと、SageMaker AI がより多くの候補を試せるため、たいていはモデルの品質が向上します。この場合、SageMaker AI が各候補モデルのトレーニングに費やす時間が増え、より多くのデータでトレーニングを行うので、質の高いモデルになります。データセットの反復または探索を高速化したい場合は、MAX_RUNTIME および MAX_CELLS を小さくしてください。モデルの精度を向上させたい場合は、より高い MAX_RUNTIME および MAX_CELLS を使用してください。
さまざまなセル番号に関連するコストと無料トライアルの詳細については、Amazon Redshift の料金
Amazon Bedrock で Amazon Redshift ML を使用するためのコスト
Amazon Bedrock で Amazon Redshift ML を使用すると、追加コストが発生します。詳細については、「Amazon Bedrock の料金体系