ゼファーネットのロゴ

Amazon Redshift ML を使用してモデルのバージョニングを実装する | アマゾン ウェブ サービス

日付:

Amazon Redshift ML データ アナリスト、開発者、データ サイエンティストは、SQL を使用して機械学習 (ML) モデルをトレーニングできます。 以前の投稿では、Redshift ML の自動モデル トレーニング機能を使用してトレーニングする方法を説明しました。 分類 および 回帰 モデル。 Redshift ML を使用すると、SQL を使用してモデルを作成し、XGBoost などのアルゴリズムを指定できます。 Redshift ML を使用すると、データの準備、前処理、問題の種類の選択を自動化できます (詳細については、「 Amazon Redshift ML で SQL を使用して、Amazon Redshift で機械学習モデルを作成、トレーニング、デプロイする)。 以前にトレーニングしたモデルを持ち込むこともできます アマゾンセージメーカーAmazonレッドシフト ローカル推論には Redshift ML を使用します。 SageMaker で作成されたモデルのローカル推論の場合、ML モデルタイプが Redshift ML でサポートされている必要があります。 しかし、 リモート推論 Redshift ML でネイティブに使用できないモデルタイプで使用できます。

時間の経過とともに、ML モデルは古くなり、たとえ劇的な変化が起こらなかったとしても、小さな変化が蓄積されます。 ML モデルの再トレーニングまたは監査が必要な一般的な理由は次のとおりです。

  • データドリフト – データは時間の経過とともに変化するため、ML モデルの予測精度はテスト中に示された精度と比較して低下し始める可能性があります
  • コンセプトドリフト – 当初使用されていた ML アルゴリズムは、さまざまなビジネス環境やその他のニーズの変化により変更する必要がある場合があります

場合によっては、モデルを定期的に更新し、プロセスを自動化し、モデルの精度の向上を再評価する必要があります。 この記事の執筆時点では、Amazon Redshift は ML モデルのバージョン管理をサポートしていません。 この投稿では、Redshift ML の Bring Your Own Model (BYOM) 機能を使用して Redshift ML モデルのバージョニングを実装する方法を示します。

ML モデルの運用化の一環として、ローカル推論を使用してモデルのバージョン管理を実装します。 データとユースケースに最も適した問題の種類を十分に理解しており、モデルを作成して運用環境にデプロイしていることを前提としています。

ソリューションの概要

この投稿では、Redshift ML を使用して、XNUMX 日の特定の時間にトロント市の自転車共有サービスを利用する可能性のある人の数を予測する回帰モデルを構築します。 モデルは休日や気象条件などのさまざまな側面を考慮しており、数値的な結果を予測する必要があるため、回帰モデルを使用しました。 モデルを再トレーニングする理由としてデータ ドリフトを使用し、ソリューションの一部としてモデルのバージョン管理を使用します。

モデルが検証され、予測の実行に定期的に使用されるようになったら、モデルのバージョンを作成できます。そのためには、更新されたトレーニング セットと、場合によっては異なるアルゴリズムを使用してモデルを再トレーニングする必要があります。 バージョニングには次の XNUMX つの主な目的があります。

  • トラブルシューティングや監査の目的で、モデルの以前のバージョンを参照できます。 これにより、新しいモデル バージョンに切り替える前に、モデルが高い精度を維持していることを確認できます。
  • 新しいバージョンのモデル トレーニング プロセス中に、モデルの現在のバージョンに対して推論クエリを引き続き実行できます。

この記事の執筆時点では、Redshift ML にはネイティブのバージョニング機能がありませんが、BYOM 機能を使用していくつかの簡単な SQL テクニックを実装することで、バージョニングを実現できます。 BYOM は、Amazon Redshift で推論クエリを実行するための事前トレーニングされた SageMaker モデルをサポートするために導入されました。 この投稿では、同じ BYOM 手法を使用して、Redshift ML を使用して構築された既存のモデルのバージョンを作成します。

次の図は、このワークフローを示しています。

次のセクションでは、既存のモデルからバージョンを作成し、モデルの再トレーニングを実行する方法を示します。

前提条件

この投稿の例を実装するための前提条件として、 Redshift クラスター or AmazonRedshiftサーバーレス 終点。 環境を開始して設定するための準備手順については、以下を参照してください。 Amazon Redshift ML で SQL を使用して、Amazon Redshift で機械学習モデルを作成、トレーニング、デプロイする.

この投稿で作成した回帰モデルを使用します Amazon Redshift ML で回帰モデルを構築する。 すでにデプロイされていると想定し、このモデルを使用して新しいバージョンを作成し、モデルを再トレーニングします。

既存のモデルからバージョンを作成する

最初のステップは、履歴が維持され、後でモデルを比較できるように、既存のモデルのバージョンを作成することです (これは、モデルの開発上の変更を保存することを意味します)。

次のコードは、CREATE MODEL コマンド構文の一般的な形式です。 次のステップでは、このコマンドを使用して新しいバージョンを作成するために必要な情報を取得します。

CREATE MODEL model_name FROM ('job_name' | 's3_path' ) FUNCTION function_name ( data_type [, ...] ) RETURNS data_type IAM_ROLE { default } [ SETTINGS ( S3_BUCKET 'bucket', | --required KMS_KEY_ID 'kms_string') --optional ];

次に、前述の CREATE MODEL コードの入力パラメーターを収集してモデルに適用します。 ジョブ名と、モデルの入力値と出力値のデータ型が必要です。 これらを収集するには、 show model 既存のモデルでコマンドを実行します。 Amazon Redshift Query Editor v2 で次のコマンドを実行します。

