翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
推論ワークロードを x86 から に移行する AWS Graviton
AWS Graviton
ARM 互換性のあるコンテナイメージまたはマルチアーキテクチャコンテナイメージを使用して、既存の推論ワークロードを x86 ベースのインスタンスから Graviton ベースのインスタンスに移行できます。このガイドでは、 を使用していることを前提としています。 AWS
Deep Learning コンテナイメージ
大まかに説明すると、x86 ベースのインスタンスから Graviton ベースのインスタンスへの推論ワークロードの移行は、次の 4 つのステップから成ります。
コンテナイメージを Amazon Elastic Container Registry (Amazon ECR) にプッシュする AWS マネージドコンテナレジストリ。
SageMaker モデルを作成します。
エンドポイント設定を作成する
エンドポイントを作成します。
このガイドの以下のセクションでは、上記の手順に関する詳細について説明します。を置き換える user placeholder text
独自の情報を含むコード例の 。
コンテナイメージを Amazon にプッシュする ECR
コンテナイメージは、 ECRを使用して Amazon にプッシュできます。 AWS CLI。 ARM 互換性のあるイメージを使用する場合は、それがARMアーキテクチャをサポートしていることを確認します。
docker inspect
deep-learning-container-uri
レスポンスは、イメージがARMアーキテクチャをサポート"Architecture": "arm64"
していることを示します。docker push
コマンドECRを使用して Amazon にプッシュできます。詳細については、「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 モデルを作成する
を呼び出して SageMaker モデルを作成しますCreateModel
API。
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
" )