翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
推論ワークロードを x86 から Graviton AWS に移行する
AWS Graviton
ARM 互換コンテナイメージまたはマルチアーキテクチャコンテナイメージを使用することで、既存の推論ワークロードを x86 ベースのインスタンスから Graviton ベースのインスタンスに移行できます。このガイドでは、AWS
Deep Learning コンテナイメージ
大まかに説明すると、x86 ベースのインスタンスから Graviton ベースのインスタンスへの推論ワークロードの移行は、次の 4 つのステップから成ります。
マネージドコンテナレジストリである Amazon Elastic Container Registry (Amazon ECR) に AWS コンテナイメージをプッシュします。
SageMaker AI モデルを作成します。
エンドポイント設定を作成する
エンドポイントを作成します。
このガイドの以下のセクションでは、上記の手順に関する詳細について説明します。コード例の user placeholder text
を独自の情報に置き換えてください。
コンテナイメージを Amazon ECR にプッシュする
コンテナイメージは、 を使用して Amazon ECR にプッシュできます AWS CLI。ARM 互換イメージを使用する場合は、そのイメージが ARM アーキテクチャをサポートしていることを確認してください。
docker inspect
deep-learning-container-uri
応答 "Architecture": "arm64"
は、そのイメージが ARM アーキテクチャをサポートしていることを示しています。docker push
コマンドを使用してイメージを Amazon ECR にプッシュできます。詳細については、「Docker イメージをプッシュする」を参照してください。
マルチアーキテクチャコンテナイメージは基本的に、異なるアーキテクチャやオペレーティングシステムをサポートするコンテナイメージのセットで、共通のマニフェスト名で参照できます。マルチアーキテクチャコンテナイメージを使用する場合は、イメージを Amazon ECR にプッシュするだけでなく、マニフェストリストも Amazon ECR にプッシュする必要があります。マニフェストリストを使用すると、他のイメージマニフェストを入れ子構造で包含できます。マニフェストに含まれる各イメージは、アーキテクチャ、オペレーティングシステム、その他のプラットフォーム属性によって指定されます。次の例では、マニフェストリストを作成して Amazon ECR にプッシュします。
-
マニフェストファイルを作成します。
docker manifest create
aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository
\aws-account-id
.dkr.ecr.aws-account-id
.amazonaws.com/my-repository:amd64
\aws-account-id
.dkr.ecr.aws-account-id
.amazonaws.com/my-repository:arm64
\ -
イメージとアーキテクチャの組み合わせを特定できるようにマニフェストリストに注釈を付けます。
docker manifest annotate --arch arm64
aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository
\aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository:arm64
-
マニフェストをプッシュします。
docker manifest push
aws-account-id
.dkr.ecr.aws-region
.amazonaws.com/my-repository
マニフェストリストを作成して Amazon ECR にプッシュする方法の詳細については、「Amazon ECR のマルチアーキテクチャコンテナイメージの紹介
SageMaker AI モデルを作成する
CreateModel
API を呼び出して SageMaker AI モデルを作成します。
import boto3 from sagemaker import get_execution_role aws_region = "
aws-region
" sagemaker_client = boto3.client("sagemaker", region_name=aws_region) role = get_execution_role() sagemaker_client.create_model( ModelName = "model-name
", PrimaryContainer = { "Image": "deep-learning-container-uri
", "ModelDataUrl": "model-s3-location
", "Environment": { "SAGEMAKER_PROGRAM": "inference.py
", "SAGEMAKER_SUBMIT_DIRECTORY": "inference-script-s3-location
", "SAGEMAKER_CONTAINER_LOG_LEVEL": "20", "SAGEMAKER_REGION": aws_region, } }, ExecutionRoleArn = role )
エンドポイント設定の作成
CreateEndpointConfig
API を呼び出してエンドポイント設定を作成します。Graviton ベースのインスタンスのリストについては、「コンピュート最適化インスタンス」をご覧ください。
sagemaker_client.create_endpoint_config( EndpointConfigName = "
endpoint-config-name
", ProductionVariants = [ { "VariantName": "variant-name
", "ModelName": "model-name
", "InitialInstanceCount":1
, "InstanceType": "ml.c7g.xlarge
", # Graviton-based instance } ] )
エンドポイントを作成する
CreateEndpoint
API を呼び出してエンドポイントを作成します。
sagemaker_client.create_endpoint( EndpointName = "
endpoint-name
", EndpointConfigName = "endpoint-config-name
" )