Amazon SageMaker 엔드포인트의 긴 지연 시간 문제를 해결하려고 합니다.
간략한 설명
SageMaker 엔드포인트에서 다음과 같은 유형의 지연 시간이 발생할 수 있습니다.
- 모델 지연 시간 - 모델이 추론 요청에 응답하는 데 걸리는 시간입니다. 모델 지연 시간에는 요청을 전송한 후 응답을 가져오는 로컬 통신 시간이 포함됩니다. 또한 모델 지연 시간에는 모델 컨테이너 내부의 추론 완료 시간이 포함됩니다.
- 오버헤드 지연 시간 - SageMaker가 호출 요청에 응답하는 데 걸리는 시간이며 모델 지연 시간은 제외됩니다.
- 네트워크 지연 시간 - 요청이 클라이언트와 SageMaker 엔드포인트 사이를 오가는 데 걸리는 시간입니다. 네트워크 지연 시간은 AWS 인프라 외부에서 발생합니다.
SageMaker 엔드포인트가 단일 모델을 지원하는 경우 다음과 같은 Amazon CloudWatch 지표를 사용할 수 있습니다.
SageMaker 엔드포인트가 다중 모델 엔드포인트를 지원하는 경우 다음과 같은 CloudWatch 지표를 사용할 수 있습니다.
- 모델 로딩 대기 시간 - 이 지표는 추론이 수행되기 전에 호출 요청이 대상 모델을 다운로드하거나 로드하는 데 걸리는 대기 시간을 보여줍니다.
- 모델 다운로드 시간 - 이 지표는 Amazon Simple Storage Service(Amazon S3)에서 모델을 다운로드하는 데 걸리는 시간을 보여줍니다.
- 모델 로딩 시간 - 이 지표는 모델이 컨테이너에 로드되는 데 걸리는 시간을 보여줍니다.
- 모델 캐시 히트 - 이 지표는 모델이 로드된 엔드포인트로 전송된 InvokeEndpoint 요청 수를 보여줍니다.
참고: 다중 모델 엔드포인트는 수명 기간 동안 모델을 로드 및 언로드합니다. 엔드포인트에 로드된 모델 수를 확인하려면 LoadedModelCount CloudWatch 지표를 사용하십시오.
해결 방법
다음 유형의 지연 시간을 기반으로 긴 지연 시간 문제를 해결하십시오.
모델 지연 시간
긴 모델 지연 시간을 줄이려면 다음을 완료하십시오.
- 모델 성능을 테스트하려면 SageMaker 엔드포인트 외부에서 모델을 벤치마킹합니다.
- SageMaker Neo가 모델을 지원하는 경우 모델을 컴파일합니다. SageMaker Neo는 적은 메모리 공간에서 정확도 손실 없이 두 배 더 빠르게 실행되도록 모델을 최적화합니다.
- AWS Inferentia가 모델을 지원하는 경우 Inferentia용으로 모델을 컴파일합니다. 이를 통해 더 낮은 추론당 비용으로 더 높은 처리량을 얻을 수 있습니다.
- CPU 인스턴스를 사용하고 모델이 GPU 가속을 지원하는 경우 GPU 인스턴스를 사용하여 인스턴스에 GPU 가속을 추가합니다.
참고: 추론 코드는 코드가 추론을 처리하는 방식에 따라 모델 지연 시간에 영향을 줄 수 있습니다. 코드가 지연되면 지연 시간이 늘어납니다.
- 엔드포인트에 사용할 수 있는 인스턴스 수를 동적으로 늘리거나 줄이려면 엔드포인트에 오트 스케일링을 추가합니다. 엔드포인트를 과도하게 사용하면 모델 지연 시간이 길어질 수 있습니다.
오버헤드 지연 시간
오버헤드 지연 시간을 높이는 요인은 다음과 같습니다.
- 요청 및 응답의 페이로드 크기
- 요청 빈도 또는 낮은 빈도
- 요청에 대한 인증 또는 권한 부여
또한 첫 번째 엔드포인트 호출은 콜드 스타트로 인해 지연 시간이 증가할 수 있습니다. 콜드 스타트에서 지연 시간이 길어지는 것을 방지하려면 엔드포인트에 테스트 요청을 보내 사전 워밍하십시오.
네트워크 지연 시간
긴 네트워크 지연 시간을 줄이려면 다음을 완료하십시오.
- SageMaker 엔드포인트가 호스팅되는 AWS 리전에 가깝게 클라이언트 애플리케이션을 배포합니다.
- 클라이언트측 네트워크 구성 및 인터넷 연결을 최적화합니다.
- 추론 요청을 클라이언트에 더 가까이 가져오려면 콘텐츠 전송 네트워크(CDN) 또는 엣지 컴퓨팅 솔루션을 사용합니다.
참고: SageMaker는 네트워크 지연 시간에 직접적인 영향을 줄 수 없습니다. 사용 사례에 따라 SageMaker 엔드포인트를 사용하는 애플리케이션의 전체 추론 지연 시간을 최적화해야 합니다.