Amazon SageMaker でホストされるエンドポイントで EI を使用する - Amazon SageMaker

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

Amazon SageMaker でホストされるエンドポイントで EI を使用する

Amazon SageMaker で Elastic Inference (EI) をホストされるエンドポイントとともに使用してリアルタイムに推論を行うには、そのエンドポイントでホストされるデプロイ可能なモデルを作成するときに EI アクセラレーターを指定します。これには以下の 2 つの方法があります。

  • の使用Amazon SageMaker Python SDKバージョンの TensorFlow、MXNet、PyTorch のいずれかのバージョンと、TensorFlow、MXNet、PyTorch 用の SageMaker の事前構築済みコンテナの

  • 独自のコンテナを構築し、低レベルの SageMaker API (Boto 3) を使用します。提供された Amazon S3 の場所から TensorFlow、MXNet、PyTorch のいずれかの EI 対応バージョンをコンテナにインポートし、それらのバージョンの 1 つを使用してトレーニングスクリプトを作成する必要があります。

  • イメージ分類アルゴリズム または オブジェクト検出アルゴリズム のいずれかの組み込みアルゴリズムを使用し、AWS SDK for Python (Boto3) を使用してトレーニングジョブを実行し、デプロイ可能なモデルとホストされるエンドポイントを作成します。

SageMaker TensorFlow コンテナとともに EI を使用する

SageMakerでEIでTensorFlow を使用するには、deployメソッドのいずれかの推定器またはモデルオブジェクト。その後、accelerator_type 入力引数を使用してアクセラレータータイプを指定します。SageMaker Python SDK で TensorFlow を使用する方法については、以下を参照してください。https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/index.html

SageMaker は、ユーザーのためにデフォルトのモデルトレーニングと推論コードを提供します。カスタムファイル形式の場合は、カスタムモデルトレーニングと推論コードを実装する必要があります。

推定器オブジェクトを使用する

EI とともに推定器オブジェクトを使用するには、deploy メソッドを使用するときに accelerator_type 入力引数を含めます。推定器は予測子オブジェクトを返します。コード例に示しているように、その deploy メソッドを呼び出します。

# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

モデルオブジェクトを使用する

EI とともにモデルオブジェクトを使用するには、deploy メソッドを使用するときに accelerator_type 入力引数を含めます。推定器は予測子オブジェクトを返します。コード例に示しているように、その deploy メソッドを呼び出します。

# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

SageMaker MXNet コンテナとともに EI を使用する

SageMaker で EI で MXNet を使用するには、deployメソッドのいずれかの推定器またはモデルオブジェクト。次に、accelerator_type 入力引数を使用してアクセラレータータイプを指定します。の MXNet の使用については、Amazon SageMaker Python SDK「」を参照してください。https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/index.html

SageMaker は、ユーザーのためにデフォルトのモデルトレーニングと推論コードを提供します。カスタムファイル形式の場合は、カスタムモデルトレーニングと推論コードを書き込む必要があります。

推定器オブジェクトを使用する

EI とともに推定器オブジェクトを使用するには、deploy メソッドを使用するときに accelerator_type 入力引数を含めます。推定器は予測子オブジェクトを返します。コード例に示しているように、その deploy メソッドを呼び出します。

# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

モデルオブジェクトを使用する

EI とともにモデルオブジェクトを使用するには、deploy メソッドを使用するときに accelerator_type 入力引数を含めます。推定器は予測子オブジェクトを返します。コード例に示しているように、その deploy メソッドを呼び出します。

# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

SageMaker で MXNet とともに EI を使用する完全な例については、のサンプルノートブックを参照してください。https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/mxnet_mnist/mxnet_mnist_elastic_inference.ipynb

SageMaker PyTorch コンテナとともに EI を使用する

SageMakerでEIでPyTorchを使用するには、deployメソッドのいずれかの推定器またはモデルオブジェクト。次に、accelerator_type 入力引数を使用してアクセラレータータイプを指定します。でPyTorch を使用する方法の詳細については、Amazon SageMaker Python SDK「」を参照してください。SageMaker PyTorch Estimators およびモデル

SageMaker は、ユーザーのためにデフォルトのモデルトレーニングと推論コードを提供します。カスタムファイル形式の場合は、カスタムモデルトレーニングと推論コードを書き込む必要があります。

