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