Inference Recommender 오류 문제 해결 - Amazon SageMaker

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

Inference Recommender 오류 문제 해결

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

문제 해결 방법

다음 단계를 통해 오류 해결을 시도할 수 있습니다.

  • Inference Recommender 사용 필수 조건을 모두 충족했는지 확인합니다. Inference Recommender 필수 조건을 확인하세요.

  • 모델 레지스트리에서 엔드포인트로 모델을 배포할 수 있고 오류 없이 페이로드를 처리할 수 있는지 확인합니다. 레지스트리에서 모델 배포를 확인하세요.

  • 추론 추천자 작업을 시작할 때 콘솔에서 엔드포인트가 생성되고 로그를 검토할 수 있습니다 CloudWatch .

일반적인 오류

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

Error 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 인스턴스 패밀리에 대한 부하 테스트를 지원하지 않습니다. 용량 확장 가능 인스턴스는 일관된 성능을 제공하지 않기 때문입니다.

ResourceLimitExceeded 작업을 호출 CreateEndpoint할 때

SageMaker 리소스 한도를 초과했습니다. 예를 들어, 계정이 엔드포인트 할당량에 도달한 경우 Inference Recommender는 벤치마킹용 엔드포인트를 프로비저닝하지 못할 수 있습니다. SageMaker 제한 및 할당량에 대한 자세한 내용은 Amazon SageMaker 엔드포인트 및 할당량 섹션을 참조하세요.

ModelError InvokeEndpoint 작업을 호출할 때

모델 오류는 다음과 같은 이유로 발생할 수 있습니다.

  • 모델 컨테이너의 응답을 대기중에 간접 호출 시간 초과.

  • 모델이 입력 페이로드를 처리할 수 없음.

PayloadError InvokeEndpoint 작업을 호출할 때

페이로드 오류는 다음과 같은 이유로 발생할 수 있습니다.

  • 페이로드 소스가 Amazon S3 버킷에 없음.

  • 페이로드가 비 파일 객체 형식임.

  • 페이로드가 잘못된 파일 유형임. 예: 모델에서는 이미지 유형 페이로드를 예상했으나 텍스트 파일이 전달되는 경우.

  • 페이로드가 비어 있음.

확인 CloudWatch

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

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

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

  3. 의 탐색 창에서 로그 를 CloudWatch선택한 다음 로그 그룹 을 선택합니다.

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

추론 추천 CloudWatch 로그를 확인하여 작업 문제를 해결할 수도 있습니다. /aws/sagemaker/InferenceRecommendationsJobs CloudWatch 로그 그룹에 게시되는 추론 추천자 로그는 <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 경보 생성을 참조하세요.

벤치마크 확인하기

Inference Recommender 작업을 시작하면 Inference Recommender는 여러 가지 벤치마크를 생성하여 다양한 인스턴스 유형에서 모델 성능을 평가합니다. ListInferenceRecommendationsJobSteps API 를 사용하여 모든 벤치마크의 세부 정보를 볼 수 있습니다. 실패한 벤치마크가 있는 경우, 결과의 일부로 실패 사유를 확인할 수 있습니다.

를 사용하려면 다음 값을 ListInferenceRecommendationsJobSteps API제공합니다.

  • JobName에 Inference Recommender 작업 이름을 입력합니다.

  • StepType에서 BENCHMARK로 작업 벤치마크에 대한 세부정보를 반환합니다.

  • Status에서 FAILED로 실패한 벤치마크에 대한 세부정보를 반환합니다. 다른 상태 유형 목록은 의 Status 필드를 참조하세요ListInferenceRecommendationsJobStepsAPI.

# 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)