Amazon SageMaker에서 배포

Amazon SageMaker에서는 프로덕션에서 기계 학습 모델을 배포하고 모델 품질을 모니터링하는 데 필요한 모든 기능을 제공하여 손쉽게 예측을 생성할 수 있습니다.

기능

모델 모니터링

기계 학습 모델은 보통 기록 데이터를 통해 학습 및 평가되지만, 프로덕션에 배포된 후에는 품질이 저하됩니다. 예측을 위해 모델에 전송된 데이터 배포가 학습 중에 사용한 데이터 배포와 달라질 수 있기 때문입니다. 예측 결과의 유효성은 시간에 따라 바뀌며, 업스트림에서 오류가 발생하여 모델 품질에 영향을 줄 수 있습니다. 이를 방지하기 위해 프로덕션에서 모델 품질을 모니터링하고 문제를 빠르게 식별하며 모델 감사 또는 재학습과 같은 정정 조치를 수행해야 합니다. 그러려면 예측 관련 데이터를 안전하게 저장하는 도구를 구축한 후 다양한 통계 기술을 구현하여 이 데이터를 분석하고 모델 품질을 평가해야 합니다. 마지막으로, 적절한 정정 조치를 수행하기 위해 모델 품질에서 편차를 탐지해야 합니다. 추가 도구를 구축하는 대신, 정기적으로 모델을 재학습할 수도 있지만, 이러한 작업은 비용이 높을 수 있습니다.

Amazon SageMaker 모델 모니터를 사용하면 프로덕션에서 모델을 모니터링하는 도구를 빌드하거나 정정 조치를 수행해야 하는 시점을 탐지하지 않아도 됩니다. SageMaker 모델 모니터는 지속적으로 프로덕션에서 기계 학습 모델의 품질을 모니터링하며, 모델 품질에 편차가 존재하면 이를 알립니다.

SageMaker 모델 모니터는 정기적으로 내장된 규칙 또는 사용자 지정 제공 규칙에 기반하여 수집된 데이터를 분석하여 규칙 위반이 존재하는지 확인합니다. 내장된 규칙을 사용하여 테이블 형식의 데이터를 분석하고 예측 데이터의 이상값, 학습 데이터 세트와 비교했을 때 데이터 배포에서의 차이, 실제 편차에 기반한 예측 정확성의 변화와 같은 일반적인 문제를 탐지할 수 있습니다. SageMaker 모델 모니터는 SageMaker Studio에서 사용할 수 있으며, 지표를 Amazon CloudWatch로 보내 모델을 감사 및 재학습하기 위한 경보를 설정할 수 있습니다. 알림을 보고 적절히 학습 데이터를 조정할 수 있도록 데이터에서 차이가 발생하는 원인을 파악할 수 있습니다. 예측 요청 및 응답은 코드를 변경하지 않고도 SageMaker에 배포된 모든 모델에 대해 안전하게 저장됩니다.

모델 모니터

클릭 한 번으로 배포

Amazon SageMaker를 사용하면 한 번의 클릭으로 프로덕션 환경에 학습된 모델을 배포하여, 실시간 또는 배치(batch) 데이터에 대한 예측 생성을 시작할 수 있습니다. 높은 중복성을 위해 모델을 여러 가용 영역에 걸쳐 Auto Scaling Amazon ML 인스턴스에 클릭 한 번으로 배포할 수 있습니다. 인스턴스 유형과 원하는 최대 수 및 최소 수만 지정하면 나머지는 SageMaker가 처리합니다. SageMaker가 인스턴스를 시작하고 모델을 배포하며 애플리케이션에 대한 안전한 HTTPS 엔드포인트를 설정합니다. 짧은 지연 시간, 높은 처리량 추론을 달성하기 위해서는 애플리케이션에 이 엔드포인트에 대한 API 호출만 포함하면 됩니다. 모델을 변경하기 위해 코드를 변경할 필요가 없기 때문에 이 아키텍처를 사용하면 몇 분 만에 새 모델을 애플리케이션에 통합할 수 있습니다.

배치 변환

