Amazon SageMaker 서버리스 추론을 사용하여 모델 배포하기 - 아마존 SageMaker

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

Amazon SageMaker 서버리스 추론을 사용하여 모델 배포하기

Amazon SageMaker Serverless Inference는 기본 인프라를 구성하거나 관리하지 않고도 ML 모델을 배포하고 확장할 수 있도록 특별히 구축된 추론 옵션입니다. 온디맨드 서버리스 추론은 트래픽 폭주 사이에 유휴 기간이 있고 콜드 스타트를 허용할 수 있는 워크로드에 적합합니다. 서버리스 엔드포인트는 자동으로 컴퓨팅 리소스를 시작하고 트래픽에 따라 리소스를 확장 및 축소하므로 인스턴스 유형을 선택하거나 조정 정책을 관리할 필요가 없습니다. 이렇게 하면 서버를 선택하고 관리하는 단조롭고 부담스러운 작업이 사라집니다. 서버리스 추론은 AWS Lambda 와 통합되어 고가용성, 내장된 내결함성 및 오토 스케일링을 제공합니다. 트래픽 패턴이 자주 발생하지 않거나 예측할 수 없는 경우 pay-per-use 모델을 사용하면 서버리스 추론을 비용 효율적으로 사용할 수 있습니다. 요청이 없는 시간에는 서버리스 추론을 통해 엔드포인트를 0으로 축소하여 비용을 최소화할 수 있습니다. 온디맨드 서버리스 추론 요금에 대한 자세한 내용은 Amazon 요금을 참조하십시오. SageMaker

선택적으로 서버리스 추론과 함께 프로비저닝된 동시성을 사용할 수도 있습니다. 트래픽 폭증이 예측 가능한 경우 프로비저닝된 동시성을 제공하는 서버리스 추론이 비용 효율적인 옵션입니다. 프로비저닝된 동시성을 사용하면 엔드포인트를 따뜻하게 유지하여 예측 가능한 성능과 높은 확장성을 갖춘 서버리스 엔드포인트에 모델을 배포할 수 있습니다. SageMaker 할당한 프로비저닝된 동시성 수만큼 컴퓨팅 리소스가 초기화되고 밀리초 내에 응답할 준비가 되도록 합니다. 프로비저닝된 동시성을 사용하는 서버리스 추론의 경우, 추론 요청을 처리하는 데 사용된 컴퓨팅 용량(밀리초 단위로 청구)과 처리된 데이터 양에 대한 요금을 지불합니다. 또한 구성된 메모리, 프로비저닝된 기간, 활성화된 동시성 양에 따라 프로비저닝된 동시성 사용에 대한 비용을 지불합니다. 프로비저닝된 동시성을 사용한 서버리스 추론 요금에 대한 자세한 내용은 Amazon 요금을 참조하십시오. SageMaker

서버리스 추론을 MLOps 파이프라인과 통합하여 ML 워크플로를 간소화하고, 서버리스 엔드포인트를 사용하여 모델 레지스트리에 등록된 모델을 호스팅할 수 있습니다.

서버리스 추론은 일반적으로 미국 동부 (버지니아 북부), 미국 동부 (오하이오), 미국 서부 (캘리포니아 북부), 미국 서부 (오레곤), 아프리카 (케이프타운), 아시아 태평양 (홍콩), 아시아 태평양 (뭄바이), 아시아 태평양 (도쿄), 아시아 태평양 (서울), 아시아 태평양 (오사카), 아시아 태평양 (싱가포르), 아시아 태평양 (시드니), 캐나다 (중부) 등 21개 AWS 지역에서 사용할 수 있습니다., 유럽 (프랑크푸르트), 유럽 (아일랜드), 유럽 (런던), 유럽 (파리), 유럽 (스톡홀름), 유럽 (밀라노), 중동 (바레인), 남미 (상파울루). Amazon SageMaker 지역 가용성에 대한 자세한 내용은 AWS 지역 서비스 목록을 참조하십시오.

작동 방식

다음 다이어그램은 온디맨드 서버리스 추론의 워크플로와 서버리스 엔드포인트 사용의 이점을 보여줍니다.

서버리스 추론 워크플로를 보여주는 다이어그램.

온디맨드 서버리스 엔드포인트를 생성하면 컴퓨팅 리소스를 SageMaker 대신 프로비저닝하고 관리합니다. 그런 다음 엔드포인트에 추론 요청을 보내고 이에 대한 응답으로 모델 예측을 받을 수 있습니다. SageMaker 요청 트래픽을 처리하는 데 필요한 만큼 컴퓨팅 리소스를 확장 및 축소하고 사용한 만큼만 비용을 지불하면 됩니다.

프로비저닝된 동시성의 경우 서버리스 추론은 Application Auto Scaling과도 통합되므로 대상 지표 또는 일정에 따라 프로비저닝된 동시성을 관리할 수 있습니다. 자세한 정보는 서버리스 엔드포인트에 맞게 프로비저닝된 동시성의 자동 확장을 참조하세요.

