モデルをテストするために、Amazon SageMaker AI のローカルモードを使用したいです。
解決策
ローカルで SageMaker AI ノートブックインスタンスにモデルをデプロイすると、本番環境のエンドポイントにデプロイする前にモデルのテストを実施できます。
始める前に、モデルアーティファクトを書き留めておきます。モデルアーティファクトは、ローカルまたは Amazon Simple Storage Service (Amazon S3) に保存されるトレーニングジョブの出力です。
モデルをローカルモードでデプロイするには、次の手順を実行します。
-
Amazon SageMaker Python SDK をインストールします。
pip install sagemaker
-
SageMaker AI ノートブックインスタンスで次のコマンドを実行し、必要なライブラリをインポートします。
import boto3
import sagemaker
from sagemaker.local import LocalSession
-
モデルオブジェクトを作成するには、次のコマンドを実行します。
model = Model(
model_data='s3://your-bucket/path/to/model.tar.gz',
image_uri='your-container-image-uri',
role='your-sagemaker-role-arn',
sagemaker_session=sagemaker_session
)
注: 実際のものでそれぞれ、s3://your-bucket/path/path/to/model.tar.gz をモデルアーティファクトに、your-container-image-uri をフレームワークの Amazon Elastic Container Registry (Amazon ECR) イメージに置き換えます。さらに、your-sagemaker-role-arn を AWS Identity and Access Management (IAM) ロールに、sagemaker_session を現在のセッションに置き換えます。
-
ローカルでモデルをデプロイするには、次のコマンドを実行します。
predictor = model.deploy(initial_instance_count=1,instance_type='local')
注: カスタムモデルをデプロイする場合は、エントリポイントスクリプトを含めてください。このスクリプトでは、モデルが推論リクエストを読み込んで処理する方法を定義します。
-
デプロイ後、次のコマンドを実行して推論を行います。
result = predictor.predict(your_input_data)
print(result)
注: Amazon SageMaker Studio では、ドメインの DockerSettings で EnableDockerAccess パラメータを有効にする必要があります。次に、アプリケーションのオペレーティングシステム (OS) に Docker をインストールします。シェルスクリプトについては、GitHub のウェブサイトで amazon-sagemaker-local-mode を参照してください。詳細については、「ローカルモードの開始方法」を参照してください。
関連情報
ローカルモード (Amazon SageMaker Python SDK のウェブサイト)