대부분의 경우 비실시간 예측을 위해 데이터를 배치 처리하려면 대규모 데이터 세트를 작은 데이터 청크로 크기를 조정하고 실시간 엔드포인트를 관리해야 했습니다. 이러한 작업은 비용이 많이 들고 오류가 발생하기 쉽습니다. Amazon SageMaker의 배치 변환 기능을 사용하면 데이터 세트를 여러 청크로 분할하거나 실시간 엔드포인트를 관리하지 않아도 됩니다. 배치 변환은 대규모 또는 소규모 배치 데이터 세트에 대한 예측을 실행할 수 있게 해 줍니다. 간단한 API를 통해 대량 데이터 레코드에 대한 예측을 요청하고 데이터를 쉽고 빠르게 변환할 수 있습니다. 데이터는 페타바이트 단위와 같이 크거나 탐색을 실행할 수 있을 만큼 몇 바이트 수준이거나 또는 그 사이일 수 있습니다.

한 번 학습 후 어디에나 배포

여러 엣지 디바이스에서 높은 추론 성능을 얻으려면 보통 각 대상 디바이스에 대해 모델을 수동으로 튜닝하는 데 몇 주에서 몇 개월이 요구됩니다. 모든 하드웨어 구성에는 고유한 기능과 제한 사항이 있기 때문입니다. Amazon SageMaker Neo를 사용하면 기계 학습 모델이 한 번 학습하면 클라우드와 엣지 어디서나 이를 배포할 수 있습니다.

SageMaker Neo는 기계 학습을 통해 학습된 모델을 자동으로 최적화하여 대상 배포 환경에 대한 정확성을 떨어뜨리지 않고도 메모리 사용 공간의 1/10 미만을 소비하고도 최대 2배 더 빠르게 실행할 수 있습니다. MXNet, TensorFlow, PyTorch 또는 XGBoost로 구축되고 SageMaker로 학습된 기계 학습 모델에서 시작합니다. 그리고 모델을 배포하려는 대상 하드웨어 플랫폼을 선택합니다. 한 번만 클릭하면 SageMaker Neo에서 학습된 모델을 실행 파일로 컴파일합니다. 컴파일러는 신경망을 사용하여 모델이 대상 하드웨어 플랫폼에서 가장 효율적으로 실행되게 하는 특정 성능 최적화를 모두 검색하고 적용합니다. 이제 모델을 배포하여 클라우드나 엣지에서 예측을 시작할 수 있습니다. AWS IoT Greengrass를 사용하면 로컬 컴퓨팅 및 ML 추론 기능을 엣지로 가져올 수 있습니다.

편리한 엣지 배포를 위해 Greengrass는 Neo 최적화 모델을 지원하므로 무선 업데이트를 통해 엣지에 바로 모델을 배포할 수 있습니다. Neo는 Apache 소프트웨어 사용권에 따라 Neo-AI 프로젝트 형태의 오픈 소스 코드로 사용할 수도 있습니다. 따라서 개발자가 다양한 디바이스와 애플리케이션별로 소프트웨어를 사용자 지정할 수 있습니다.

2배

성능

1/10

원래 프레임워크 크기

Kubernetes와 통합

Kubernetes는 컨테이너식 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템입니다. 많은 고객이 기계 학습을 위해 Amazon SageMaker의 완벽한 관리 기능을 사용하려고 하지만 플랫폼 및 인프라 팀은 오케스트레이션과 파이프라인 관리를 위해 Kubernetes를 계속 사용하려고 합니다. SageMaker에서는 Kubernetes 사용자가 SageMaker-Kubeflow 연산 및 파이프라인을 통해 SageMaker에서 모델을 학습 및 배포시킬 수 있도록 지원하여 이러한 요구 사항을 해결합니다. Kubernetes 사용자는 해당 연산자 및 파이프라인을 통해 기본적으로 Kubeflow에서 완전관리형 SageMaker ML 도구 및 엔진에 액세스할 수 있습니다. 그러면 Kubernetes에서 ML 인프라를 수동으로 관리 및 최적화하지 않아도 되며, 동시에 Kubernetes에서 전반적인 오케스트레인션을 계속 제어할 수 있습니다. Kubernetes용 SageMaker 연산자 및 파이프라인을 사용하면 워크로드를 마이그레이션하지 않고도 기계 학습에 대한 완전관리형 서비스의 이점을 얻을 수 있습니다.

