

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

# Inference Recommender 오류 문제 해결
<a name="inference-recommender-troubleshooting"></a>

이 섹션에는 일반적인 오류를 파악해 방지하는 방법, 오류로 인해 생성되는 오류 메시지와 오류 해결 방법에 대한 지침이 나와 있습니다.

## 문제 해결 방법
<a name="inference-recommender-troubleshooting-how-to"></a>

다음 단계를 통해 오류 해결을 시도할 수 있습니다.
+ Inference Recommender 사용 필수 조건을 모두 충족했는지 확인합니다. [Inference Recommender 필수 조건](https://docs.aws.amazon.com/sagemaker/latest/dg/inference-recommender-prerequisites.html)을 확인하세요.
+ 모델 레지스트리에서 엔드포인트로 모델을 배포할 수 있고 오류 없이 페이로드를 처리할 수 있는지 확인합니다. [레지스트리에서 모델 배포](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-deploy.html)를 확인하세요.
+ Inference Recommender 작업을 시작하면 콘솔에서 엔드포인트가 생성되는 것을 확인하고 CloudWatch 로그를 검토할 수 있습니다.

## 일반적인 오류
<a name="inference-recommender-troubleshooting-common"></a>

다음 표에서 일반적인 Inference Recommender 오류와 해결 방법을 확인하세요.


| 오류 | Solution | 
| --- | --- | 
| 모델 패키지 버전 1에서는 `Domain`을(를) 지정합니다. `Domain`은(는) 작업의 필수 파라미터입니다. | ML 도메인을 입력하거나 알 수 없는 경우 `OTHER`을(를) 입력합니다. | 
| 입력한 역할 ARN을 수임할 수 없어 `AWSSecurityTokenServiceException` 오류가 발생했습니다. | 입력한 실행 역할에 필수 조건에 지정된 필수 권한이 있는지 확인합니다. | 
| 모델 패키지 버전 1에서는 `Framework`을(를) 지정합니다. `Framework`은(는) 작업의 필수 파라미터입니다. | ML 프레임워크를 입력하거나 알 수 없는 경우 `OTHER`을(를) 입력합니다. | 
| 이전 단계의 최종 사용자는 0이고 현재 단계의 초기 사용자는 1입니다. | 여기서 사용자는 요청 전송 시 사용되는 가상 사용자 또는 스레드를 말합니다. 각 단계는 A 사용자로 시작하여 B 사용자로 끝나므로 B > A입니다. 순차적인 단계 x\_1과 x\_2 사이 필수 조건은 abs(x\_2.a - x\_1.b) <= 3 및 >= 0입니다. | 
| 총 트래픽 지속 시간(전체)은 작업 지속 시간을 초과할 수 없습니다. | 전체 단계의 총 지속 시간은 작업 지속 시간을 초과할 수 없습니다. | 
| 용량 확장 가능 인스턴스 유형 ml.t2.medium은 허용되지 않습니다. | Inference Recommender는 t2 인스턴스 패밀리에 대한 부하 테스트를 지원하지 않습니다. 용량 확장 가능 인스턴스는 일관된 성능을 제공하지 않기 때문입니다. | 
| CreateEndpoint 작업 호출 시 ResourceLimitExceeded | SageMaker AI 리소스 제한을 초과했습니다. 예를 들어, 계정이 엔드포인트 할당량에 도달한 경우 Inference Recommender는 벤치마킹용 엔드포인트를 프로비저닝하지 못할 수 있습니다. SageMaker AI 제한 및 할당량에 대한 자세한 정보는 [Amazon SageMaker AI 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html)에서 확인하세요. | 
| InvokeEndpoint 작업 호출 시 ModelError | 모델 오류는 다음과 같은 이유로 발생할 수 있습니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/inference-recommender-troubleshooting.html) | 
| InvokeEndpoint 작업 호출 시 PayloadError | 페이로드 오류는 다음과 같은 이유로 발생할 수 있습니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/inference-recommender-troubleshooting.html) | 

## CloudWatch 확인하기
<a name="inference-recommender-troubleshooting-check-cw"></a>

Inference Recommender 작업을 시작하면 콘솔에서 엔드포인트가 생성되는 것을 확인할 수 있습니다. 엔드포인트 중 하나를 선택하고 CloudWatch 로그를 확인하여 4xx/5xx 오류를 모니터링합니다. Inference Recommender 작업이 정상적으로 진행되면 결과의 일부로 엔드포인트 이름을 볼 수 있습니다. Inference Recommender 작업이 정상적으로 진행되지 않더라도 아래 단계에 따라 CloudWatch 로그에서 삭제된 엔드포인트를 확인할 수 있습니다.

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 Amazon CloudWatch 콘솔을 엽니다.

