추론 권장 사항 생성하기 - Amazon SageMaker

추론 권장 사항 생성하기

AWS SDK for Python (Boto3) 또는 AWS CLI(으)로 추론 권장 사항을 프로그래밍 방식으로 생성하거나, Studio Classic 또는 SageMaker 콘솔로 대화형 방식으로 생성할 수 있습니다. 추론 권장 사항의 작업 이름, AWS IAM 역할 ARN, 입력 구성, 모델 패키지 ARN을 지정하거나(모델 레지스트리에 모델 등록 시), 모델 이름과 ContainerConfig 사전을 지정합니다(필수 조건 섹션에서 모델 생성 시).

AWS SDK for Python (Boto3)

CreateInferenceRecommendationsJob API로 추론 권장 작업을 시작합니다. 추론 권장 작업 시 JobType 필드를 'Default'(으)로 설정합니다. 또한 다음을 입력합니다.

  • Inference Recommender가 사용자를 대신하여 작업을 수행할 수 있게 지원하는 IAM 역할의 Amazon 리소스 이름(ARN). RoleArn 필드에 정의합니다.

  • 모델 패키지 ARN 또는 모델 이름 Inference Recommender는 하나의 모델 패키지 ARN 또는 모델 이름을 입력으로 지원합니다. 다음 중 하나를 지정하세요.

    • SageMaker 모델 레지스트리에 모델을 등록할 때 생성한 버전 지정 모델 패키지의 ARN. ModelPackageVersionArnInputConfig 필드에 정의합니다.

    • 생성한 모델의 이름. ModelNameInputConfig 필드에 정의합니다. 또한 모델 이름과 함께 입력해야 하는 필수 필드가 포함된 ContainerConfig 사전을 입력합니다. ContainerConfigInputConfig 필드에 정의합니다. ContainerConfig에서 선택적으로 SupportedEndpointType 필드를 RealTime 또는 Serverless(으)로 지정할 수도 있습니다. 이 필드를 지정하면 Inference Recommender는 해당 엔드포인트 유형에 대한 권장 사항만 반환합니다. 이 필드를 지정하지 않으면 Inference Recommender는 두 엔드포인트 유형 모두에 대한 권장 사항을 반환합니다.

  • JobName 필드에 대한 Inference Recommender 권장 작업 이름. AWS 리전과 사용자의 AWS 계정에 있는 Inference Recommender 작업 이름은 고유해야 합니다.

AWS SDK for Python (Boto3) 패키지를 가져오고 클라이언트 클래스를 사용하여 SageMaker 클라이언트 객체를 생성합니다. 필수 조건 섹션의 단계를 따랐다면 다음 중 하나만 지정합니다.

  • 옵션 1: 모델 패키지 ARN으로 추론 권장 작업을 생성하려면, 모델 패키지 그룹 ARN을 model_package_arn 변수에 저장합니다.

  • 옵션 2: 모델 이름과 ContainerConfig을(를) 사용하여 추론 권장 작업을 생성하려면, 모델 이름을 model_name 변수에 저장하고 ContainerConfig 사전을 container_config 변수에 저장합니다.

# Create a low-level SageMaker service client. import boto3 aws_region = '<INSERT>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide only one of model package ARN or model name, not both. # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<INSERT>' ## Uncomment if you would like to create an inference recommendations job with a ## model name instead of a model package ARN, and comment out model_package_arn above ## Provide your model name # model_name = '<INSERT>' ## Provide your container config # container_config = '<INSERT>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<INSERT>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = 'arn:aws:iam::<account>:role/*' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, # Provide only one of model package ARN or model name, not both. # If you would like to create an inference recommendations job with a model name, # uncomment ModelName and ContainerConfig, and comment out ModelPackageVersionArn. InputConfig = { 'ModelPackageVersionArn': model_package_arn # 'ModelName': model_name, # 'ContainerConfig': container_config } )

Amazon SageMaker API 참조 안내서에서 CreateInferenceRecommendationsJob에 전달할 수 있는 선택 및 필수 인수 전체 목록을 확인하세요.

AWS CLI

