빠르게 진화하는 인공 지능(AI) 및 기계 학습(ML) 환경에서 조직을 위한 기계 학습 운영(MLOps) 플랫폼을 구축하는 것은 모델 성능에 대한 요구 사항을 충족하는 동시에 데이터 과학 실험과 배포 간의 격차를 원활하게 메우는 데 필수적입니다. 보안 및 규정 준수.
규제 및 규정 준수 요구 사항을 충족하기 위해 이러한 플랫폼을 설계할 때 주요 요구 사항은 다음과 같습니다.
- 데이터 드리프트 해결
- 모델 성능 모니터링
- 자동 모델 재학습 촉진
- 모델 승인 프로세스 제공
- 모델을 안전한 환경에 보관
이 게시물에서는 AWS 서비스와 타사 도구 세트를 함께 사용하면서 이러한 요구 사항을 해결하기 위해 MLOps 프레임워크를 생성하는 방법을 보여줍니다. 이 솔루션에는 자동화된 모델 재훈련, 배치 추론 및 모니터링을 갖춘 다중 환경 설정이 수반됩니다. Amazon SageMaker 모델 모니터, 모델 버전 관리 SageMaker 모델 레지스트리, 그리고 CI/CD 파이프라인을 사용하여 환경 전반에 걸쳐 ML 코드 및 파이프라인의 승격을 촉진합니다. 아마존 세이지 메이커, 아마존 이벤트 브리지, 아마존 단순 알림 서비스 (아마존 S3), HashiCorp 테라폼, GitHub의및 젠킨스 CI/CD. 우리는 훈련된 유방조영술 종괴 병변의 심각도(양성 또는 악성)를 예측하는 모델을 구축합니다. XGBoost 알고리즘 공개적으로 사용 가능한 UCI 유방 조영술 질량 데이터 세트를 만들고 MLOps 프레임워크를 사용하여 배포합니다. 코드가 포함된 전체 지침은 다음에서 확인할 수 있습니다. GitHub 저장소.
솔루션 개요
다음 아키텍처 다이어그램은 다음과 같은 주요 구성 요소가 포함된 MLOps 프레임워크의 개요를 보여줍니다.
- 다중 계정 전략 – 두 개의 서로 다른 환경(dev 및 prod)이 AWS Well-Architected 모범 사례에 따라 두 개의 서로 다른 AWS 계정에 설정되고 세 번째 계정이 중앙 모델 레지스트리에 설정됩니다.
- 개발 환경 – 어디에 Amazon SageMaker Studio 도메인 모델을 더 높은 환경으로 승격할 준비가 되기 전에 모델 개발, 모델 훈련, ML 파이프라인 테스트(훈련 및 추론)를 허용하도록 설정됩니다.
- 프로덕션 환경 – 개발팀의 ML 파이프라인이 첫 번째 단계로 승격되고 시간이 지남에 따라 예약 및 모니터링됩니다.
- 중앙 모델 레지스트리 - Amazon SageMaker 모델 레지스트리 개발 및 프로덕션 환경에서 생성된 모델 버전을 추적하기 위해 별도의 AWS 계정에 설정됩니다.
- CI/CD 및 소스 제어 – 환경 전반에 걸친 ML 파이프라인 배포는 GitHub를 통해 처리되는 버전 제어와 함께 Jenkins를 사용하여 설정된 CI/CD를 통해 처리됩니다. 해당 환경에 병합된 코드 변경 사항 git 분기는 CI/CD 워크플로를 트리거하여 지정된 대상 환경을 적절하게 변경합니다.
- 일괄 예측 모델 모니터링으로 – 다음으로 구축된 추론 파이프라인 Amazon SageMaker 파이프 라인 SageMaker 모델 모니터를 사용하여 데이터 드리프트를 감지하는 모델 모니터링과 함께 예측을 생성하기 위해 예약된 방식으로 실행됩니다.
- 자동화된 재교육 메커니즘 – SageMaker 파이프라인으로 구축된 훈련 파이프라인은 추론 파이프라인에서 데이터 드리프트가 감지될 때마다 트리거됩니다. 학습된 모델은 모델 승인자의 승인을 받기 위해 중앙 모델 레지스트리에 등록됩니다. 승인되면 업데이트된 모델 버전이 추론 파이프라인을 통해 예측을 생성하는 데 사용됩니다.
- 코드형 인프라 – 다음을 사용하여 생성된 코드형 인프라(IaC) HashiCorp 테라폼, EventBridge를 사용하여 추론 파이프라인의 스케줄링을 지원하고, 이를 기반으로 기차 파이프라인을 트리거합니다. EventBridge 규칙 다음을 사용하여 알림을 보냅니다. 아마존 단순 알림 서비스 (아마존 SNS) 주제.
MLOps 워크플로에는 다음 단계가 포함됩니다.
- 개발 계정에서 SageMaker Studio 도메인에 액세스하고, GitHub 리포지토리를 복제하고, 제공된 샘플 모델을 사용하여 모델 개발 프로세스를 진행하고, 학습 및 추론 파이프라인을 생성합니다.
- 훈련된 모델 버전에 대한 모델 아티팩트를 생성하고 중앙 모델 레지스트리 계정의 SageMaker 모델 레지스트리에 모델을 등록하는 개발 계정에서 기차 파이프라인을 실행합니다.
- 중앙 모델 레지스트리 계정의 SageMaker 모델 레지스트리에서 모델을 승인합니다.
- 코드(학습 및 추론 파이프라인, EventBridge 일정, EventBridge 규칙 및 SNS 주제를 생성하기 위한 Terraform IaC 코드)를 GitHub 저장소의 기능 분기에 푸시합니다. 코드를 GitHub 저장소의 기본 분기에 병합하기 위한 풀 요청을 생성합니다.
- GitHub 리포지토리로 설정된 Jenkins CI/CD 파이프라인을 트리거합니다. CI/CD 파이프라인은 코드를 prod 계정에 배포하여 Terraform 코드와 함께 열차 및 추론 파이프라인을 생성하여 EventBridge 일정, EventBridge 규칙 및 SNS 주제를 프로비저닝합니다.
- 추론 파이프라인은 매일 실행되도록 예약된 반면 학습 파이프라인은 추론 파이프라인에서 데이터 드리프트가 감지될 때마다 실행되도록 설정됩니다.
- 학습 또는 추론 파이프라인에 오류가 발생할 때마다 SNS 주제를 통해 알림이 전송됩니다.
사전 조건
이 솔루션의 경우 다음 전제 조건이 있어야 합니다.
- XNUMX개의 AWS 계정(dev, prod 및 중앙 모델 레지스트리 계정)
- 세 개의 AWS 계정 각각에 설정된 SageMaker Studio 도메인(참조: Amazon SageMaker Studio에 온보드 또는 비디오보기 Amazon SageMaker Studio에 빠르게 온 보딩 설정 지침을 보려면)
- AWS에 관리자 권한이 설치된 Jenkins(Jenkins 2.401.1 사용)
- Jenkins 서버에 Terraform 버전 1.5.5 이상이 설치되어 있음
이 게시물을 위해 우리는 us-east-1
솔루션을 배포할 지역입니다.
dev 및 prod 계정에 KMS 키 프로비저닝
우리의 첫 번째 단계는 AWS 키 관리 서비스 (AWS KMS) dev 및 prod 계정의 키입니다.
dev 계정에 KMS 키를 생성하고 prod 계정에 대한 액세스 권한을 부여하세요.
개발자 계정에서 KMS 키를 생성하려면 다음 단계를 완료하세요.
- AWS KMS 콘솔에서 다음을 선택합니다. 고객 관리 키 탐색 창에서
- 왼쪽 메뉴에서 키 생성.
- 럭셔리 키 타입, 고르다 대칭.
- 럭셔리 키 사용법, 고르다 암호화 및 해독.
- 왼쪽 메뉴에서 다음 보기.
- 개발자 계정에 프로비저닝된 KMS 키에 대한 액세스 권한을 프로덕션 계정에 부여하려면 프로덕션 계정 번호를 입력하세요. 개발자 계정에서 모델을 처음 훈련할 때 모델 아티팩트가 중앙 모델 레지스트리 계정의 S3 버킷에 기록되기 전에 KMS 키로 암호화되기 때문에 이는 필수 단계입니다. 모델 아티팩트를 해독하고 추론 파이프라인을 실행하려면 프로덕션 계정이 KMS 키에 액세스해야 합니다.
- 왼쪽 메뉴에서 다음 보기 키 생성을 완료하세요.
키가 프로비저닝되면 AWS KMS 콘솔에 표시되어야 합니다.
prod 계정에서 KMS 키 생성
prod 계정에서 고객 관리형 KMS 키를 생성하려면 이전 섹션과 동일한 단계를 수행합니다. KMS 키를 다른 계정과 공유하는 단계를 건너뛸 수 있습니다.
중앙 모델 레지스트리 계정에서 모델 아티팩트 S3 버킷 설정
문자열을 사용하여 원하는 S3 버킷을 생성합니다. sagemaker
중앙 모델 레지스트리 계정의 버킷 이름의 일부로 명명 규칙을 적용하고, S3 버킷의 버킷 정책을 업데이트하여 dev 및 prod 계정 모두에서 모델 아티팩트를 S3 버킷에 읽고 쓸 수 있는 권한을 부여합니다.
다음 코드는 S3 버킷에서 업데이트할 버킷 정책입니다.
AWS 계정에서 IAM 역할 설정
다음 단계는 설정입니다. AWS 자격 증명 및 액세스 관리 (IAM) 권한이 있는 AWS 계정의 역할 AWS 람다, SageMaker 및 Jenkins.
Lambda 실행 역할
설정 Lambda 실행 역할 dev 및 prod 계정에서 Lambda 함수 실행의 일부로 사용됩니다. SageMaker 파이프라인 Lambda 단계. 이 단계는 추론 파이프라인에서 실행되어 추론이 생성되는 최신 승인 모델을 가져옵니다. 명명 규칙을 사용하여 dev 및 prod 계정에서 IAM 역할을 생성합니다. arn:aws:iam::<account-id>:role/lambda-sagemaker-role
다음 IAM 정책을 연결합니다.
- 정책 1 – 이름이 인라인 정책을 생성합니다.
cross-account-model-registry-access
, 중앙 계정의 모델 레지스트리에 설정된 모델 패키지에 대한 액세스를 제공합니다. - 정책 2 - 붙이다 AmazonSageMaker 전체 액세스, 이는 AWS 관리형 정책 SageMaker에 대한 전체 액세스 권한을 부여합니다. 또한 다음과 같은 관련 서비스에 대한 선택적인 액세스를 제공합니다. AWS 애플리케이션 자동 확장, 아마존 S3, Amazon Elastic Container Registry (Amazon ECR) 및 Amazon CloudWatch 로그.
- 정책 3 - 붙이다 AWSLambda_FullAccess이는 Lambda, Lambda 콘솔 기능 및 기타 관련 AWS 서비스에 대한 전체 액세스 권한을 부여하는 AWS 관리형 정책입니다.
- 정책 4 – IAM 역할에 대해 다음 IAM 신뢰 정책을 사용합니다.
SageMaker 실행 역할
dev 및 prod 계정에 설정된 SageMaker Studio 도메인에는 각각 연결된 실행 역할이 있어야 하며, 이는 다음에서 찾을 수 있습니다. 도메인 설정 다음 스크린샷에 표시된 것처럼 도메인 세부정보 페이지의 탭을 탭합니다. 이 역할은 SageMaker Studio 도메인 내에서 훈련 작업, 처리 작업 등을 실행하는 데 사용됩니다.
두 계정의 SageMaker 실행 역할에 다음 정책을 추가합니다.
- 정책 1 – 이름이 인라인 정책을 생성합니다.
cross-account-model-artifacts-s3-bucket-access
, 이는 모델 아티팩트를 저장하는 중앙 모델 레지스트리 계정의 S3 버킷에 대한 액세스를 제공합니다. - 정책 2 – 이름이 인라인 정책을 생성합니다.
cross-account-model-registry-access
, 중앙 모델 레지스트리 계정의 모델 레지스트리에 있는 모델 패키지에 대한 액세스를 제공합니다. - 정책 3 – 이름이 인라인 정책을 생성합니다.
kms-key-access-policy
, 이전 단계에서 생성된 KMS 키에 대한 액세스를 제공합니다. 정책이 생성되는 계정 ID와 해당 계정에서 생성된 KMS 키 ID를 제공합니다. - 정책 4 - 붙이다 AmazonSageMaker 전체 액세스, 이는 AWS 관리형 정책 SageMaker에 대한 전체 액세스 권한을 부여하고 관련 서비스에 대한 액세스 권한을 선택합니다.
- 정책 5 - 붙이다 AWSLambda_FullAccess이는 Lambda, Lambda 콘솔 기능 및 기타 관련 AWS 서비스에 대한 전체 액세스 권한을 부여하는 AWS 관리형 정책입니다.
- 정책 6 - 붙이다 CloudWatch이벤트전체액세스은 CloudWatch 이벤트에 대한 전체 액세스 권한을 부여하는 AWS 관리형 정책입니다.
- 정책 7 – SageMaker 실행 IAM 역할에 대해 다음 IAM 신뢰 정책을 추가합니다.
- 정책 8(prod 계정의 SageMaker 실행 역할에만 해당) – 이름이 인라인 정책을 생성합니다.
cross-account-kms-key-access-policy
, 개발자 계정에서 생성된 KMS 키에 대한 액세스를 제공합니다. 이는 추론 파이프라인이 dev 계정에서 모델의 첫 번째 버전이 생성될 때 dev 계정의 KMS 키를 사용하여 모델 아티팩트가 암호화되는 중앙 모델 레지스트리 계정에 저장된 모델 아티팩트를 읽는 데 필요합니다.
교차 계정 Jenkins 역할
다음과 같은 IAM 역할을 설정합니다. cross-account-jenkins-role
Jenkins가 ML 파이프라인과 해당 인프라를 prod 계정에 배포하는 것으로 가정할 prod 계정.
역할에 다음 관리형 IAM 정책을 추가합니다.
CloudWatchFullAccess
AmazonS3FullAccess
AmazonSNSFullAccess
AmazonSageMakerFullAccess
AmazonEventBridgeFullAccess
AWSLambda_FullAccess
Jenkins 서버를 호스팅하는 AWS 계정에 권한을 부여하려면 역할에 대한 신뢰 관계를 업데이트합니다.
Jenkins 서버와 연결된 IAM 역할에 대한 권한 업데이트
Jenkins가 AWS에 설정되었다고 가정하고 Jenkins와 연결된 IAM 역할을 업데이트하여 다음 정책을 추가하면 Jenkins가 prod 계정에 리소스를 배포할 수 있는 액세스 권한을 부여합니다.
- 정책 1 – 다음과 같은 인라인 정책을 생성합니다.
assume-production-role-policy
: - 정책 2 – 첨부
CloudWatchFullAccess
관리형 IAM 정책.
중앙 모델 레지스트리 계정에 모델 패키지 그룹 설정
중앙 모델 레지스트리 계정의 SageMaker Studio 도메인에서 다음과 같은 모델 패키지 그룹을 생성합니다. mammo-severity-model-package
다음 코드 조각을 사용합니다(Jupyter 노트북을 사용하여 실행할 수 있음).
dev 및 prod 계정의 IAM 역할에 대한 모델 패키지에 대한 액세스 설정
모델 패키지 내에서 모델 버전을 등록할 수 있도록 dev 및 prod 계정에서 생성된 SageMaker 실행 역할에 대한 액세스 권한을 프로비저닝합니다. mammo-severity-model-package
두 계정의 중앙 모델 레지스트리에 있습니다. 중앙 모델 레지스트리 계정의 SageMaker Studio 도메인에서 Jupyter 노트북에서 다음 코드를 실행합니다.
젠킨스 설정
이 섹션에서는 Jenkins CI/CD 파이프라인을 통해 prod 계정에 ML 파이프라인과 해당 Terraform 인프라를 생성하도록 Jenkins를 구성합니다.
- CloudWatch 콘솔에서 다음과 같은 로그 그룹을 생성합니다.
jenkins-log
Jenkins가 CI/CD 파이프라인에서 로그를 푸시할 prod 계정 내에서. 로그 그룹은 Jenkins 서버가 설정된 지역과 동일한 지역에 생성되어야 합니다. - 다음 플러그인을 설치하세요 Jenkins 서버에서:
- 교차 계정 IAM 역할을 사용하여 Jenkins에서 AWS 자격 증명을 설정합니다(
cross-account-jenkins-role
)는 prod 계정에 프로비저닝됩니다. - 럭셔리 시스템 구성선택한다.
AWS.
- 이전에 생성한 자격 증명과 CloudWatch 로그 그룹을 제공합니다.
- Jenkins 내에서 GitHub 자격 증명을 설정합니다.
- Jenkins에서 새 프로젝트를 만듭니다.
- 프로젝트 이름을 입력하고 선택 관로.
- 에 일반 탭에서 GitHub 프로젝트 그리고 갈래로 들어가세요 GitHub 저장소 URL.
- 선택 이 프로젝트는 매개변수화되어 있습니다..
- 에 매개변수 추가 메뉴, 선택 문자열 매개변수.
- 럭셔리 성함, 입력
prodAccount
. - 럭셔리 기본값, prod 계정 ID를 입력하세요.
- $XNUMX Million 미만 고급 프로젝트 옵션에 대한 정의, 고르다 SCM의 파이프라인 스크립트.
- 럭셔리 SCM선택한다.
힘내.
- 럭셔리 저장소 URL, 갈래를 입력하십시오 GitHub 저장소 URL.
- 럭셔리 신임장, Jenkins에 저장된 GitHub 자격 증명을 입력하세요.
- 엔터 버튼
main
FBI 증오 범죄 보고서 구축할 지점 CI/CD 파이프라인이 트리거되는 섹션입니다. - 럭셔리 스크립트 경로, 입력
Jenkinsfile
. - 왼쪽 메뉴에서 찜하기.
Jenkins 파이프라인이 생성되어 대시보드에 표시되어야 합니다.
S3 버킷 프로비저닝, 데이터 수집 및 준비
S3 버킷 및 데이터를 설정하려면 다음 단계를 완료하세요.
- 문자열을 사용하여 원하는 S3 버킷을 생성합니다.
sagemaker
데이터 세트와 모델 아티팩트를 저장하기 위해 dev 및 prod 계정 모두에서 버킷 이름의 일부로 명명 규칙을 사용합니다. - prod 계정에서 Terraform 상태를 유지하도록 S3 버킷을 설정합니다.
- 공개적으로 사용 가능한 다운로드 및 저장 UCI 유방 조영술 질량 이전에 개발자 계정에서 생성한 S3 버킷에 데이터 세트를 추가합니다.
- 포크 및 복제 GitHub 저장소 개발자 계정의 SageMaker Studio 도메인 내. 저장소의 폴더 구조는 다음과 같습니다.
- /environments – prod 환경을 위한 구성 스크립트
- /mlops-인프라 – Terraform 코드를 사용하여 AWS 서비스를 배포하기 위한 코드
- /파이프라인 – SageMaker 파이프라인 구성 요소용 코드
- 젠킨스파일 – Jenkins CI/CD 파이프라인을 통해 배포하기 위한 스크립트
- setup.py – 필수 Python 모듈을 설치하고 run-pipeline 명령을 생성하는 데 필요합니다.
- 유방조영술-심각도-modeling.ipynb – ML 워크플로를 생성하고 실행할 수 있습니다.
- 복제된 GitHub 저장소 폴더 내에 data라는 폴더를 만들고 공개적으로 사용 가능한 복사본을 저장합니다. UCI 유방 조영술 질량 데이터 세트.
- Jupyter 노트북을 따르세요.
mammography-severity-modeling.ipynb
. - 노트북에서 다음 코드를 실행하여 데이터 세트를 전처리하고 개발자 계정의 S3 버킷에 업로드합니다.
코드는 다음 데이터 세트를 생성합니다.
-
- 데이터/mammo-train-dataset-part1.csv – 모델의 첫 번째 버전을 훈련하는 데 사용됩니다.
- 데이터/mammo-train-dataset-part2.csv – mammo-train-dataset-part1.csv 데이터 세트와 함께 모델의 두 번째 버전을 교육하는 데 사용됩니다.
- 데이터/mammo-batch-dataset.csv – 추론을 생성하는 데 사용됩니다.
- 데이터/mammo-batch-dataset-outliers.csv – 추론 파이프라인이 실패하도록 데이터 세트에 이상값을 도입합니다. 이를 통해 모델의 자동 재교육을 트리거하는 패턴을 테스트할 수 있습니다.
- 데이터세트 업로드
mammo-train-dataset-part1.csv
접두사 아래mammography-severity-model/train-dataset
, 데이터세트 업로드mammo-batch-dataset.csv
및mammo-batch-dataset-outliers.csv
접두사에mammography-severity-model/batch-dataset
개발자 계정에 생성된 S3 버킷 중: - 데이터 세트 업로드
mammo-train-dataset-part1.csv
및mammo-train-dataset-part2.csv
접두사 아래mammography-severity-model/train-dataset
Amazon S3 콘솔을 통해 prod 계정에 생성된 S3 버킷에 추가합니다. - 데이터 세트 업로드
mammo-batch-dataset.csv
및mammo-batch-dataset-outliers.csv
접두사에mammography-severity-model/batch-dataset
prod 계정의 S3 버킷 중 하나입니다.
열차 파이프라인 실행
$XNUMX Million 미만 <project-name>/pipelines/train
, 다음 Python 스크립트를 볼 수 있습니다.
- 스크립트/raw_preprocess.py – 기능 엔지니어링을 위해 SageMaker Processing과 통합
- 스크립트/evaluate_model.py – 이 경우 모델 메트릭 계산을 허용합니다.
auc_score
- train_pipeline.py – 모델 훈련 파이프라인을 위한 코드가 포함되어 있습니다.
다음 단계를 완료하십시오.
- Amazon S3에 스크립트를 업로드합니다.
- 열차 파이프라인 인스턴스를 가져옵니다.
- 기차 파이프라인을 제출하고 실행합니다.
다음 그림은 훈련 파이프라인의 성공적인 실행을 보여줍니다. 파이프라인의 마지막 단계에서는 중앙 모델 레지스트리 계정에 모델을 등록합니다.
중앙 모델 레지스트리에서 모델 승인
중앙 모델 레지스트리 계정에 로그인하고 SageMaker Studio 도메인 내의 SageMaker 모델 레지스트리에 액세스합니다. 모델 버전 상태를 승인됨으로 변경합니다.
승인되면 모델 버전에서 상태를 변경해야 합니다.
추론 파이프라인 실행(선택 사항)
이 단계는 필수는 아니지만 추론 파이프라인을 실행하여 개발자 계정에서 예측을 생성할 수 있습니다.
$XNUMX Million 미만 <project-name>/pipelines/inference
, 다음 Python 스크립트를 볼 수 있습니다.
- 스크립트/lambda_helper.py – SageMaker Pipelines Lambda 단계를 사용하여 중앙 모델 레지스트리 계정에서 승인된 최신 모델 버전을 가져옵니다.
- inference_pipeline.py – 모델 추론 파이프라인을 위한 코드가 포함되어 있습니다.
다음 단계를 완료하십시오.
- S3 버킷에 스크립트를 업로드합니다.
- 일반 배치 데이터 세트를 사용하여 추론 파이프라인 인스턴스를 가져옵니다.
- 추론 파이프라인을 제출하고 실행합니다.
다음 그림은 추론 파이프라인의 성공적인 실행을 보여줍니다. 파이프라인의 마지막 단계에서는 예측을 생성하여 S3 버킷에 저장합니다. 우리는 사용 모니터배치변환단계 일괄 변환 작업에 대한 입력을 모니터링합니다. 이상치가 있는 경우 추론 파이프라인은 실패 상태로 전환됩니다.
Jenkins 파이프라인 실행
XNUMXD덴탈의 environment/
GitHub 저장소 내의 폴더에는 prod 계정에 대한 구성 스크립트가 포함되어 있습니다. Jenkins 파이프라인을 트리거하려면 다음 단계를 완료하세요.
- 구성 스크립트 업데이트
prod.tfvars.json
이전 단계에서 생성된 리소스를 기반으로 합니다. - 업데이트되면 코드를 분기된 GitHub 저장소에 푸시하고 코드를 기본 분기에 병합합니다.
- Jenkins UI로 이동하여 다음을 선택하세요. 매개변수를 사용하여 빌드, 이전 단계에서 생성된 CI/CD 파이프라인을 트리거합니다.
빌드가 완료되고 성공하면 prod 계정에 로그인하여 SageMaker Studio 도메인 내에서 훈련 및 추론 파이프라인을 볼 수 있습니다.
또한 prod 계정의 EventBridge 콘솔에 세 가지 EventBridge 규칙이 표시됩니다.
- 추론 파이프라인 예약
- 기차 파이프라인에 실패 알림 보내기
- 추론 파이프라인이 학습 파이프라인을 트리거하지 못하는 경우 알림을 보냅니다.
마지막으로 이메일을 통해 알림을 보내는 Amazon SNS 콘솔에 SNS 알림 주제가 표시됩니다. 이러한 알림 이메일을 수락할지 확인하는 이메일을 받게 됩니다.
이상값 없는 배치 데이터 세트를 사용하여 추론 파이프라인 테스트
추론 파이프라인이 prod 계정에서 예상대로 작동하는지 테스트하려면 prod 계정에 로그인하고 이상값 없이 배치 데이터 세트를 사용하여 추론 파이프라인을 트리거할 수 있습니다.
prod 계정의 SageMaker Studio 도메인에 있는 SageMaker Pipelines 콘솔을 통해 파이프라인을 실행합니다. transform_input
이상값이 없는 데이터 세트의 S3 URI입니다(s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset.csv
).
추론 파이프라인이 성공하고 예측을 다시 S3 버킷에 기록합니다.
이상값이 있는 일괄 데이터 세트를 사용하여 추론 파이프라인 테스트
이상값이 있는 배치 데이터세트를 사용하여 추론 파이프라인을 실행하여 자동화된 재학습 메커니즘이 예상대로 작동하는지 확인할 수 있습니다.
prod 계정의 SageMaker Studio 도메인에 있는 SageMaker Pipelines 콘솔을 통해 파이프라인을 실행합니다. transform_input
이상값이 있는 데이터 세트의 S3 URI입니다(s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset-outliers.csv
).
추론 파이프라인이 예상대로 실패하여 EventBridge 규칙이 트리거되고, 결과적으로 열차 파이프라인이 트리거됩니다.
잠시 후 SageMaker Pipelines 콘솔에서 두 개의 서로 다른 기차 데이터 세트(mammo-train-dataset-part1.csv
및 mammo-train-dataset-part2.csv
)을 S3 버킷에 업로드하여 모델을 재교육합니다.
SNS 주제를 구독한 이메일로 전송된 알림도 확인할 수 있습니다.
업데이트된 모델 버전을 사용하려면 중앙 모델 레지스트리 계정에 로그인하고 예약된 EventBridge 규칙을 통해 트리거된 추론 파이프라인의 다음 실행 중에 선택될 모델 버전을 승인합니다.
학습 및 추론 파이프라인은 정적 데이터 세트 URL을 사용하지만, 업데이트된 데이터 세트를 사용하여 실제 시나리오에서 모델을 재교육하고 예측을 생성하기 위해 데이터 세트 URL을 학습 및 추론 파이프라인에 동적 변수로 전달하도록 할 수 있습니다.
정리
향후 요금이 발생하지 않도록 하려면 다음 단계를 완료하십시오.
- 모든 AWS 계정에서 SageMaker Studio 도메인을 제거합니다.
- prod 계정에서 Terraform을 통해 설정된 S3 버킷, IAM 역할, EventBridge 규칙 및 SNS 주제를 포함하여 SageMaker 외부에서 생성된 모든 리소스를 삭제합니다.
- 다음을 사용하여 계정 전체에 생성된 SageMaker 파이프라인을 삭제합니다. AWS 명령 줄 인터페이스 (AWS CLI).
결론
조직은 다양한 기능 영역과 팀 간의 협업을 지원하기 위해 전사적 도구 세트를 조정해야 하는 경우가 많습니다. 이러한 협업을 통해 MLOps 플랫폼은 진화하는 비즈니스 요구 사항에 적응하고 팀 전체에서 ML 채택을 가속화할 수 있습니다. 이 게시물에서는 다중 환경 설정에서 MLOps 프레임워크를 생성하여 Amazon SageMaker 모델 모니터를 통한 자동 모델 재교육, 배치 추론 및 모니터링, SageMaker 모델 레지스트리를 통한 모델 버전 관리, 환경 전반에 걸쳐 ML 코드 및 파이프라인 승격을 지원하는 방법을 설명했습니다. CI/CD 파이프라인. 우리는 AWS 서비스와 타사 도구 세트를 결합하여 이 솔루션을 선보였습니다. 이 솔루션 구현에 대한 지침은 다음을 참조하세요. GitHub 저장소. 자체 데이터 소스와 모델링 프레임워크를 가져와 이 솔루션을 확장할 수도 있습니다.
저자에 관하여
가야트리 가나코타 AWS Professional Services의 선임 기계 학습 엔지니어입니다. 그녀는 다양한 도메인에서 AI/ML 솔루션을 개발, 배포 및 설명하는 데 열정적입니다. 이 역할 이전에 그녀는 금융 및 소매 분야의 최고 글로벌 기업에서 데이터 과학자 및 ML 엔지니어로 여러 이니셔티브를 주도했습니다. 그녀는 볼더에 있는 콜로라도 대학교에서 데이터 과학 전문 컴퓨터 과학 석사 학위를 취득했습니다.
수니타 코파르 AWS Professional Services의 수석 데이터 레이크 설계자입니다. 그녀는 빅 데이터를 처리하는 고객의 문제점을 해결하고 장기적으로 확장 가능한 솔루션을 제공하는 데 열정을 쏟고 있습니다. 이 역할을 맡기 전에 그녀는 인터넷, 통신 및 자동차 분야에서 제품을 개발했으며 AWS 고객이었습니다. 그녀는 캘리포니아 대학교 리버사이드에서 데이터 과학 석사 학위를 취득했습니다.
사스와타 대시 AWS Professional Services의 DevOps 컨설턴트입니다. 그녀는 의료, 생명과학, 항공, 제조 전반에 걸쳐 고객과 협력해 왔습니다. 그녀는 자동화에 관한 모든 것에 열정을 갖고 있으며 AWS에서 엔터프라이즈 규모 고객 솔루션을 설계하고 구축하는 데 있어 포괄적인 경험을 보유하고 있습니다. 직장 밖에서 그녀는 사진과 일출 포착에 대한 열정을 추구합니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/promote-pipelines-in-a-multi-environment-setup-using-amazon-sagemaker-model-registry-hashicorp-terraform-github-and-jenkins-ci-cd/
- :있다
- :이다
- :아니
- :어디
- $UP
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 17
- 19
- 23
- 27
- 31
- 320
- 7
- 8
- 9
- a
- 소개
- 가속하다
- 수락
- ACCESS
- 계정
- 계정
- 가로질러
- 동작
- 각색하다
- 더하다
- 주소
- 관리
- 양자
- 후
- 나이
- AI
- 일직선으로하다
- All
- 수
- 수
- 따라
- 또한
- 아마존
- 아마존 세이지 메이커
- Amazon Web Services
- an
- 및
- 다른
- 어떤
- 어플리케이션
- 적당한
- 승인
- 인가 된
- 아키텍처
- 있군요
- 지역
- 약
- 인조의
- 인공 지능
- 인공 지능(AI)
- AS
- 질문
- 관련
- 취하다
- 붙이다
- 자동
- 자동화
- Automatic
- 자동화
- 자동차
- 가능
- 비행
- 피하기
- AWS
- AWS 고객
- AWS 전문 서비스
- 뒤로
- 기반으로
- 기초
- BE
- 때문에
- 된
- 전에
- 존재
- BEST
- 모범 사례
- 사이에
- 큰
- 빅 데이터
- 두
- 지사
- 가교
- 가져
- 빌드
- 건물
- 내장
- 사업
- 비자 면제 프로그램에 해당하는 국가의 시민권을 가지고 있지만
- by
- 계산
- 캘리포니아
- 라는
- CAN
- 케이스
- 중심적인
- 이전 단계로 돌아가기
- 변경
- 변경
- 요금
- 검사
- 선택
- 왼쪽 메뉴에서
- 암호
- 협동
- 수집
- 콜로라도
- 단
- 열
- COM
- 결합
- 완전한
- compliance
- 구성 요소들
- 포괄적 인
- 컴퓨터
- 컴퓨터 과학
- 조건
- 구성
- 확인하기
- 콘솔에서
- 컨설턴트
- 컨테이너
- 이 포함되어 있습니다
- 제어
- 컨벤션
- 변하게 하다
- 동
- 만들
- 만든
- 만들기
- 신임장
- Cross
- 고객
- 고객 솔루션
- 고객
- 매일
- 계기반
- 데이터
- 데이터 레이크
- 데이터 과학
- 데이터 과학자
- 데이터 세트
- 해독
- 태만
- 도
- 배포
- 배치
- 전개
- 배치하다
- 설계
- 세부설명
- 검색
- 탐지 된
- 데브
- 개발
- 개발
- 개발
- DICT
- 다른
- 도메인
- 도메인
- ...동안
- 동적
- 마다
- 이전
- 효과
- 중
- 이메일
- 이메일
- 가능
- 암호화
- 기사
- 보장
- 엔터 버튼
- 환경
- 환경
- 필수
- 이벤트
- 진화하는
- 실행
- 기대하는
- 경험
- 설명
- 설명
- 확장
- 용이하게하다
- 실패
- 실패한
- 실패
- 고장
- 특색
- 특징
- 를
- 그림
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 최후의
- 금융
- 마무리
- 기업
- 먼저,
- 처음으로
- 수행원
- 럭셔리
- 발견
- 뼈대
- 프레임 워크
- 에
- 다하다
- 가득 찬
- 기능
- 기능의
- 미래
- 갭
- 생성
- 생성
- 생성
- 얻을
- 힘내
- GitHub의
- 주기
- 주어진
- 제공
- 글로벌
- Go
- 간다
- 보조금
- 그룹
- 있다
- 건강 관리
- 그녀의
- 더 높은
- 보유
- 호스팅
- 방법
- How To
- HTML
- HTTP
- HTTPS
- ID
- 통합 인증
- if
- 구현
- import
- in
- 포함
- 포함
- 색인
- 인프라
- 처음에는
- 이니셔티브
- 입력
- 설치
- 설치
- 예
- 명령
- 통합
- 인텔리전스
- 인터넷
- 으로
- 소개
- IT
- 일
- 작업
- JPG
- JSON
- 키
- 키
- 라벨
- 소금물
- 경치
- 후에
- 최근
- 배우기
- 지도
- leveraged
- 생활
- 생명과학
- 라인
- 기록
- 장기
- 기계
- 기계 학습
- 본관
- 유지하다
- 확인
- 관리
- 구축
- 제조
- 한계
- 질량
- 석사
- 기구
- 회의
- 메뉴
- 병합
- 통계
- 누락
- ML
- MLOps
- 모델
- 모델링
- 모델
- 수정
- 모듈
- 순간
- 모니터
- 모니터링
- 모니터링
- 배우기
- 여러
- name
- 이름
- 명명
- 카테고리
- 필요
- 필요
- 요구
- 신제품
- 다음 것
- 표준
- 수첩
- 공고
- 알림
- 번호
- numpy
- of
- 자주
- on
- ONE
- 행정부
- or
- 주문
- 조직
- 기타
- 아웃
- 외부
- 위에
- 개요
- 자신의
- 꾸러미
- 페이지
- 고통
- 팬더
- 빵
- 부품
- 부품
- 합격
- 열정
- 열렬한
- 무늬
- 성능
- 권한
- 사진술
- 뽑힌
- 추천
- 관로
- 플랫폼
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 전철기
- 정책
- 정책
- 게시하다
- 사례
- 예측
- 예측
- Prepare
- 전제 조건
- 너무 이른
- 교장
- 이전에
- 권한
- 방법
- 처리
- 생산
- 제품
- 링크를
- 프로젝트
- 홍보
- 프로모션
- 승진
- 제공
- 제공
- 제공
- 제공
- 규정
- 공개적으로
- 했었어요
- 추구
- 푸시
- Python
- 빨리
- 빠르게
- 살갗이 벗어 진
- 읽기
- 준비
- 현실 세계
- 지방
- 회원가입
- 등록된
- 레지스터들
- 레지스트리
- 규정하는
- 관련
- 관계
- 제거
- 저장소
- 의뢰
- 필수
- 요구조건 니즈
- 의지
- 제품 자료
- 응답
- 소매
- return
- 강변
- 직위별
- 역할
- 뿌리
- 통치
- 규칙
- 달리기
- 실행
- 현자
- SageMaker 파이프 라인
- 같은
- 찜하기
- 저장
- 확장성
- 대본
- 예정
- 예약
- 일정
- 과학
- 과학
- 과학자
- 스크립트
- 스크립트
- 완벽하게
- 둘째
- 섹션
- 안전해야합니다.
- 보안
- 참조
- 보내다
- 전송
- 전송
- 전송
- 별도의
- 섬기는 사람
- 서비스
- 서비스
- 세트
- 설정
- 설치
- 셰이프
- 공유
- 그녀
- 영상을
- 표시
- 전시
- 표시
- 쇼
- 단순, 간단, 편리
- 단편
- So
- 해결책
- 솔루션
- 해결
- 출처
- 지우면 좋을거같음 . SM
- 스페이스 버튼
- 전문
- 구체적인
- 분열
- 주 정부
- 성명서
- 정적 인
- Status
- 단계
- 단계
- 아직도
- 저장
- 저장
- 상점
- 끈
- 구조
- 스튜디오
- 성공한
- 이러한
- 지원
- 목표
- 팀
- 통신
- 테라 폼
- test
- 지원
- 그
- XNUMXD덴탈의
- 그들
- 그때
- 그곳에.
- Bowman의
- 일
- 제삼
- 타사
- 이
- 세
- 을 통하여
- 시간
- 에
- 툴셋
- 상단
- 화제
- 선로
- Train
- 훈련 된
- 트레이닝
- 변환
- 트리거
- 방아쇠를 당긴
- 트리거링
- 참된
- 믿어
- 회전
- 두
- ui
- 아래에
- 대학
- University of California
- 업데이트
- 업데이트
- 업로드
- URL
- us
- 사용
- 익숙한
- 사용
- 유틸리티
- 마케팅은:
- 여러
- 버전
- 버전
- 를 통해
- Video
- 눈에 보이는
- 손목 시계
- we
- 웹
- 웹 서비스
- 언제
- 때마다
- 이므로
- 어느
- 동안
- 의지
- 과
- 이내
- 없이
- 작업
- 일
- 워크플로우
- 일하는
- 일
- 쓰다
- 쓴
- 자신의
- 너의
- 유튜브
- 제퍼 넷