推論レコメンデーションを作成する - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

推論レコメンデーションを作成する

推論レコメンデーションは、AWS SDK for Python (Boto3) または AWS CLI を使用してプログラムで作成するか、Studio Classic または SageMaker AI コンソールを使用してインタラクティブに作成します。推論レコメンデーションのジョブ名、AWS IAM ロール ARN、入力構成、およびモデルをモデルレジストリに登録したときのモデル パッケージ ARN、または前提条件でモデルを作成したときのモデル名と ContainerConfig ディクショナリを指定します。

AWS SDK for Python (Boto3)

CreateInferenceRecommendationsJob API を使用して推論レコメンデーションジョブを開始します。推論レコメンデーションジョブの JobType フィールドを 'Default' に設定します。さらに、以下を指定します。

  • Inference Recommender がユーザーに代わってタスクを実行できるようにする IAM ロールの Amazon リソースネーム (ARN)。これを RoleArn フィールドで定義します。

  • モデルパッケージ ARN またはモデル名。Inference Recommender は、1 つのモデルパッケージ ARN またはモデル名を入力としてサポートします。次のいずれかを指定します。

    • モデルを SageMaker AI モデルレジストリに登録したときに作成したバージョン管理されたモデルパッケージの ARN。これを InputConfig フィールドの ModelPackageVersionArn で定義します。

    • 作成したモデルの名前。これを InputConfig フィールドの ModelName で定義します。モデル名で指定する必要がある必須フィールドを含む ContainerConfig ディクショナリも指定します。これを InputConfig フィールドの ContainerConfig で定義します。ContainerConfig では、オプションで SupportedEndpointType フィールドを RealTime または Serverless として指定することもできます。このフィールドを指定した場合は、Inference Recommender ではそのエンドポイントタイプについてのみ、レコメンデーションを返します。このフィールドを指定しない場合は、Inference Recommender では両方のエンドポイントタイプについて、レコメンデーションを返します。

  • JobName フィールドの Inference Recommender レコメンデーションジョブの名前。Inference Recommender のジョブ名は、AWS リージョンと AWS アカウント内で一意である必要があります。

AWS SDK for Python (Boto3) パッケージをインポートし、クライアントクラスを使用して SageMaker AI クライアントオブジェクトを作成します。「前提条件」セクションの手順に従った場合、次のうちの 1 つだけを指定してください。

  • オプション 1: モデルパッケージ ARN を使用して推論レコメンデーションジョブを作成する場合は、モデルパッケージグループ ARN を model_package_arn という名前の変数に保存します。

  • オプション 2: モデル名と ContainerConfig を使用して推論レコメンデーションジョブを作成し、モデル名を model_name という名前の変数に保存して、ContainerConfig ディクショナリを container_config という名前の変数に格納します。

# Create a low-level SageMaker service client. import boto3 aws_region = '<INSERT>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide only one of model package ARN or model name, not both. # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<INSERT>' ## Uncomment if you would like to create an inference recommendations job with a ## model name instead of a model package ARN, and comment out model_package_arn above ## Provide your model name # model_name = '<INSERT>' ## Provide your container config # container_config = '<INSERT>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<INSERT>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = 'arn:aws:iam::<account>:role/*' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, # Provide only one of model package ARN or model name, not both. # If you would like to create an inference recommendations job with a model name, # uncomment ModelName and ContainerConfig, and comment out ModelPackageVersionArn. InputConfig = { 'ModelPackageVersionArn': model_package_arn # 'ModelName': model_name, # 'ContainerConfig': container_config } )

CreateInferenceRecommendationsJob に渡すことができるオプションの引数と必須の引数の完全なリストについては、Amazon SageMaker API リファレンスガイドを参照してください。

AWS CLI