1. Inference Recommender 작업을 생성한 리전을 오른쪽 상단 **리전(Region)** 드롭다운 목록에서 선택합니다.

1. CloudWatch 탐색 창에서 **로그(Logs)**를 선택한 다음, **로그 그룹(Log groups)**을 선택합니다.

1. `/aws/sagemaker/Endpoints/sm-epc-*` 로그 그룹을 검색합니다. 가장 최근의 Inference Recommender 작업을 기반으로 로그 그룹을 선택합니다.

Inference Recommender CloudWatch 로그를 확인하여 작업 문제를 해결할 수도 있습니다. `/aws/sagemaker/InferenceRecommendationsJobs` CloudWatch 로그 그룹에 게시되는 Inference Recommender 로그에서 `{{<jobName>}}/execution` 로그 스트림의 작업 진행 상황을 개괄적으로 볼 수 있습니다. `{{<jobName>}}/Endpoint/{{<endpointName>}}` 로그 스트림에서 테스트 중인 각 엔드포인트 구성에 대한 자세한 정보를 찾을 수 있습니다.

**Inference Recommender 로그 스트림 개요**
+ `{{<jobName>}}/execution`에는 벤치마킹이 예정된 엔드포인트 구성, 컴파일 작업 건너뛰기 사유, 검증 실패 사유 등 전반적인 작업 정보가 들어 있습니다.
+ `{{<jobName>}}/Endpoint/{{<endpointName>}}`에는 리소스 생성 진행률, 테스트 구성, 부하 테스트 중지 사유, 리소스 정리 상태 등의 정보가 들어 있습니다.
+ `{{<jobName>}}/CompilationJob/{{<compilationJobName>}}`에는 컴파일 작업 구성, 컴파일 작업 상태 등 Inference Recommender에서 만든 컴파일 작업에 대한 정보가 들어 있습니다.

**Inference Recommender 오류 메시지에 대한 경보 생성하기**

Inference Recommender는 문제 해결 중에 유용할 수 있는 오류에 대한 로그 설명을 출력합니다. CloudWatch 로그 그룹과 지표 필터를 사용하면 데이터가 CloudWatch로 전송될 때 로그 데이터에서 용어와 패턴을 찾을 수 있습니다. 그런 다음 로그 그룹 지표 필터에 따라 CloudWatch 경보를 생성할 수 있습니다. 자세한 정보는 [로그 그룹-지표 필터를 기반으로 CloudWatch 경보 생성하기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_alarm_log_group_metric_filter.html)를 확인하세요

## 벤치마크 확인하기
<a name="inference-recommender-troubleshooting-check-benchmarks"></a>

Inference Recommender 작업을 시작하면 Inference Recommender는 여러 가지 벤치마크를 생성하여 다양한 인스턴스 유형에서 모델 성능을 평가합니다. [ListInferenceRecommendationsJobSteps](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html) API로 전체 벤치마크의 세부정보를 볼 수 있습니다. 실패한 벤치마크가 있는 경우, 결과의 일부로 실패 사유를 확인할 수 있습니다.

[ListInferenceRecommendationsJobSteps](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html) API를 사용하려면 다음 값을 입력합니다.
+ `JobName`에 Inference Recommender 작업 이름을 입력합니다.
+ `StepType`에서 `BENCHMARK`로 작업 벤치마크에 대한 세부정보를 반환합니다.
+ `Status`에서 `FAILED`로 실패한 벤치마크에 대한 세부정보를 반환합니다. 기타 상태 유형 목록은 `Status` 필드([ListInferenceRecommendationsJobSteps](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListInferenceRecommendationsJobSteps.html) API 내)에서 확인하세요.

```
# Create a low-level SageMaker service client.
import boto3
aws_region = {{'<region>'}}
sagemaker_client = boto3.client('sagemaker', region_name=aws_region) 

# Provide the job name for the SageMaker Inference Recommender job
job_name = {{'<job-name>'}}

# Filter for benchmarks
step_type = 'BENCHMARK' 

# Filter for benchmarks that have a FAILED status
status = 'FAILED'

response = sagemaker_client.list_inference_recommendations_job_steps(
    JobName = job_name,
    StepType = step_type,
    Status = status
)
```

응답 객체를 출력하여 결과를 볼 수 있습니다. 이전 코드 예제는 응답을 `response` 변수에 저장했습니다.

```
print(response)
```