

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

# 추론 권장 작업 결과 확인하기
<a name="instance-recommendation-results"></a>

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

------
#### [ 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에서 모니터링 시 사용할 수 있습니다. 자세한 정보는 [Amazon CloudWatch의 Amazon SageMaker AI 지표](monitoring-cloudwatch.md)을 참조하세요.

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

다음 예제에서는 서버리스 추론 권장 사항을 반환하도록 구성된 추론 권장 작업에 대한 응답의 `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`의 경우에는 서버리스 엔드포인트에 대해 반환된 지표를 지정된 `MemorySizeInMB` 및 `MaxConcurrency = 1`와 함께 알려줍니다. 엔드포인트에서 가능한 처리량을 늘리려면 `MaxConcurrency` 값을 선형으로 늘립니다. 예를 들어, 추론 권장 사항에서 `MaxInvocations`이(가) `1000`(으)로 표시되는 경우, `MaxConcurrency`을(를) `2`(으)로 늘리면 2000 `MaxInvocations`을(를) 지원하게 됩니다. 참고로 이는 특정 시점까지만 적용되며, 모델과 코드에 따라 달라질 수 있습니다. 서버리스 권장 사항은 서버리스 엔드포인트에서 컴퓨터 리소스를 실행하는 데 걸리는 시간(마이크로초)을 측정하는 지표 `ModelSetupTime`도 측정합니다. 서버리스 엔드포인트 설정에 대한 자세한 정보는 [서버리스 추론 설명서](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)에서 확인하세요.

------
#### [ 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에서 모니터링 시 사용할 수 있습니다. 자세한 정보는 [Amazon CloudWatch의 Amazon SageMaker AI 지표](monitoring-cloudwatch.md)을 참조하세요.

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

다음 예제에서는 서버리스 추론 권장 사항을 반환하도록 구성된 추론 권장 작업에 대한 응답의 `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`의 경우에는 서버리스 엔드포인트에 대해 반환된 지표를 지정된 `MemorySizeInMB` 및 `MaxConcurrency = 1`와 함께 알려줍니다. 엔드포인트에서 가능한 처리량을 늘리려면 `MaxConcurrency` 값을 선형으로 늘립니다. 예를 들어, 추론 권장 사항에서 `MaxInvocations`이(가) `1000`(으)로 표시되는 경우, `MaxConcurrency`을(를) `2`(으)로 늘리면 2000 `MaxInvocations`을(를) 지원하게 됩니다. 참고로 이는 특정 시점까지만 적용되며, 모델과 코드에 따라 달라질 수 있습니다. 서버리스 권장 사항은 서버리스 엔드포인트에서 컴퓨터 리소스를 실행하는 데 걸리는 시간(마이크로초)을 측정하는 지표 `ModelSetupTime`도 측정합니다. 서버리스 엔드포인트 설정에 대한 자세한 정보는 [서버리스 추론 설명서](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)에서 확인하세요.

------
#### [ Amazon SageMaker Studio Classic ]

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

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

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

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

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

------
#### [ SageMaker AI console ]

SageMaker AI 콘솔에서 인스턴스 권장 작업을 확인하는 방법은 다음과 같습니다.

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

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

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

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

![\[SageMaker AI 콘솔의 작업 세부정보 페이지에 있는 추론 권장 사항 목록의 스크린샷.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/inf-rec-instant-recs.png)


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

이 페이지에서 작업에 지정한 구성을 볼 수도 있습니다. **모니터(Monitor)** 섹션에서 인스턴스 유형별로 기록된 Amazon CloudWatch 지표를 볼 수 있습니다. 이러한 지표 해석에 대한 자세한 내용은 [결과 해석](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-interpret-results.html)에서 확인하세요.

------

권장 작업 결과 해석 방법에 대한 자세한 정보는 [권장 결과](inference-recommender-interpret-results.md)에서 확인하세요.