개요
기계 학습 운영(MLOps) 워크로드 오케스트레이터는 ML 모델 배포를 간소화하고 확장성, 신뢰성 및 효율성에 대한 모범 사례를 적용합니다. 이 AWS 솔루션은 AWS ML 서비스 및 서드 파티 서비스에서 ML 파이프라인을 관리하기 위한 표준 인터페이스를 제공하는 확장 가능한 프레임워크입니다.
이 솔루션에는 AWS CloudFormation 템플릿이 포함됩니다. 이 템플릿을 사용하면 모델 훈련, 사전 훈련된 모델(Bring Your Own Model 또는 BYOM이라고도 함) 업로드, 파이프라인 오케스트레이션 구성 및 파이프라인 운영 모니터링이 가능합니다. 이 솔루션을 구현하면 팀이 대규모로 성공적인 프로세스를 반복하면서 민첩성과 효율성을 높일 수 있습니다.
장점
API 직접 호출 또는 Amazon S3 버킷을 통해 사전 구성된 파이프라인을 시작합니다.
Amazon SageMaker BYOM을 사용하여 모델 모니터링을 자동화하고 드리프트 탐지를 통해 서버리스 추론 엔드포인트를 제공합니다.
Amazon SageMaker Model Dashboard를 사용하여 모델, 엔드포인트, 모델 카드 및 배치 변환 작업을 비롯한 모든 Amazon SageMaker 리소스를 보고 검색하고 탐색할 수 있습니다.
기술 세부 정보
구현 가이드 및 함께 제공되는 AWS CloudFormation 템플릿을 사용하여 이 아키텍처를 자동으로 배포할 수 있습니다. 다양한 사용 사례와 비즈니스 요구 사항을 지원하기 위해 이 솔루션은 2가지 AWS CloudFormation 템플릿을 제공합니다.
- 단일 계정 템플릿을 사용하여 동일한 AWS 계정에 솔루션의 파이프라인을 모두 배포합니다. 이 옵션은 실험, 개발 및/또는 소규모 프로덕션 워크로드에 적합합니다.
- 다중 계정 템플릿을 사용하여 여러 AWS 계정에서 다중 환경(예: 개발, 스테이징 및 프로덕션)을 프로비저닝합니다. 그러면 기계 학습 파이프라인 배포의 보안 및 제어를 늘리고 거버넌스를 개선하며, 안전한 실험과 더 빠른 혁신을 제공하고, 프로덕션 데이터 및 워크로드의 보안 및 가용성을 유지하여 비즈니스 연속성을 보장하는 데 도움이 됩니다.
-
옵션 1 - 단일 계정 배포
-
옵션 2 - 다중 계정 배포
-
옵션 1 - 단일 계정 배포
-
1단계
오케스트레이터(DevOps 엔지니어 또는 다른 유형의 사용자)는 AWS 계정에서 이 솔루션을 시작하고 선호하는 옵션을 선택합니다. 예를 들어 Amazon SageMaker Model Registry 또는 기존 Amazon Simple Storage Service(Amazon S3) 버킷을 사용할 수 있습니다.
2단계
오케스트레이터는 필요한 자산(예: 모델 아티팩트, 훈련 데이터 또는 사용자 지정 알고리즘 zip 파일)을 Amazon S3 자산 버킷에 업로드합니다. SageMaker Model Registry를 사용하는 경우 오케스트레이터(또는 자동화된 파이프라인)가 모델 레지스트리에 모델을 등록해야 합니다.
3a단계
단일 계정 AWS CodePipeline 인스턴스는 Amazon API Gateway에 대한 API 직접 호출을 전송하거나 mlops-config.json 파일을 구성 Amazon S3 버킷에 업로드하여 프로비저닝됩니다.
3b단계
파이프라인 유형에 따라 AWS Lambda 오케스트레이터 함수는 API 직접 호출 본문 또는 mlops-config.json 파일을 사용하여 대상 CloudFormation 템플릿과 해당 파라미터 및 구성을 패키징합니다. 그러면 오케스트레이터는 이 패키징된 템플릿과 구성을 CodePipeline 인스턴스의 소스 스테이지로 사용합니다.
4단계
DeployPipeline 스테이지는 패키징된 CloudFormation 템플릿 및 해당 파라미터 또는 구성을 가져오고 대상 파이프라인을 동일한 계정에 배포합니다.
5단계
대상 파이프라인을 프로비저닝한 후에 사용자가 해당 기능에 액세스할 수 있습니다. Amazon Simple Notification Service(SNS) 알림이 솔루션의 시작 파라미터에 제공된 이메일로 전송됩니다. -
옵션 2 - 다중 계정 배포
-
1단계
오케스트레이터(오케스트레이터 계정에 대한 관리 액세스 권한이 있는 DevOps 엔지니어 또는 다른 사용자)는 AWS Organizations 정보(예: 개발, 스테이징 및 프로덕션 조직 단위 ID와 계정 번호)를 제공합니다.
또한 원하는 옵션(예: SageMaker Model Registry 사용 또는 기존 Amazon S3 버킷 제공)을 지정하고 AWS 계정에서 해당 솔루션을 시작합니다.
2단계
오케스트레이터는 대상 파이프라인에 필요한 자산(예: 모델 아티팩트, 훈련 데이터 및/또는 사용자 지정 알고리즘 zip 파일)을 오케스트레이터의 AWS 계정의 Amazon S3 자산 버킷에 업로드합니다. SageMaker Model Registry를 사용하는 경우 오케스트레이터(또는 자동화된 파이프라인)는 모델 레지스트리에 모델을 등록해야 합니다.
3a단계
다중 계정 CodePipeline 인스턴스는 API 직접 호출을 API Gateway로 전송하거나 mlops-config.json 파일을 구성 Amazon S3 버킷에 업로드하여 프로비저닝됩니다.3b단계
파이프라인 유형에 따라 Lambda 오케스트레이터 함수는 대상을 패키징합니다.
API 직접 호출 본문 또는 mlops-config.json 파일을 사용한 CloudFormation 템플릿과 해당 파라미터 및 구성 그러면 오케스트레이터는 이 패키징된 템플릿과 구성을 CodePipeline 인스턴스의 소스 스테이지로 사용합니다.
4단계
DeployDev 스테이지는 패키징된 CloudFormation 템플릿 및 해당 파라미터 또는 구성을 가져오고 대상 파이프라인을 개발 계정에 배포합니다.
5단계
대상 파이프라인이 개발 계정에 프로비저닝된 후에 개발자는 파이프라인에서 반복할 수 있습니다.6단계
개발이 완료되면 오케스트레이터 또는 다른 권한이 있는 계정은 DeployStaging 작업을 수동으로 승인하여 다음 스테이지인 DeployStaging으로 진행합니다.
7단계
DeployStaging 스테이지는 스테이징 구성을 사용하여 대상 파이프라인을 스테이징 계정에 배포합니다.8단계
테스터는 배포된 파이프라인에서 서로 다른 테스트를 수행합니다.9단계
파이프라인이 품질 테스트에 통과하면 오케스트레이터는 DeployProd 작업을 승인할 수 있습니다.10단계
DeployProd 스테이지는 대상 파이프라인(프로덕션 구성 포함)을 프로덕션 계정에 배포합니다.11단계
대상 파이프라인이 프로덕션에서 활성화됩니다. Amazon SNS 알림이 솔루션의 시작 파라미터에 제공된 이메일로 전송됩니다.
관련 콘텐츠
Cognizant는 AWS 파트너 솔루션 아키텍트 및 AWS Solutions Library 팀과 협업하여 MLOps Workload Orchestrator 솔루션을 기반으로 MLOps Model Lifecycle Orchestrator 솔루션을 구축했습니다.