推定器オブジェクトを使用する

EI とともに推定器オブジェクトを使用するには、deploy メソッドを使用するときに accelerator_type 入力引数を含めます。推定器は予測子オブジェクトを返します。コード例に示しているように、その deploy メソッドを呼び出します。

# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

モデルオブジェクトを使用する

EI とともにモデルオブジェクトを使用するには、deploy メソッドを使用するときに accelerator_type 入力引数を含めます。モデルは予測子オブジェクトを返します。コード例に示しているように、その deploy メソッドを呼び出します。

# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

独自のコンテナとともに EI を使用する

自分で作成したカスタムコンテナのモデルとともに EI を使用するには、低レベルの AWS SDK for Python (Boto 3) を使用します。TensorFlow、Apache MXNet、PyTorch 機械学習フレームワークの AWS EI 対応バージョンをダウンロードしてインポートし、それらのフレームワークを使用してトレーニングスクリプトを書き込みます。

Docker コンテナに TensorFlow、MXNet、PyTorch の EI バージョンをインポートする

独自のコンテナで EI を使用するには、Amazon EI TensorFlow Serving ライブラリ、Amazon EI Apache MXNet ライブラリ、Elastic Inference 対応の PyTorch ライブラリをコンテナにインポートする必要があります。TensorFlow および MXNet の EI 対応バージョンは現在、Amazon S3 の場所に保存されているバイナリファイルとして入手できます。TensorFlow の EI 対応バイナリは、Amazon S3 バケット (console.aws.amazonei-com/s3/buckets/amazonei-tensorflow。TensorFlow の EI 対応バージョンを使用するコンテナの構築については、「https://github.com/aws/sagemaker-tensorflow-container#building-the-sagemaker-elastic-inference-tensorflow-serving-container」を参照してください。Apache MXNet の EI 対応バイナリは、パブリック Amazon S3 バケット (console.aws.amazonei-apachemxnet。MXNet の EI 対応バージョンを使用するコンテナの構築については、「https://github.com/aws/sagemaker-mxnet-container#building-the-sagemaker-elastic-inference-mxnet-container」を参照してください。PyTorch の Elastic Inference 対応バイナリは、パブリック Amazon S3 バケット (console.aws.amazonei-pytorch。Elastic Inference 対応バージョンの PyTorch を使用するコンテナの構築については、「イメージの構築」を参照してください。

で EI エンドポイントを作成するAWSPython の SDK (Boto3)

AWS SDK for Python (Boto 3) を使用してエンドポイントを作成するには、まずエンドポイント設定を作成します。エンドポイント設定では、エンドポイントでホストする 1 つ以上のモデル (本番稼働用バリアントと呼ばれる) を指定します。エンドポイントでホストされている本番稼働用バリアントの 1 つ以上に EI をアタッチするには、その ProductionVariantAcceleratorType フィールドとして EI インスタンスタイプの 1 つを指定します。その後、エンドポイントを作成する際にそのエンドポイント設定を渡します。

エンドポイント設定を作成する

EI を使用するには、エンドポイント設定でアクセラレータータイプを指定する必要があります。

# Create Endpoint Configuration from time import gmtime, strftime endpoint_config_name = 'ImageClassificationEndpointConfig-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print(endpoint_config_name) create_endpoint_config_response = sagemaker.create_endpoint_config( EndpointConfigName = endpoint_config_name, ProductionVariants=[{ 'InstanceType':'ml.m4.xlarge', 'InitialInstanceCount':1, 'ModelName':model_name, 'VariantName':'AllTraffic', 'AcceleratorType':'ml.eia2.medium'}]) print("Endpoint Config Arn: " + create_endpoint_config_response['EndpointConfigArn'])

エンドポイントの作成

アクセラレータータイプを使用してエンドポイント設定を作成したら、エンドポイントを作成することができます。

endpoint_name = 'ImageClassificationEndpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) endpoint_response = sagemaker.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name)

エンドポイントを作成したら、他のエンドポイントと同様に、Boto3 ランタイムオブジェクトの invoke_endpoint メソッドを使用してそのエンドポイントを呼び出すことができます。