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

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

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

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

  • 、MXNet または PyTorch のいずれかの Amazon SageMaker Python SDK バージョンと、、MXNet TensorFlow、および の SageMaker ビルド済みコンテナを使用します。 TensorFlow PyTorch

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

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

コンテナで EI を使用する SageMaker TensorFlow

で EI TensorFlow で を使用するには SageMaker、推定器オブジェクトまたはモデルオブジェクトの deployメソッドを呼び出す必要があります。その後、accelerator_type 入力引数を使用してアクセラレータータイプを指定します。Python SDK TensorFlow で SageMaker を使用する方法については、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 を使用する

で EI で MXNet を使用するには SageMaker、推定器オブジェクトまたはモデルオブジェクトの deployメソッドを呼び出す必要があります。次に、accelerator_type 入力引数を使用してアクセラレータータイプを指定します。Amazon SageMaker Python SDK で MXNet を使用する方法については、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 PyTorch コンテナで EI を使用する

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

便宜上、 はデフォルトのモデルトレーニングと推論コード 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 対応バージョンをダウンロードしてインポートし、それらのフレームワークを使用してトレーニングスクリプトを記述します。

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

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

AWS SDK for Python (Boto 3) を使用して EI エンドポイントを作成する

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 メソッドを使用してそのエンドポイントを呼び出すことができます。