추론 권장 사항 가져오기 - 아마존 SageMaker

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

추론 권장 사항 가져오기

추론 권장 작업은 권장 인스턴스 유형이나 서버리스 엔드포인트에 대해 일련의 부하 테스트를 실행합니다. 추론 권장 작업은 모델 버전 등록 시 입력한 샘플 데이터를 사용한 부하 테스트를 기반으로 하는 성능 지표를 사용합니다.

참고

Inference Recommender 권장 작업을 생성하기 전에 사전 조건 충족 여부를 확인합니다.

다음은 Amazon SageMaker 추론 추천기를 사용하여 AWS SDK for Python (Boto3),, Amazon SageMaker Studio AWS CLI Classic과 콘솔을 사용하여 모델 유형을 기반으로 추론 권장 사항을 생성하는 방법을 보여줍니다. SageMaker

추론 권장 사항 생성하기

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

AWS SDK for Python (Boto3)

CreateInferenceRecommendationsJobAPI사용하여 추론 권장 작업을 시작할 수 있습니다. 추론 권장 작업 시 JobType 필드를 'Default'(으)로 설정합니다. 또한 다음을 입력합니다.

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

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

    • 모델 ARN 레지스트리에 모델을 등록할 때 만든 버전이 지정된 모델 패키지입니다. SageMaker ModelPackageVersionArnInputConfig 필드에 정의합니다.

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

  • JobName 필드에 대한 Inference Recommender 권장 작업 이름. 추론 추천자 작업 이름은 AWS 지역 및 계정 내에서 고유해야 합니다. AWS

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-jobAPI를 사용하여 추론 추천 작업을 시작하십시오. 추론 권장 작업 시 job-type 필드를 'Default'(으)로 설정합니다. 또한 다음을 입력합니다.

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

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

    • 모델 ARN 레지스트리에 모델을 등록할 때 만든 버전이 지정된 모델 패키지입니다. ModelPackageVersionArninput-config 필드에 정의합니다.

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

  • job-name 필드에 대한 Inference Recommender 권장 작업 이름. 추론 추천자 작업 이름은 AWS 지역 및 계정 내에서 고유해야 합니다. AWS

모델 패키지를 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. 드롭다운 목록에서 모델 레지스트리(Model Registry)를 선택하면 모델 레지스트리에 등록한 모델이 표시됩니다.

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

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

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

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

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

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

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

    주의

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

SageMaker console

다음과 같이 SageMaker 콘솔을 통해 인스턴스 추천 작업을 생성하십시오.

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

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

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

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

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

    2. 모델 레지스트리에 등록된 모델을 사용하는 경우 SageMaker 모델 레지스트리에서 모델 선택 토글을 켜고 다음을 수행하십시오.

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

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

    3. 에서 SageMaker 생성한 모델을 사용하는 경우 모델 레지스트리에서 모델 선택 토글을 끄고 다음을 수행하십시오.

      1. 모델 이름 필드에 SageMaker 모델 이름을 입력합니다.

    4. IAM역할 드롭다운 목록에서 인스턴스 추천 작업을 생성하는 데 필요한 권한이 있는 기존 AWS IAM 역할을 선택할 수 있습니다. 또는 기존 역할이 없는 경우 새 역할 생성을 선택하여 역할 생성 팝업을 열고 새로 생성하는 역할에 필요한 권한을 SageMaker 추가할 수 있습니다.

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

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

    7. (선택 사항) 모델 레지스트리에서 모델 선택 토글을 끄고 SageMaker 모델을 지정한 경우 컨테이너 구성에 대해 다음을 수행하십시오.

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

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

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

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

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

    8. (선택 사항) SageMaker Neo를 사용한 모델 컴파일의 경우 Neo를 사용하여 컴파일한 모델에 대한 추천 작업을 구성할 수 있습니다. SageMaker 데이터 입력 구성(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. (선택 사항) 암호화 키 드롭다운 목록에서 이름을 기준으로 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)을 선택합니다.

추론 권장 작업 결과 확인하기

AWS SDK for Python (Boto3) AWS CLI, Studio Classic 또는 콘솔을 사용하여 프로그래밍 방식으로 추론 권장 작업의 결과를 수집하십시오. SageMaker

AWS SDK for Python (Boto3)

추론 권장 사항이 완료된 후, DescribeInferenceRecommendationsJob을(를) 사용하여 작업 세부정보와 권장 사항을 가져올 수 있습니다. 추론 권장 작업을 생성할 때 사용한 작업 이름을 입력합니다.