다음 섹션에서는 서버리스 추론 및 작동 방식에 대한 추가 세부 정보를 제공합니다.

컨테이너 지원

엔드포인트 컨테이너의 경우 SageMaker 제공된 컨테이너를 선택하거나 직접 가져올 수 있습니다. SageMaker Apache, MXnet,, Chainer와 같은 가장 일반적인 기계 학습 프레임워크를 위해 사전 빌드된 Docker 이미지와 내장 알고리즘을 위한 컨테이너를 제공합니다. TensorFlow PyTorch 사용 가능한 SageMaker 이미지 목록은 사용 가능한 Deep Learning Containers 이미지를 참조하십시오. 자체 컨테이너를 가져오는 경우 사용할 수 있도록 수정해야 합니다 SageMaker. 자체 컨테이너에 대한 자세한 내용은 Amazon에 맞게 자체 추론 컨테이너를 조정하세요 SageMaker 섹션을 참조하세요.

사용할 수 있는 컨테이너 이미지의 최대 크기는 10GB입니다. 서버리스 엔드포인트의 경우 컨테이너에 작업자를 하나만 만들고 모델 사본을 하나만 로드하는 것이 좋습니다. 이는 일부 SageMaker 컨테이너가 각 vCPU에 대해 작업자를 생성하여 추론 요청을 처리하고 각 워커에 모델을 로드할 수 있는 실시간 엔드포인트와는 다릅니다.

실시간 엔드포인트용 컨테이너가 이미 있는 경우 일부 기능은 제외되지만 서버리스 엔드포인트에 동일한 컨테이너를 사용할 수 있습니다. 서버리스 추론에서 지원되지 않는 컨테이너 기능에 대한 자세한 내용은 독점 기능 섹션을 참조하세요. 동일한 컨테이너를 사용하기로 선택한 경우 이미지를 사용하는 모든 엔드포인트를 삭제할 때까지 컨테이너 이미지 사본을 SageMaker 에스크로 (보관) 합니다. SageMaker 복사한 유휴 이미지를 소유한 키로 암호화합니다. SageMaker AWS KMS

메모리 크기

서버리스 엔드포인트의 최소 RAM 크기는 1,024MB(1GB)이고, 선택할 수 있는 최대 RAM 크기는 6,144MB(6GB)입니다. 선택할 수 있는 메모리 크기는 1,024MB, 2,048MB, 3,072MB, 4,096MB, 5,120MB 또는 6,144MB입니다. 서버리스 추론은 선택한 메모리에 비례하여 컴퓨팅 리소스를 자동 할당합니다. 더 큰 메모리 크기를 선택하면 컨테이너가 더 많은 vCPU에 액세스할 수 있습니다. 모델 크기에 따라 엔드포인트의 메모리 크기를 선택합니다. 일반적으로 메모리 크기는 최소한 모델 크기만큼 커야 합니다. 지연 시간 SLA에 따라 모델에 적합한 메모리를 선택하려면 벤치마킹이 필요할 수 있습니다. 벤치마크를 위한 단계별 가이드는 Amazon SageMaker 서버리스 추론 벤치마킹 도구 키트 소개를 참조하십시오. 메모리 크기 증가에 따라 요금이 다릅니다. 자세한 내용은 Amazon SageMaker 요금 페이지를 참조하십시오.

선택한 메모리 크기와 상관없이 서버리스 엔드포인트는 5GB의 휘발성 디스크 스토리지를 사용할 수 있습니다. 스토리지 작업 시 컨테이너 권한 문제에 대한 도움이 필요하면 문제 해결 섹션을 참조하세요.

동시 호출

온디맨드 서버리스 추론은 엔드포인트 용량에 대해 사전 정의된 스케일링 정책 및 할당량을 관리합니다. 서버리스 엔드포인트에는 동시에 처리할 수 있는 동시 호출 수에 대한 할당량이 있습니다. 첫 번째 요청 처리를 완료하기 전에 엔드포인트를 호출하면 두 번째 요청도 동시에 처리합니다.

계정의 모든 서버리스 엔드포인트 간에 공유할 수 있는 총 동시성은 리전에 따라 다릅니다.

  • 미국 동부(오하이오), 미국 동부(오레곤), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 유럽(프랑크푸르트) 및 유럽(아일랜드) 리전에서 계정의 리전별로 모든 서버리스 엔드포인트 사이에 공유할 수 있는 총 동시성은 1,000입니다.

  • 미국 서부(캘리포니아 북부), 아프리카(케이프타운), 아시아 태평양(홍콩), 아시아 태평양(뭄바이), 아시아 태평양(오사카), 아시아 태평양(서울), 캐나다(중부), 유럽(런던), 유럽(밀라노), 유럽(파리), 유럽(스톡홀름), 중동(바레인), 남아메리카(상파울루) 리전의 경우 계정의 리전별 총 동시성은 500입니다.