create-inference-recommendations-job API を使用して推論レコメンデーションジョブを開始します。推論レコメンデーションジョブの job-type フィールドを 'Default' に設定します。さらに、以下を指定します。

  • Amazon SageMaker Inference Recommender がユーザーに代わってタスクを実行できるようにする IAM ロールの Amazon リソースネーム (ARN)。これを role-arn フィールドで定義します。

  • モデルパッケージ ARN またはモデル名。Inference Recommender は、1 つのモデルパッケージ ARN またはモデル名を入力としてサポートします。次のいずれかを指定します。

    • モデルをモデルレジストリに登録したときに作成したバージョン管理されたモデルパッケージの ARN。これを input-config フィールドの ModelPackageVersionArn で定義します。

    • 作成したモデルの名前。これを input-config フィールドの ModelName で定義します。モデル名で指定する必要がある必須フィールドを含む ContainerConfig ディクショナリも指定します。これを input-config フィールドの ContainerConfig で定義します。ContainerConfig では、オプションで SupportedEndpointType フィールドを RealTime または Serverless として指定することもできます。このフィールドを指定した場合は、Inference Recommender ではそのエンドポイントタイプについてのみ、レコメンデーションを返します。このフィールドを指定しない場合は、Inference Recommender では両方のエンドポイントタイプについて、レコメンデーションを返します。

  • job-name フィールドの Inference Recommender レコメンデーションジョブの名前。Inference Recommender のジョブ名は、AWS リージョンと AWS アカウント内で一意である必要があります。

モデルパッケージ ARN を使用して推論レコメンデーションジョブを作成するには、次の例を使用します。

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", }"

モデル名と ContainerConfig を使用して推論レコメンデーションジョブを作成するには、次の例を使用します。この例では、SupportedEndpointType フィールドを使用して、リアルタイムの推論レコメンデーションのみを返すように指定しています。

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelName\": \"model-name\", \"ContainerConfig\" : { \"Domain\": \"COMPUTER_VISION\", \"Framework\": \"PYTORCH\", \"FrameworkVersion\": \"1.7.1\", \"NearestModelName\": \"resnet18\", \"PayloadConfig\": { \"SamplePayloadUrl\": \"s3://{bucket}/{payload_s3_key}\", \"SupportedContentTypes\": [\"image/jpeg\"] }, \"SupportedEndpointType\": \"RealTime\", \"DataInputConfig\": \"[[1,3,256,256]]\", \"Task\": \"IMAGE_CLASSIFICATION\", }, }"
Amazon SageMaker Studio Classic

Studio Classic で推論レコメンデーションジョブを作成します。

  1. Studio Classic アプリケーションで、ホームアイコン ( Black square icon representing a placeholder or empty image. ) を選択します。

  2. Studio Classic の左側のサイドバーで [モデル] を選択します。

  3. ドロップダウンリストから [モデルレジストリ] を選択し、モデルレジストリに登録したモデルを表示します。

    左側のパネルに、モデルグループのリストが表示されます。リストには、Studio Classic 以外で登録されたモデルを含む、アカウントのモデルレジストリに登録されているすべてのモデルグループが含まれます。

  4. モデルグループの名前を選択します。モデルグループを選択すると、Studio Classic の右ペインに、[バージョン][設定] などの列見出しが表示されます。

    モデルグループ内に 1 つ以上のモデルパッケージがある場合は、それらのモデルパッケージのリストが [バージョン] 列に表示されます。

  5. [Inference Recommender] 列を選択します。

  6. Inference Recommender に AWS サービスへのアクセスを許可する IAM ロールを選択します。これを行うには、ロールを作成し、AmazonSageMakerFullAccess IAM マネージドポリシーをアタッチします。または、Studio Classic にロールを作成させることもできます。

  7. [レコメンデーションの取得] を選択します。

    推論レコメンデーションには、最大 45 分かかることがあります。

    警告

    このタブを閉じないでください。このタブを閉じると、インスタンスのレコメンデーションジョブがキャンセルされます。

SageMaker AI console