job_name='<INSERT>' response = sagemaker_client.describe_inference_recommendations_job( JobName=job_name)

응답 객체를 출력합니다. 이전 코드 샘플은 이라는 변수에 응답을 저장했습니다. response

print(response['Status'])

그러면 다음 예제와 비슷한 JSON 응답이 반환됩니다. 참고로 이 예제에서는 실시간 추론을 위한 권장 인스턴스 유형을 볼 수 있습니다(서버리스 추론 권장 사항을 보여주는 예는 다음 예제 참조).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

처음 몇 줄에는 추론 권장 작업 자체에 대한 정보가 있습니다. 여기에는 작업 이름, 역할ARN, 생성 및 삭제 시간이 포함됩니다.

InferenceRecommendations 사전에는 Inference Recommender 추론 권장 사항 목록이 포함됩니다.

EndpointConfiguration중첩 사전에는 추천 작업 중에 사용된 엔드포인트 및 변형 이름 (배포된 AWS 기계 학습 모델) 과 함께 인스턴스 유형 () 권장 사항이 포함되어 있습니다. InstanceType Amazon CloudWatch Events에서 모니터링하기 위해 엔드포인트 및 변형 이름을 사용할 수 있습니다. 자세한 내용은 SageMaker 아마존과 아마존을 모니터링하세요 CloudWatch 섹션을 참조하세요.

Metrics중첩 사전에는 실시간 엔드포인트의 시간당 예상 비용 (CostPerHour) (미국 달러), 실시간 엔드포인트의 추론당 예상 비용 (CostPerInference) (미국 달러), 엔드포인트로 전송되는 분당 예상 최대 InvokeEndpoint 요청 수 (MaxInvocations), 모델이 응답하는 데 걸린 시간 간격 (마이크로초ModelLatency) 인 모델 지연 시간 () 에 대한 정보가 포함됩니다. SageMaker 모델 지연 시간에는 요청을 전송하고 모델의 컨테이너에서 응답을 가져오는 데 걸리는 로컬 통신 시간과 컨테이너에서 추론을 완료하는 데 걸리는 시간도 포함됩니다.

다음 예제에서는 서버리스 추론 권장 사항을 반환하도록 구성된 추론 권장 작업에 대한 응답의 InferenceRecommendations 일부를 볼 수 있습니다.

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

서버리스 추론에 대한 권장 사항을 실시간 추론 결과와 비슷하게 해석할 수 있습니다. 단, ServerlessConfig의 경우에는 서버리스 엔드포인트에 대해 반환된 지표를 지정된 MemorySizeInMBMaxConcurrency = 1와 함께 알려줍니다. 엔드포인트에서 가능한 처리량을 늘리려면 MaxConcurrency 값을 선형으로 늘립니다. 예를 들어, 추론 권장 사항에서 MaxInvocations이(가) 1000(으)로 표시되는 경우, MaxConcurrency을(를) 2(으)로 늘리면 2000 MaxInvocations을(를) 지원하게 됩니다. 참고로 이는 특정 시점까지만 적용되며, 모델과 코드에 따라 달라질 수 있습니다. 서버리스 권장 사항은 서버리스 엔드포인트에서 컴퓨터 리소스를 실행하는 데 걸리는 시간(마이크로초)을 측정하는 지표 ModelSetupTime도 측정합니다. 서버리스 엔드포인트 설정에 대한 자세한 정보는 서버리스 추론 설명서에서 확인하세요.

AWS CLI

추론 권장 사항이 완료된 후, describe-inference-recommendations-job을(를) 사용하여 작업 세부정보와 권장 인스턴스 유형을 가져올 수 있습니다. 추론 권장 작업을 생성할 때 사용한 작업 이름을 입력합니다.

aws sagemaker describe-inference-recommendations-job\ --job-name <job-name>\ --region <aws-region>

유사한 JSON 응답은 다음 예와 비슷해야 합니다. 참고로 이 예제에서는 실시간 추론을 위한 권장 인스턴스 유형을 볼 수 있습니다(서버리스 추론 권장 사항을 보여주는 예는 다음 예제 참조).