단일 엔드포인트의 최대 동시성을 최대 200으로 설정할 수 있으며, 한 리전에서 호스팅할 수 있는 서버리스 엔드포인트의 총 수는 50입니다. 개별 엔드포인트의 최대 동시성으로 인해 해당 엔드포인트가 계정에 허용된 모든 호출을 처리할 수 없으며, 최대값을 초과하는 엔드포인트 호출은 조절됩니다.

참고

서버리스 엔드포인트에 할당하는 프로비저닝된 동시성은 항상 해당 엔드포인트에 할당한 최대 동시성보다 작거나 같아야 합니다.

엔드포인트의 최대 동시성을 설정하는 방법을 알아보려면 엔드포인트 구성 생성 섹션을 참조하세요. 할당량 및 한도에 대한 자세한 내용은 의 Amazon SageMaker 엔드포인트 및 할당량을 참조하십시오. AWS 일반 참조 서비스 한도 증가를 요청하려면 AWS 지원을 참조하세요. 서비스 한도 증가를 요청하는 방법에 대한 지침은 지원되는 리전 및 할당량 섹션을 참조하세요.

콜드 스타트 최소화

온디맨드 서버리스 추론 엔드포인트가 한동안 트래픽을 수신하지 않다가 갑자기 새 요청을 받는 경우, 엔드포인트가 컴퓨팅 리소스를 가동하여 요청을 처리하는 데 시간이 걸릴 수 있습니다. 이를 콜드 스타트라고 합니다. 서버리스 엔드포인트는 온디맨드 방식으로 컴퓨팅 리소스를 프로비저닝하므로 엔드포인트에서 콜드 스타트가 발생할 수 있습니다. 동시 요청이 현재 동시 요청 사용량을 초과하는 경우에도 콜드 스타트가 발생할 수 있습니다. 콜드 스타트 시간은 모델 크기, 모델 다운로드에 걸리는 시간, 컨테이너의 시작 시간에 따라 달라집니다.

콜드 스타트 시간을 모니터링하려면 Amazon CloudWatch 지표를 OverheadLatency 사용하여 서버리스 엔드포인트를 모니터링할 수 있습니다. 이 지표는 엔드포인트의 새 컴퓨팅 리소스를 시작하는 데 걸리는 시간을 추적합니다. 서버리스 엔드포인트에서 CloudWatch 메트릭을 사용하는 방법에 대한 자세한 내용은 을 참조하십시오. 서버리스 엔드포인트 모니터링

프로비저닝된 동시성을 사용하여 콜드 스타트를 최소화할 수 있습니다. SageMaker 할당된 프로비저닝된 동시성 수만큼 엔드포인트를 웜 상태로 유지하고 밀리초 단위로 응답할 수 있도록 합니다.

독점 기능

GPU, AWS 마켓플레이스 모델 패키지, 프라이빗 Docker 레지스트리, 다중 모델 엔드포인트, VPC 구성, 네트워크 격리, 데이터 캡처, 여러 프로덕션 변형, 모델 모니터, 추론 파이프라인 등 현재 SageMaker 실시간 추론에 사용할 수 있는 일부 기능은 서버리스 추론에서 지원되지 않습니다.

인스턴스 기반 실시간 엔드포인트를 서버리스 엔드포인트로 변환할 수 없습니다. 실시간 엔드포인트를 서버리스로 업데이트하려고 하면 ValidationError 메시지가 나타납니다. 서버리스 엔드포인트를 실시간으로 변환할 수 있지만 업데이트한 후에는 서버리스로 롤백할 수 없습니다.

시작하기

SageMaker 콘솔, SDK, Amazon SageMaker Python AWS SDK 및 를 사용하여 서버리스 엔드포인트를 생성, 업데이트, 설명 및 삭제할 수 있습니다. AWS CLI SDK, Amazon SageMaker Python AWS SDK 및 를 사용하여 엔드포인트를 호출할 수 있습니다. AWS CLI프로비저닝된 동시성를 가진 서버리스 엔드포인트는 Application Auto Scaling를 사용하여 대상 지표 또는 일정에 따라 프로비저닝된 동시성을 Auto Scaling 할 수 있습니다. 서버리스 엔드포인트 설정 및 사용 방법에 대한 자세한 내용은 서버리스 엔드포인트 만들기, 호출, 업데이트 및 삭제 가이드를 참조하세요. 프로비저닝된 동시성을 가진 서버리스 엔드포인트의 Auto Scaling에 대한 자세한 내용은 서버리스 엔드포인트에 맞게 프로비저닝된 동시성의 자동 확장 섹션을 참조하세요.

참고

프로비저닝된 동시성을 가진 서버리스 추론을 위한 Application Auto Scaling은 현재 AWS CloudFormation에서 지원되지 않습니다.

예제 노트북 및 블로그

서버리스 엔드포인트 워크플로를 보여주는 Jupyter 노트북 예제는 end-to-end 서버리스 추론 예제 노트북을 참조하십시오.