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

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

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

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 중첩 사전에는 인스턴스 유형(InstanceType) 권장 사항과 권장 작업 중에 사용된 엔드포인트 및 변형 이름(배포된 AWS 기계 학습 모델)이 포함되어 있습니다. 엔드포인트 및 변형 이름을 사용하여 Amazon CloudWatch Events에서 모니터링할 수 있습니다. 자세한 내용은 Amazon SageMaker 에서 Amazon을 모니터링하기 위한 지표 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 중첩 사전에는 인스턴스 유형(InstanceType) 권장 사항과 권장 사항 작업 중에 사용되는 엔드포인트 및 변형 이름(배포된 AWS 기계 학습 모델)이 포함되어 있습니다. 엔드포인트 및 변형 이름을 사용하여 Amazon CloudWatch Events에서 모니터링할 수 있습니다. 자세한 내용은 Amazon SageMaker 에서 Amazon을 모니터링하기 위한 지표 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)와 같은 다양한 요인을 기준으로 인스턴스 유형을 비교할 수 있습니다.

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

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