{ 'JobName': 'job-name', 'JobDescription': 'job-description', 'JobType': 'Default', 'JobArn': 'arn:aws:sagemaker:region:account-id:inference-recommendations-job/resource-id', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 20, 4, 57, 627000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 20, 25, 1, 997000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region:account-id:model-package/resource-id', 'JobDurationInSeconds': 0 }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.20399999618530273, 'CostPerInference': 5.246913588052848e-06, 'MaximumInvocations': 648, 'ModelLatency': 263596 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5.xlarge', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 2.92620870823157e-06, 'MaximumInvocations': 655, 'ModelLatency': 826019 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.c5d.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }, { 'Metrics': { 'CostPerHour': 0.11500000208616257, 'CostPerInference': 3.3625731248321244e-06, 'MaximumInvocations': 570, 'ModelLatency': 1085446 }, 'EndpointConfiguration': { 'EndpointName': 'endpoint-name', 'VariantName': 'variant-name', 'InstanceType': 'ml.m5.large', 'InitialInstanceCount': 1 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId': 'request-id', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid': 'x-amzn-requestid', 'content-type': 'content-type', 'content-length': '1685', 'date': 'Tue, 26 Oct 2021 20:31:10 GMT' }, 'RetryAttempts': 0 } }

처음 몇 줄에는 추론 권장 작업 자체에 대한 정보가 있습니다. 여기에는 작업 이름, 역할ARN, 생성 및 삭제 시간이 포함됩니다.

InferenceRecommendations 사전에는 Inference Recommender 추론 권장 사항 목록이 포함됩니다.

EndpointConfiguration중첩 사전에는 추천 작업 중에 사용된 엔드포인트 및 변형 이름 (배포된 AWS 기계 학습 모델) 과 함께 인스턴스 유형 () 권장 사항이 포함됩니다. InstanceType Amazon CloudWatch Events에서 모니터링하기 위해 엔드포인트 및 변형 이름을 사용할 수 있습니다. 자세한 내용은 SageMaker 아마존과 아마존을 모니터링하세요 CloudWatch 섹션을 참조하세요.

Metrics중첩 사전에는 실시간 엔드포인트의 시간당 예상 비용 (CostPerHour) (미국 달러), 실시간 엔드포인트의 추론당 예상 비용 (CostPerInference) (미국 달러), 엔드포인트로 전송되는 분당 예상 최대 InvokeEndpoint 요청 수 (MaxInvocations), 모델이 응답하는 데 걸린 시간 간격 (밀리초ModelLatency) 인 모델 지연 시간 () 에 대한 정보가 포함됩니다. SageMaker 모델 지연 시간에는 요청을 전송하고 모델의 컨테이너에서 응답을 가져오는 데 걸리는 로컬 통신 시간과 컨테이너에서 추론을 완료하는 데 걸리는 시간도 포함됩니다.

다음 예제에서는 서버리스 추론 권장 사항을 반환하도록 구성된 추론 권장 작업에 대한 응답의 InferenceRecommendations 일부를 볼 수 있습니다.

"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "value", "InitialInstanceCount": value, "InstanceType": "value", "VariantName": "value", "ServerlessConfig": { "MaxConcurrency": value, "MemorySizeInMb": value } }, "InvocationEndTime": value, "InvocationStartTime": value, "Metrics": { "CostPerHour": value, "CostPerInference": value, "CpuUtilization": value, "MaxInvocations": value, "MemoryUtilization": value, "ModelLatency": value, "ModelSetupTime": value }, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value" }, "RecommendationId": "value" } ]

서버리스 추론에 대한 권장 사항을 실시간 추론 결과와 비슷하게 해석할 수 있습니다. 단, ServerlessConfig의 경우에는 서버리스 엔드포인트에 대해 반환된 지표를 지정된 MemorySizeInMBMaxConcurrency = 1와 함께 알려줍니다. 엔드포인트에서 가능한 처리량을 늘리려면 MaxConcurrency 값을 선형으로 늘립니다. 예를 들어, 추론 권장 사항에서 MaxInvocations이(가) 1000(으)로 표시되는 경우, MaxConcurrency을(를) 2(으)로 늘리면 2000 MaxInvocations을(를) 지원하게 됩니다. 참고로 이는 특정 시점까지만 적용되며, 모델과 코드에 따라 달라질 수 있습니다. 서버리스 권장 사항은 서버리스 엔드포인트에서 컴퓨터 리소스를 실행하는 데 걸리는 시간(마이크로초)을 측정하는 지표 ModelSetupTime도 측정합니다. 서버리스 엔드포인트 설정에 대한 자세한 정보는 서버리스 추론 설명서에서 확인하세요.

Amazon SageMaker Studio Classic

추론 권장 사항은 Studio Classic의 새 추론 권장 사항 탭에 채워집니다. 결과가 표시되려면 최대 45분이 걸릴 수 있습니다. 이 탭에는 결과(Results)세부정보(Details) 열이 포함됩니다.