create-inference-recommendations-job API로 추론 권장 작업을 시작합니다. 추론 권장 작업 시 job-type 필드를 'Default'(으)로 설정합니다. 또한 다음을 입력합니다.

  • Amazon SageMaker Inference Recommender가 사용자를 대신하여 작업을 수행할 수 있게 지원하는 IAM 역할의 Amazon 리소스 이름(ARN). role-arn 필드에 정의합니다.

  • 모델 패키지 ARN 또는 모델 이름 Inference Recommender는 하나의 모델 패키지 ARN 또는 모델 이름을 입력으로 지원합니다. 다음 중 하나를 지정하세요.

    • 모델 레지스트리에 모델을 등록할 때 생성한 버전 지정 모델 패키지의 ARN. ModelPackageVersionArninput-config 필드에 정의합니다.

    • 생성한 모델의 이름. ModelNameinput-config 필드에 정의합니다. 또한 모델 이름과 함께 입력해야 하는 필수 필드가 포함된 ContainerConfig 사전을 입력합니다. ContainerConfiginput-config 필드에 정의합니다. ContainerConfig에서 선택적으로 SupportedEndpointType 필드를 RealTime 또는 Serverless(으)로 지정할 수도 있습니다. 이 필드를 지정하면 Inference Recommender는 해당 엔드포인트 유형에 대한 권장 사항만 반환합니다. 이 필드를 지정하지 않으면 Inference Recommender는 두 엔드포인트 유형 모두에 대한 권장 사항을 반환합니다.

  • job-name 필드에 대한 Inference Recommender 권장 작업 이름. AWS 리전과 사용자의 AWS 계정에 있는 Inference Recommender 작업 이름은 고유해야 합니다.

모델 패키지 ARN으로 추론 권장 작업을 생성하려면, 다음 예제를 적용합니다.

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", }"

모델 이름과 ContainerConfig(으)로 추론 권장 작업을 생성하려면, 다음 예제를 적용합니다. 이 예제에서는 SupportedEndpointType 필드를 사용하여 실시간 추론 권장 사항만 반환하도록 지정합니다.

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelName\": \"model-name\", \"ContainerConfig\" : { \"Domain\": \"COMPUTER_VISION\", \"Framework\": \"PYTORCH\", \"FrameworkVersion\": \"1.7.1\", \"NearestModelName\": \"resnet18\", \"PayloadConfig\": { \"SamplePayloadUrl\": \"s3://{bucket}/{payload_s3_key}\", \"SupportedContentTypes\": [\"image/jpeg\"] }, \"SupportedEndpointType\": \"RealTime\", \"DataInputConfig\": \"[[1,3,256,256]]\", \"Task\": \"IMAGE_CLASSIFICATION\", }, }"
Amazon SageMaker Studio Classic

Studio Classic에서 추론 권장 작업을 생성합니다.

  1. Studio Classic 애플리케이션에서 홈 아이콘( Black square icon representing a placeholder or empty image. )을 선택합니다.

  2. Studio Classic 왼쪽 사이드바에서 모델을 선택합니다.

  3. 드롭다운 목록에서 모델 레지스트리를 선택하면 모델 레지스트리에 등록한 모델이 표시됩니다.

    왼쪽 패널에는 모델 그룹 목록이 표시됩니다. 목록에는 Studio Classic 외부에서 등록된 모델을 포함하여 계정의 모델 레지스트리에 등록된 모든 모델 그룹이 포함됩니다.

  4. 모델 그룹의 이름을 선택합니다. 모델 그룹을 선택하면 Studio Classic 오른쪽 창에 버전, 설정 등의 열 제목이 표시됩니다.

    모델 그룹에 모델 패키지가 하나 이상 있는 경우, 버전 열에 모델 패키지 목록이 표시됩니다.

  5. Inference Recommender 열을 선택합니다.

  6. Inference Recommender에게 AWS 서비스 액세스 권한을 부여하는 IAM 역할을 선택합니다. 역할을 생성하고 AmazonSageMakerFullAccess IAM 관리형 정책을 연결하여 수행할 수 있습니다. 또는 Studio Classic이 대신 역할을 생성하도록 할 수도 있습니다.

  7. 추천 받기를 선택합니다.

    추론 권장 사항은 최대 45분이 걸릴 수 있습니다.

    주의

    이 탭을 닫지 마세요. 탭을 닫으면 인스턴스 권장 작업이 취소됩니다.

SageMaker console