次の手順を実行して、SageMaker AI コンソールからインスタンスレコメンデーションジョブを作成します。

  1. SageMaker AI コンソール (https://console.aws.amazon.com/sagemaker/) に移動します。

  2. 左側のナビゲーションペインで、[推論] を選択し、次に [推論レコメンダー] を選択します。

  3. [推論レコメンダージョブ] ページで [ジョブを作成] を選択します。

  4. [ステップ 1: モデル設定] で、以下の操作を行います。

    1. [ジョブタイプ] には、[デフォルトのレコメンデーションジョブ] を選択します。

    2. SageMaker AI モデルレジストリに登録されているモデルを使用する場合は、[モデルレジストリからモデルを選択] トグルをオンにして、以下の操作を行います。

      1. [モデルグループ] ドロップダウンリストから、モデルがある SageMaker AI モデルレジストリ内のモデルグループを選択します。

      2. [モデルバージョン] ドロップダウンリストから、目的のバージョンのモデルを選択します。

    3. SageMaker AI で作成したモデルを使用する場合は、[モデルレジストリからモデルを選択] トグルをオフにして、以下の操作を行います。

      1. [モデル名] フィールドには、SageMaker AI モデルの名前を入力します。

    4. [IAM ロール] ドロップダウンリストから、インスタンスレコメンデーションジョブの作成に必要な権限を持つ既存の AWS IAM ロールを選択します。または、既存のロールがない場合は、[新しいロールの作成] を選択してロール作成ポップアップを開くと、SageMaker AI によって作成した新しいロールに必要な権限が追加されます。

    5. [ペイロードをベンチマークするための S3 バケット] には、サンプルペイロードアーカイブへの Amazon S3 パスを入力します。これには、Inference Recommender がさまざまなインスタンスタイプでモデルをベンチマークするために使用するサンプルペイロードファイルが含まれている必要があります。

    6. [ペイロードコンテンツタイプ] には、サンプルペイロードデータの MIME タイプを入力します。

    7. (オプション) [モデルレジストリからモデルを選択] トグルをオフにし、SageMaker AI モデルを指定した場合は、[コンテナの設定] で以下の操作を行います。

      1. [ドメイン] ドロップダウンリストでは、コンピュータビジョン、自然言語処理、機械学習など、モデルの機械学習ドメインを選択します。

      2. [フレームワーク] ドロップダウンリストでは、TensorFlow や XGBoost など、コンテナのフレームワークを選択します。

      3. [フレームワークバージョン] には、コンテナイメージのフレームワークバージョンを入力します。

      4. [最も近いモデル名] ドロップダウンリストでは、自分のモデルと最もよく一致する事前トレーニング済みのモデルを選択します。

      5. [タスク] ドロップダウンリストでは、画像分類やリグレッションなど、モデルが実行する機械学習タスクを選択します。

    8. (オプション) [SageMaker Neo を使用したモデルコンパイル] では、SageMaker Neo を使用してコンパイルしたモデルのレコメンデーションジョブを設定できます。[データ入力設定] には、モデルに適した入力データ形状を {'input':[1,1024,1024,3]} のような形式で入力します。

    9. [次へ] を選択します。

  5. [ステップ 2: インスタンスと環境パラメータ] では、以下の操作を行います。

    1. (オプション) [ベンチマーキング用のインスタンスを選択] では、ベンチマークするインスタンスタイプを最大 8 個選択できます。いずれのインスタンスも選択しない場合、Inference Recommender はすべてのインスタンスタイプを考慮します。

    2. [次へ] を選択します。

  6. [ステップ 3: ジョブパラメータ] では、以下の操作を行います。

    1. (オプション) [ジョブ名] フィールドに、インスタンスレコメンデーションジョブの名前を入力します。ジョブを作成すると、SageMaker AI によってこの名前の末尾にタイムスタンプが追加されます。

    2. (オプション) [ジョブの説明] に、ジョブの説明を入力します。

    3. (オプション) [暗号化キー] ドロップダウンリストでは、AWS KMS キーを名前で選択するか、その ARN を入力してデータを暗号化します。

    4. (オプション) [最大テスト時間] には、各テストを実行する最大秒数を入力します。

    5. (オプション) [1 分あたりの最大呼び出し数] には、推奨ジョブを停止するまでにエンドポイントが到達できる 1 分あたりの最大リクエスト数を入力します。この制限に達すると、SageMaker AI はジョブを終了します。

    6. (オプション) [P99 モデルレイテンシーのしきい値] には、モデルレイテンシーのパーセンタイルをミリ秒単位で入力します。

    7. [次へ] を選択します。

  7. [ステップ 4: ジョブを確認] では、設定を確認して [送信] を選択します。