세부정보(Details) 열에는 추론 권장 사항 이름, 작업 생성 시간(생성 시간(Creation time)) 등과 같은 추론 권장 사항 작업에 대한 정보가 있습니다. 또한 분당 발생한 최대 간접 호출 수 및 사용된 Amazon 리소스 이름에 대한 정보와 같은 설정(Settings) 정보도 있습니다.

결과 열에는 배포 중요도에 따라 결과가 표시되는 순서를 조정할 수 있는 배포 목표SageMaker권장 사항 창이 있습니다. 세 가지 드롭다운 메뉴를 사용하여 비용(Cost), 지연 시간(Latency), 처리량(Throughput)의 중요도를 사용 사례에 맞게 설정할 수 있습니다. 개별 목표(비용, 지연 시간, 처리량)의 중요도를 최저(Lowest Importance), 낮음(Low Importance), 보통(Moderate importance), 높음(High importance), 최고(Highest importance)로 설정할 수 있습니다.

선택한 각 목표의 중요도에 따라 Inference Recommender는 패널 오른쪽의 권장 SageMaker사항 필드에 시간당 예상 비용 및 추론 요청과 함께 상위 권장 사항을 표시합니다. 또한 예상 모델 지연 시간, 최대 간접 호출 수, 인스턴스 수에 대한 정보도 표시합니다. 서버리스 권장 사항의 경우 최대 동시성 및 엔드포인트 메모리 크기에 대한 이상적인 값을 확인할 수 있습니다.

표시된 상위 권장 사항 외에 Inference Recommender가 전체 실행(All runs) 섹션에서 테스트한 모든 인스턴스에 대한 동일한 정보를 볼 수 있습니다.

SageMaker console

다음 작업을 수행하여 SageMaker 콘솔에서 인스턴스 추천 작업을 볼 수 있습니다.

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

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

  3. Inference Recommender 작업(Inference recommender jobs) 페이지에서 추론 권장 작업 이름을 선택합니다.

작업의 세부 정보 페이지에서 다음 스크린샷과 같이 모델에 SageMaker 권장되는 인스턴스 유형인 추론 권장 사항을 확인할 수 있습니다.

콘솔의 작업 세부 정보 페이지에 있는 추론 권장 사항 목록의 스크린샷 SageMaker

이 섹션에서는 모델 지연 시간(Model latency), 시간당 비용(Cost per hour), 추론당 비용(Cost per inference), 분당 간접 호출 수(Invocations per minute)와 같은 다양한 요인을 기준으로 인스턴스 유형을 비교할 수 있습니다.

이 페이지에서 작업에 지정한 구성을 볼 수도 있습니다. Monitor 섹션에서는 각 인스턴스 유형에 대해 기록된 Amazon CloudWatch 지표를 볼 수 있습니다. 이러한 지표 해석에 대한 자세한 내용은 결과 해석에서 확인하세요.

권장 작업 결과 해석 방법에 대한 자세한 정보는 권장 사항 결과 해석하기에서 확인하세요.

추론 권장 사항 중단하기

실수로 작업을 시작했거나 더 이상 작업을 실행할 필요가 없는 경우에는 현재 실행 중인 작업을 중지하는 것이 좋습니다. StopInferenceRecommendationsJobAPI또는 Studio Classic을 사용하여 프로그래밍 방식으로 추론 추천자 추론 권장 작업을 중지하십시오.

AWS SDK for Python (Boto3)

JobName 필드에 추론 권장 작업 이름을 지정합니다.

sagemaker_client.stop_inference_recommendations_job( JobName='<INSERT>' )
AWS CLI

job-name 플래그에 추론 권장 작업 이름을 지정합니다.

aws sagemaker stop-inference-recommendations-job --job-name <job-name>
Amazon SageMaker Studio Classic

추론 권장 사항을 개시한 탭을 닫아 Inference Recommender 추론 권장 사항을 중단합니다.

SageMaker console

SageMaker 콘솔을 통해 인스턴스 추천 작업을 중지하려면 다음과 같이 하십시오.

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

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

  3. Inference Recommender 작업(Inference recommender jobs) 페이지에서 인스턴스 권장 작업을 선택합니다.

  4. 작업 중단(Stop job)을 선택합니다.

  5. 대화 상자가 열리면 확인(Confirm)을 선택합니다.

작업 중단 후 작업 상태(Status) 중단 중(Stopping)으로 변경되어야 합니다.