SageMaker 콘솔을 통해 인스턴스 권장 작업을 생성하는 방법은 다음과 같습니다.

  1. https://console.aws.amazon.com/sagemaker/에서 SageMaker 콘솔로 이동합니다.

  2. 왼쪽 탐색 창에서 추론(Inference)을 선택한 다음 Inference Recommender를 선택합니다.

  3. Inference Recommender 작업(Inference recommender jobs) 페이지에서 작업 생성(Create job)을 선택합니다.

  4. 1단계: 모델 구성에서 다음을 수행합니다.

    1. 작업 유형(Job type)으로 기본 Recommender 작업(Default recommender job)을 선택합니다.

    2. SageMaker 모델 레지스트리에 등록된 모델을 사용하는 경우, 모델 레지스트리에서 모델 선택(Choose a model from the model registry) 전환을 켜고 다음을 수행합니다.

      1. 모델 그룹(Model group) 드롭다운 목록에서 모델이 위치한 SageMaker 모델 레지스트리의 모델 그룹을 선택합니다.

      2. 모델 버전(Model version) 드롭다운 목록에서 원하는 모델 버전을 선택합니다.

    3. SageMaker에서 생성한 모델을 사용하는 경우, 모델 레지스트리에서 모델 선택 전환(Choose a model from the model registry toggle)을 끄고 다음을 수행합니다.

      1. 모델 이름(Model name) 필드에 SageMaker 모델의 이름을 입력합니다.

    4. IAM 역할(IAM role) 드롭다운 목록에서 인스턴스 권장 작업 생성 시 필요한 권한이 있는 기존 AWS IAM 역할을 선택할 수 있습니다. 기존 역할이 없는 경우에는 새 역할 생성(Create a new role)을 선택하여 역할 생성 팝업을 열 수 있습니다. 그러면 SageMaker가 생성한 새 역할에 필요한 권한을 추가합니다.

    5. 페이로드 벤치마킹용 S3 버킷(S3 bucket for benchmarking payload)에 샘플 페이로드 아카이브의 Amazon S3 경로를 입력합니다. 이 경로에는 Inference Recommender가 다양한 인스턴스 유형에서 모델을 벤치마크할 때 사용하는 샘플 페이로드 파일이 포함되어야 합니다.

    6. 페이로드 콘텐츠 유형(Payload content type)에 샘플 페이로드 데이터의 MIME 유형을 입력합니다.

    7. (선택 사항) 모델 레지스트리에서 모델 선택 전환(Choose a model from the model registry toggle)을 끄고 SageMaker 모델을 지정한 경우, 컨테이너 구성(Container configuration)에서 다음을 수행합니다.

      1. 도메인(Domain) 드롭다운 목록에서 컴퓨터 비전, 자연어 처리, 기계 학습 등 모델의 기계 학습 도메인을 선택합니다.

      2. 프레임워크(Framework) 드롭다운 목록에서 TensorFlow, XGBoost 등 컨테이너의 프레임워크를 선택합니다.

      3. 프레임워크 버전(Framework version)에 컨테이너 이미지의 프레임워크 버전을 입력합니다.

      4. 가장 가까운 모델 이름(Nearest model name) 드롭다운 목록에서 사용자 모델과 가장 가깝게 일치하는 사전 훈련된 모델을 선택합니다.

      5. 태스크(Task) 드롭다운 목록에서 모델이 수행하는 기계 학습 태스크(예: 이미지 분류, 회귀)를 선택합니다.

    8. (선택 사항) SageMaker Neo를 사용한 모델 컴파일(Model compilation using SageMaker Neo)에서 SageMaker Neo로 컴파일한 모델에 대한 권장 작업을 구성할 수 있습니다. 데이터 입력 구성(Data input configuration){'input':[1,1024,1024,3]}와(과) 비슷한 형식으로 모델에 맞는 정확한 입력 데이터 형상을 입력합니다.

    9. Next(다음)를 선택합니다.

  5. 2단계: 인스턴스 및 환경 파라미터에서 다음을 수행합니다.

    1. (선택 사항) 벤치마킹할 인스턴스 선택(Select instances for benchmarking)에서 벤치마킹할 인스턴스 유형을 최대 8개까지 선택할 수 있습니다. 인스턴스를 선택하지 않으면 Inference Recommender는 모든 인스턴스 유형을 고려합니다.

    2. Next(다음)를 선택합니다.

  6. 3단계: 작업 파라미터에서 다음을 수행합니다.

    1. (선택 사항) 작업 이름(Job name) 필드에 인스턴스 권장 작업의 이름을 입력합니다. 작업 생성 시 SageMaker는 이 이름 끝에 타임스탬프를 추가합니다.

    2. (선택 사항) 작업 설명(Job description) 필드에 작업에 대한 설명을 입력합니다.

    3. (선택 사항) 암호화 키(Encryption key) 드롭다운 목록에서 이름을 기준으로 AWS KMS 키를 선택하거나 ARN을 입력하여 데이터를 암호화합니다.

    4. (선택 사항) 최장 테스트 지속 시간(Max test duration (s))에 개별 테스트를 실행할 최장 시간(초)을 입력합니다.

    5. (선택 사항) 분당 최대 간접 호출(Max invocations per minute)에 엔드포인트가 권장 작업을 중단하기 전에 도달할 수 있는 분당 최대 요청 수를 입력합니다. 이 한도에 도달하면 SageMaker는 작업을 종료합니다.

    6. (선택 사항) P99 모델 지연 시간 임계값(ms)(P99 Model latency threshold (ms))에 모델 지연 시간 백분위수를 밀리초 단위로 입력합니다.

    7. Next(다음)를 선택합니다.

  7. 4단계: 작업 검토에서 구성 검토 후 제출(Submit)을 선택합니다.