show model predict_rental_count;

の値に注意してください。 AutoMLジョブ名, 関数のパラメータ型、 そしてその 対象カラム (trip_count) モデル出力から。 これらの値を CREATE MODEL コマンドで使用してバージョンを作成します。

次の CREATE MODEL ステートメントは、データベースから収集した値を使用して現在のモデルのバージョンを作成します。 show model 指示。 この新しいバージョンがいつ作成されたかを追跡するために、モデル名と関数名の末尾に日付 (例の形式は YYYYMMDD) を追加します。

CREATE MODEL predict_rental_count_20230706 FROM 'redshiftml-20230706171639810624' FUNCTION predict_rental_count_20230706 (int4, int4, int4, int4, int4, int4, int4, numeric, numeric, int4)
RETURNS float8 IAM_ROLE default
SETTINGS (
S3_BUCKET '<<your S3 Bucket>>');

このコマンドは完了するまでに数分かかる場合があります。 完了したら、次のコマンドを実行します。

show model predict_rental_count_20230706;

出力では次のことがわかります。

  • AutoMLジョブ名 モデルの元のバージョンと同じです
  • 関数名 予想通り、新しい名前が表示されます
  • 推論タイプ ショー Local、これはローカル推論による BYOM であることを示します

両方のバージョンのモデルを使用して推論クエリを実行し、推論出力を検証できます。

次のスクリーンショットは、元のバージョンを使用したモデル推論の出力を示しています。

次のスクリーンショットは、バージョン コピーを使用したモデル推論の出力を示しています。

ご覧のとおり、推論出力は同じです。

これで、以前にトレーニングされた Redshift ML モデルのバージョンを作成する方法を学習しました。

Redshift ML モデルを再トレーニングする

既存のモデルのバージョンを作成した後、新しいモデルを作成するだけで、既存のモデルを再トレーニングできます。

同じ CREATE MODEL コマンドを使用して、必要に応じて異なる入力パラメーター、データセット、または問題タイプを使用して、新しいモデルを作成およびトレーニングできます。 この投稿では、新しいデータセットでモデルを再トレーニングします。 追記します _new 識別のために既存のモデルと類似するようにモデル名に付加されています。

次のコードでは、CREATE MODEL コマンドを使用して、 training_data テーブル:

CREATE MODEL predict_rental_count_new
FROM training_data
TARGET trip_count
FUNCTION predict_rental_count_new
IAM_ROLE 'arn:aws:iam::<accountid>:role/RedshiftML'
PROBLEM_TYPE regression
OBJECTIVE 'mse'
SETTINGS (s3_bucket 'redshiftml-<your-account-id>', s3_garbage_collect off, max_runtime 5000);

次のコマンドを実行して、新しいモデルのステータスを確認します。

show model predict_rental_count_new;

既存の Redshift ML モデルを再トレーニングされたモデルに置き換えます。

最後のステップは、既存のモデルを再トレーニングされたモデルに置き換えることです。 これを行うには、モデルの元のバージョンを削除し、BYOM 手法を使用してモデルを再作成します。

まず、再トレーニングされたモデルをチェックして、モデル トレーニングの実行間で MSE/RMSE スコアが安定していることを確認します。 モデルを検証するには、データセットに対して各モデル関数による推論を実行し、結果を比較します。 で提供される推論クエリを使用します。 Amazon Redshift ML で回帰モデルを構築する.

検証後、モデルを置き換えることができます。

詳細を収集することから始めます predict_rental_count_new モデル。

注意してください AutoMLジョブ名 値、 関数のパラメータ型 価値観と、 対象カラム モデル出力内の名前。

元のモデルを削除して元のモデルを置き換え、次に元のモデルと関数名でモデルを作成し、モデルと関数名への既存の参照が機能することを確認します。

drop model predict_rental_count;
CREATE MODEL predict_rental_count
FROM 'redshiftml-20230706171639810624' FUNCTION predict_rental_count(int4, int4, int4, int4, int4, int4, int4, numeric, numeric, int4)
RETURNS float8 IAM_ROLE default
SETTINGS (
S3_BUCKET ’<<your S3 Bucket>>’);

モデルの作成は数分で完了します。 次のコマンドを実行して、モデルのステータスを確認できます。

show model predict_rental_count;

モデルステータスが ready、新しいバージョン predict_rental_count 既存のモデルの推論と ML モデルの元のバージョンが利用可能です predict_rental_count_20230706 必要に応じて参照できます。

こちらをご参照ください GitHubリポジトリ モデルのバージョン管理を自動化するためのサンプル スクリプト。

まとめ

この投稿では、Redshift ML の BYOM 機能を使用してモデルのバージョニングを行う方法を説明しました。 これにより、モデルの履歴を保持できるため、モデルのスコアを経時的に比較したり、監査リクエストに応答したり、新しいモデルをトレーニングしながら推論を実行したりすることができます。

Redshift ML を使用したさまざまなモデルの構築の詳細については、以下を参照してください。 Amazon Redshift ML.


著者について

ロヒト・バンサル AWS の分析スペシャリスト ソリューション アーキテクトです。 彼は Amazon Redshift を専門とし、顧客と協力して、他の AWS Analytics サービスを使用して次世代の分析ソリューションを構築しています。

フィル・ベイツ AWS のシニア アナリティクス スペシャリスト ソリューション アーキテクトです。 大規模なデータ ウェアハウス ソリューションの実装に 25 年以上の経験があります。 彼は、お客様のクラウドへの移行を支援し、データ ウェアハウス内で ML の力を活用することに情熱を注いでいます。

スポット画像

最新のインテリジェンス

スポット画像