x86에서 AWS Graviton으로 추론 워크로드 마이그레이션 - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

x86에서 AWS Graviton으로 추론 워크로드 마이그레이션

AWS Graviton은 에서 설계한 일련의 ARM기반 프로세서입니다 AWS. x86 기반 프로세서보다 에너지 효율이 높고 가격 대비 성능이 뛰어납니다. Amazon SageMaker 은 추론 요구 사항에 맞게 이러한 고급 프로세서를 활용할 수 있도록 Graviton 기반 인스턴스를 제공합니다.

ARM 호환되는 컨테이너 이미지 또는 다중 아키텍처 컨테이너 이미지를 사용하여 x86 기반 인스턴스에서 Graviton 기반 인스턴스로 기존 추론 워크로드를 마이그레이션할 수 있습니다. 이 안내서에서는 AWS Deep Learning 컨테이너 이미지 또는 ARM 호환되는 자체 컨테이너 이미지를 사용하고 있다고 가정합니다. 자체 이미지 구축 방법은 이미지 구축하기에서 확인하세요.

x86 기반 인스턴스에서 Graviton 기반 인스턴스로 추론 워크로드를 마이그레이션하는 프로세스는 크게 4단계로 구성됩니다.

  1. 컨테이너 이미지를 AWS 관리형 컨테이너 레지스트리인 Amazon Elastic Container Registry(AmazonECR)로 푸시합니다.

  2. SageMaker 모델을 생성합니다.

  3. 엔드포인트 구성을 생성합니다.

  4. 엔드포인트를 생성합니다.

이 가이드의 다음 섹션서는 위 단계에 대한 자세한 내용이 있습니다. 교체 user placeholder text 코드 예제에서 사용자 정보를 입력합니다.

Amazon으로 컨테이너 이미지 푸시 ECR

ECR 를 사용하여 컨테이너 이미지를 Amazon에 푸시할 수 있습니다 AWS CLI. ARM 호환되는 이미지를 사용할 때 ARM 아키텍처를 지원하는지 확인합니다.

docker inspect deep-learning-container-uri

응답은 이미지가 ARM 아키텍처를 지원함을 "Architecture": "arm64" 나타냅니다. docker push 명령을 ECR 사용하여 Amazon에 푸시할 수 있습니다. 자세한 내용은 도커 이미지 푸시하기에서 확인하세요.

다중 아키텍처 컨테이너 이미지는 기본적으로 다양한 아키텍처 또는 운영 체제를 지원하는 컨테이너 이미지 세트이며, 이를 일반 매니페스트 이름으로 참조할 수 있습니다. 다중 아키텍처 컨테이너 이미지를 사용하는 경우 이미지를 Amazon 에 푸시하는 것 외에도 매니페스트 목록을 Amazon 에 푸시해야 ECR합니다ECR. 매니페스트 목록을 사용하면 다른 이미지 매니페스트를 중첩 포함할 수 있으며, 포함된 각 이미지는 아키텍처, 운영 체제 및 기타 플랫폼 속성에 따라 지정됩니다. 다음 예제에서는 매니페스트 목록을 생성하고 Amazon 에 푸시합니다ECR.

  1. 매니페스트 목록 생성

    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 \
  2. 어떤 이미지가 어떤 아키텍처에 사용되는지 정확하게 식별할 수 있도록 매니페스트 목록에 주석을 답니다.

    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
  3. 매니페스트를 푸시합니다.

    docker manifest push aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository

매니페스트 목록을 생성하고 Amazon 에 푸시하는 방법에 대한 자세한 내용은 Amazon 에 대한 다중 아키텍처 컨테이너 이미지 소개 ECR및 다중 아키텍처 이미지 푸시를 ECR참조하세요. https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-multi-architecture-image.html

SageMaker 모델 생성

를 호출하여 SageMaker 모델을 생성합니다CreateModelAPI.

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 )

엔드포인트 구성 생성

를 호출하여 엔드포인트 구성을 생성합니다CreateEndpointConfigAPI. 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 } ] )

엔드포인트 생성

를 호출하여 엔드포인트를 생성합니다CreateEndpointAPI.

sagemaker_client.create_endpoint( EndpointName = "endpoint-name", EndpointConfigName = "endpoint-config-name" )