학습을 넘어선 데이터 처리

실제 ML 워크로드에서는 보통 학습 및 예측보다 더 많은 기능이 요구됩니다. 데이터를 사전 및 사후에 처리해야 하고, 때로는 여러 단계를 거쳐야 합니다. 원시 데이터에서 예측을 제공하기 위해 협업해야 하는 일련의 알고리즘을 사용하여 학습과 배포를 수행해야 할 수도 있습니다. SageMaker를 사용하면 원시 입력 데이터를 전달하고 실시간 및 배치 추론 요청에서 사전 처리, 예측 및 사후 처리를 실행할 수 있도록 추론 파이프라인을 배포할 수 있습니다. 추론 파이프라인은 기계 학습 프레임워크, 내장된 알고리즘 또는 Amazon SageMaker에서 사용할 수 있는 사용자 지정 컨테이너로 구성될 수 있습니다. Amazon SageMaker의 SparkML 및 Scikit-learen 프레임워크 컨테이너에서 제공하는 기능 변환기 제품군을 사용하여 기능 데이터 처리 및 기능 엔지니어링 파이프라인을 구축하고, 이를 추론 파이프라인의 일부로 배포하여 데이터 처리 코드를 재사용하고 기계 학습 프로세스를 보다 쉽게 관리할 수 있습니다.

다중 모델 엔드포인트

더 많은 회사가 개별 사용자 데이터에 기반한 기계 학습 모델을 학습하고 있습니다. 예를 들어, 음악 스트리밍 서비스의 경우 맞춤화된 추천 음악을 제공하도록 각 청취자의 음악 재생 기록을 바탕으로 사용자 지정 모델을 학습하거나, 택시 서비스의 경우 승차자의 대기 시간을 예측하기 위해 각 도시의 교통 상황 패턴을 바탕으로 사용자 지정 모델을 학습합니다. 각 사용 사례에 대한 사용자 지정 ML 모델을 구축하면 추론 정확성을 높일 수 있지만, 모델의 배포 및 관리 비용도 상당히 증가합니다. 모든 모델에 동일한 비율로 액세스하지 않지만 여전히 항상 사용 가능해야 하기 때문에 이러한 상황은 더욱 문제가 되고 있습니다.

Amazon SageMaker 다중 모델 엔드포인트에서는 많은 수의 사용자 지정 기계 학습 모델을 배포하는 확장 가능하고 비용 효율적인 방법을 제공합니다. SageMaker 다중 모델 엔드포인트를 사용하면 단일 엔드포인트에서 한 번의 클릭으로 여러 모델을 배포하고 단일 지원 컨테이너를 사용하여 지원할 수 있습니다. 인스턴스 유형, 원하는 최대 수 및 최소 수만 지정하면 나머지는 SageMaker가 처리합니다. SageMaker가 인스턴스를 시작하고 모델을 배포하며 애플리케이션에 대한 안전한 HTTPS 엔드포인트를 설정합니다. 짧은 지연 시간, 높은 처리량 추론을 달성하기 위해서 애플리케이션은 대상 모델과 함께 이 엔드포인트에 대한 API 호출만 포함하면 됩니다.

ML 모델을 실험에서 프로덕션으로 이동

SageMaker를 사용하여 ML 모델을 프로덕션에 배포하는 방법 알아보기

Amazon SageMaker를 활용하여 학습된 Keras 또는 TensorFlow 모델 배포

Amazon SageMaker를 사용하여 학습된 Keras 또는 TensorFlow를 배포하는 방법 알아보기

Amazon SageMaker 사용자 지정 ML 모델 자동화

GitHub에서 이러한 예에 따라 사용자 지정 ML 모델을 구축, 학습 및 배포하는 작업을 자동화합니다.