Amazon SageMaker 엔드포인트의 지연 시간 문제를 해결하려면 어떻게 해야 하나요?

2분 분량
0

Amazon SageMaker 엔드포인트를 호출하면 지연 시간이 깁니다.

간략한 설명

Amazon CloudWatch를 사용하여 단일 모델을 제공하는 SageMaker 엔드포인트에 대한 대기 시간 지표 ModelLatencyOverheadLatency를 모니터링합니다.

  • ModelLatency는 모델이 추론 요청에 응답하는 데 걸리는 시간(SageMaker에서 볼 때)입니다. 이 기간에는 모델이 요청을 전송하고 응답을 가져오는 데 걸리는 로컬 통신 시간이 포함됩니다. 또한 모델 컨테이너 내부의 추론 완료 시간도 포함됩니다.

  • OverheadLatency는 오버헤드가 있는 호출 요청에 SageMaker가 응답하는 데 걸리는 시간입니다. 이 측정값은 SageMaker가 요청을 받은 시점부터 응답을 반환할 때까지 ModelLatency를 뺀 값입니다.

SageMaker 다중 모델 엔드포인트를 사용하는 경우 CloudWatch에서 다음과 같은 추가 지표를 사용할 수 있습니다.

  • ModelLoadingWaitTime: 추론을 수행하기 전에 호출 요청이 대상 모델을 다운로드하거나 로드할 때까지 기다리는 시간입니다.

  • ModelDownloadingTime: Amazon Simple Storage Service(S3)에서 모델을 다운로드하는 데 걸리는 시간입니다.

  • ModelLoadingTime: 컨테이너에서 모델을 로드하는 데 걸리는 시간입니다.

  • ModelCacheHit: 모델이 이전에 로드된 엔드포인트로 전송된 InvokeEndpoint 요청의 수입니다.

다중 모델 엔드포인트는 수명 기간 동안 모델을 로드 및 언로드합니다. LoadedModelCount CloudWatch 지표를 사용하여 엔드포인트에 로드된 모델 수를 확인할 수 있습니다.

해결 방법

높은 모델 지연 시간

이 지연 시간을 줄이려면 다음 중 한 가지 조치를 취하세요.

  • SageMaker 엔드포인트 외부에서 모델을 벤치마크하여 성능을 테스트합니다.

  • SageMaker Neo가 모델을 지원하는 경우 모델을 컴파일할 수 있습니다. SageMaker Neo는 정확도 손실 없이 10분의 1 미만의 메모리 공간으로 최대 2배 더 빠르게 실행되도록 모델을 최적화합니다.

  • AWS Inferentia가 모델을 지원하는 경우, Inferentia용으로 모델을 컴파일할 수 있습니다. 이렇게 하면 AWS GPU 기반 인스턴스에 비해 최대 3배 더 높은 처리량과 추론당 최대 45% 더 낮은 비용을 제공합니다.

  • CPU 인스턴스를 사용하는 모델이 GPU 가속을 지원하는 경우 GPU 인스턴스를 사용하여 인스턴스에 GPU 가속을 추가합니다.

    참고: 추론 코드는 코드가 추론을 처리하는 방식에 따라 모델 지연 시간에 영향을 줄 수 있습니다. 코드가 지연되면 지연 시간이 늘어납니다.

  • 엔드포인트를 과도하게 사용하면 모델 지연 시간이 길어질 수 있습니다. 엔드포인트에 사용할 수 있는 인스턴스 수를 동적으로 늘리거나 줄이려면 엔드포인트에 Auto Scaling을 추가하세요.

높은 오버헤드 지연 시간

여러 요인이 OverheadLatency에 영향을 미칠 수 있습니다. 이러한 요인에는 요청 및 응답의 페이로드 크기, 요청 빈도, 요청의 인증 또는 권한 부여가 포함됩니다.

엔드포인트에 대한 첫 번째 호출은 콜드 스타트로 인해 지연 시간이 증가할 수 있습니다. 이는 첫 번째 호출 요청에서 예상되는 현상입니다. 이 문제를 방지하려면 엔드포인트에 테스트 요청을 보내 미리 예열하세요. 빈번하지 않은 요청은 OverheadLatency의 증가로 이어질 수도 있습니다.

AWS 공식
AWS 공식업데이트됨 10달 전