제퍼넷 로고

Amazon SageMaker, HashiCorp Terraform 및 GitLab CI/CD를 사용한 모델 모니터링 및 재교육을 통한 일괄 추론을 위한 MLOps | 아마존 웹 서비스

시간

프로덕션에서 기계 학습(ML) 워크플로를 유지하는 것은 ML 코드 및 모델을 위한 지속적인 통합 및 지속적인 전달(CI/CD) 파이프라인 생성, 모델 버전 관리, 데이터 및 개념 드리프트 모니터링, 모델 재교육 및 매뉴얼이 필요하기 때문에 어려운 작업입니다. 새 버전의 모델이 성능 및 규정 준수 요구 사항을 모두 충족하는지 확인하는 승인 프로세스입니다.

이 게시물에서는 다음을 사용하여 작업 예약, 모델 모니터링, 재교육, 등록은 물론 오류 처리 및 알림을 자동화하는 배치 추론을 위한 MLOps 워크플로를 만드는 방법을 설명합니다. 아마존 세이지 메이커, 아마존 이벤트 브리지, AWS 람다, 아마존 단순 알림 서비스 (Amazon SNS), HashiCorp Terraform 및 GitLab CI/CD. 제시된 MLOps 워크플로는 자동화, 모니터링, 감사 및 확장성을 통해 ML 수명 주기를 관리하기 위한 재사용 가능한 템플릿을 제공하므로 프로덕션에서 일괄 추론 워크로드를 유지 관리하는 데 드는 복잡성과 비용이 줄어듭니다.

솔루션 개요

다음 그림은 AWS 도구 및 서비스와 함께 GitLab CI/CD 및 Terraform 코드형 인프라(IaC)를 사용하는 조직을 위한 엔터프라이즈 배치 추론을 위해 제안된 대상 MLOps 아키텍처를 보여줍니다. GitLab CI/CD는 매크로 오케스트레이터 역할을 합니다. model buildmodel deploy 소싱, 구축, 프로비저닝을 포함하는 파이프라인 Amazon SageMaker 파이프 라인 SageMaker Python SDK 및 Terraform을 사용하여 리소스를 지원합니다. SageMaker Python SDK는 훈련, 하이퍼파라미터 최적화(HPO)를 통한 훈련 및 배치 추론을 위한 SageMaker 파이프라인을 생성하거나 업데이트하는 데 사용됩니다. Terraform은 SageMaker 파이프라인을 모니터링하고 알림(예: 파이프라인 단계가 실패하거나 성공할 때)을 보내기 위해 EventBridge 규칙, Lambda 함수 및 SNS 주제와 같은 추가 리소스를 생성하는 데 사용됩니다. SageMaker 파이프라인은 ML 모델 교육 및 추론 워크플로를 위한 조정자 역할을 합니다.

이 아키텍처 설계는 ML 모델이 데이터 과학 개발 계정(일반적인 애플리케이션 개발 계정보다 더 많은 제어 기능이 있음) 내의 중앙 모델 레지스트리에 구축, 훈련 및 등록되는 다중 계정 전략을 나타냅니다. 그런 다음 GitLab CI/CD와 같은 DevOps 도구의 자동화를 사용하여 추론 파이프라인이 스테이징 및 프로덕션 계정에 배포됩니다. 중앙 모델 레지스트리는 선택적으로 공유 서비스 계정에도 배치될 수 있습니다. 인용하다 운영 모델 ML의 다중 계정 전략에 관한 모범 사례를 참조하세요.

다음 하위 섹션에서는 아키텍처 설계의 다양한 측면을 자세히 논의합니다.

코드형 인프라

IaC는 기계가 읽을 수 있는 파일을 통해 IT 인프라를 관리하는 방법을 제공하여 효율적인 버전 제어를 보장합니다. 이 게시물과 함께 제공되는 코드 샘플에서는 다음을 사용하는 방법을 보여줍니다. HashiCorp 테라폼 GitLab CI/CD를 사용하여 AWS 리소스를 효과적으로 관리합니다. 이러한 접근 방식은 IT 인프라 관리에서 투명하고 반복 가능한 프로세스를 제공하는 IaC의 주요 이점을 강조합니다.

모델 훈련 및 재훈련

이 설계에서 SageMaker 교육 파이프라인은 일정에 따라(EventBridge를 통해) 실행되거나 아마존 단순 스토리지 서비스 (Amazon S3) 이벤트 트리거(예: 단일 훈련 데이터 객체의 경우 트리거 파일이나 새로운 훈련 데이터가 Amazon S3에 배치되는 경우)는 새로운 데이터로 모델을 정기적으로 재보정합니다. 이 파이프라인은 엔터프라이즈 모델 검토 프로세스 중에 승인된 고정 하이퍼매개변수를 사용하기 때문에 모델에 구조적 또는 재료적 변경 사항을 도입하지 않습니다.

학습 파이프라인은 새로 학습된 모델 버전을 Amazon SageMaker 모델 레지스트리 모델이 사전 정의된 모델 성능 임계값(예: 회귀의 경우 RMSE, 분류의 경우 F1 점수)을 초과하는 경우입니다. 모델의 새 버전이 모델 레지스트리에 등록되면 Amazon SNS를 통해 담당 데이터 과학자에게 알림이 전송됩니다. 그런 다음 데이터 과학자는 모델의 최신 버전을 검토하고 수동으로 승인해야 합니다. 아마존 세이지 메이커 스튜디오 UI 또는 다음을 사용하는 API 호출을 통해 AWS 명령 줄 인터페이스 (AWS CLI) 또는 Python용 AWS SDK(Boto3) 이전 버전의 모델을 추론에 활용할 수 있습니다.

SageMaker 훈련 파이프라인과 지원 리소스는 GitLab에서 생성됩니다. model build GitLab 파이프라인의 수동 실행을 통해 또는 코드가 main 지점 model build Git 저장소.

배치 추론

SageMaker 배치 추론 파이프라인은 일정에 따라(EventBridge를 통해) 실행되거나 S3 이벤트 트리거를 기반으로 실행됩니다. 일괄 추론 파이프라인은 모델 레지스트리에서 승인된 최신 버전의 모델을 자동으로 가져와 추론에 사용합니다. 일괄 추론 파이프라인에는 학습 파이프라인에서 생성된 기준과 비교하여 데이터 품질을 확인하는 단계는 물론, 정답 레이블을 사용할 수 있는 경우 모델 품질(모델 성능)을 확인하는 단계가 포함됩니다.

배치 추론 파이프라인이 데이터 품질 문제를 발견하면 Amazon SNS를 통해 담당 데이터 과학자에게 알립니다. 모델 품질 문제(예: RMSE가 사전 지정된 임계값보다 큼)를 발견하면 모델 품질 확인을 위한 파이프라인 단계가 실패하고 결과적으로 EventBridge 이벤트가 트리거되어 HPO 파이프라인을 통한 교육이 시작됩니다.

SageMaker 배치 추론 파이프라인과 지원 리소스는 GitLab에서 생성됩니다. model deploy GitLab 파이프라인의 수동 실행을 통해 또는 코드가 main 지점 model deploy Git 저장소.

모델 튜닝 및 재튜닝

HPO 파이프라인을 사용한 SageMaker 교육은 일괄 추론 파이프라인의 모델 품질 확인 단계가 실패할 때 트리거됩니다. 모델 품질 검사는 모델 예측과 실제 정답 레이블을 비교하여 수행됩니다. 모델 품질 측정항목(예: 회귀용 RMSE, 분류용 F1 점수)이 미리 지정된 기준을 충족하지 않는 경우 모델 품질 확인 단계가 실패한 것으로 표시됩니다. 필요한 경우 담당 데이터 과학자가 HPO 파이프라인을 사용한 SageMaker 교육을 수동으로(SageMaker Studio UI에서 또는 AWS CLI 또는 SageMaker Python SDK를 사용하는 API 호출을 통해) 트리거할 수도 있습니다. 모델 하이퍼파라미터가 변경되기 때문에 책임 있는 데이터 과학자는 모델 레지스트리에서 새 모델 버전을 승인하기 전에 엔터프라이즈 모델 검토 위원회의 승인을 받아야 합니다.

HPO 파이프라인과 지원 리소스를 사용한 SageMaker 교육은 GitLab에서 생성됩니다. model build GitLab 파이프라인의 수동 실행을 통해 또는 코드가 main 지점 model build Git 저장소.

모델 모니터링

데이터 통계 및 제약 조건 기준은 HPO 파이프라인을 통한 교육 및 교육의 일부로 생성됩니다. 모델이 평가를 통과하면 Amazon S3에 저장되고 모델 레지스트리의 훈련된 모델에도 등록됩니다. 일괄 추론 파이프라인을 위해 제안된 아키텍처는 다음을 사용합니다. Amazon SageMaker 모델 모니터 데이터 품질 확인을 위해 사용자 정의를 사용하는 동안 Amazon SageMaker 처리 모델 품질 확인 단계. 이 디자인은 데이터와 모델 품질 검사를 분리하여 데이터 드리프트가 감지된 경우에만 경고 알림을 보낼 수 있도록 합니다. 모델 품질 위반이 감지되면 HPO 파이프라인으로 교육을 트리거합니다.

모델 승인

새로 훈련된 모델이 모델 레지스트리에 등록되면 담당 데이터 과학자는 알림을 받습니다. 모델이 훈련 파이프라인(초매개변수가 수정되는 동안 새로운 훈련 데이터로 재보정)을 통해 훈련된 경우 기업 모델 검토 위원회의 승인이 필요하지 않습니다. 데이터 과학자는 모델의 새 버전을 독립적으로 검토하고 승인할 수 있습니다. 반면, 모델이 HPO 파이프라인을 통한 훈련(하이퍼파라미터 변경을 통한 재조정)을 통해 훈련된 경우, 새 모델 버전은 프로덕션에서 추론에 사용되기 전에 전사적 검토 프로세스를 거쳐야 합니다. 검토 프로세스가 완료되면 데이터 과학자는 모델 레지스트리에서 모델의 새 버전을 계속 진행하고 승인할 수 있습니다. 모델 패키지의 상태를 다음으로 변경 Approved EventBridge를 통해 Lambda 함수를 트리거하고, 이는 차례로 GitLab을 트리거합니다. model deploy API 호출을 통한 파이프라인. 그러면 추론을 위해 승인된 최신 버전의 모델을 활용하도록 SageMaker 배치 추론 파이프라인이 자동으로 업데이트됩니다.

모델 레지스트리에서 새 모델 버전을 승인하거나 거부하는 두 가지 주요 방법은 Python용 AWS SDK(Boto3)를 사용하거나 SageMaker Studio UI를 사용하는 것입니다. 기본적으로 훈련 파이프라인과 HPO 파이프라인을 사용한 훈련은 모두 설정됩니다. ModelApprovalStatusPendingManualApproval. 담당 데이터 과학자는 다음을 호출하여 모델의 승인 상태를 업데이트할 수 있습니다. update_model_package Boto3의 API. 인용하다 모델의 승인 상태 업데이트 SageMaker Studio UI를 통해 모델 승인 상태를 업데이트하는 방법에 대한 자세한 내용을 참조하세요.

데이터 I/O 설계

SageMaker는 교육 ​​및 추론 파이프라인에서 개별 단계의 입력을 읽고 출력을 저장하기 위해 Amazon S3와 직접 상호 작용합니다. 다음 다이어그램은 다양한 Python 스크립트, 원시 및 처리된 훈련 데이터, 원시 및 처리된 추론 데이터, 추론 결과 및 정답 레이블(모델 품질 모니터링에 사용 가능한 경우), 모델 아티팩트, 훈련 및 추론 평가 지표(모델 품질 모니터링), 데이터 품질 기준선과 위반 보고서(데이터 품질 모니터링용)를 S3 버킷 내에 구성할 수 있습니다. 다이어그램의 화살표 방향은 SageMaker 파이프라인의 해당 단계에서 입력 또는 출력되는 파일을 나타냅니다. 화살표는 읽기 쉽도록 파이프라인 단계 유형에 따라 색상으로 구분되었습니다. 파이프라인은 GitLab 리포지토리에서 Python 스크립트를 자동으로 업로드하고 각 단계의 출력 파일 또는 모델 아티팩트를 적절한 S3 경로에 저장합니다.

데이터 엔지니어는 다음을 담당합니다.

  • 레이블이 지정된 훈련 데이터를 Amazon S3의 적절한 경로에 업로드합니다. 여기에는 교육 파이프라인과 HPO 파이프라인을 사용한 교육이 각각 모델 재교육 및 재조정을 위한 최신 교육 데이터에 액세스할 수 있도록 정기적으로 새로운 교육 데이터를 추가하는 것이 포함됩니다.
  • 추론 파이프라인의 계획된 실행 전에 S3 버킷의 적절한 경로에 추론을 위한 입력 데이터를 업로드합니다.
  • 모델 품질 모니터링을 위해 정답 라벨을 적절한 S3 경로에 업로드합니다.

데이터 과학자는 다음을 담당합니다.

  • Amazon S3에 업로드할 수 있도록 Ground Truth 레이블을 준비하고 데이터 엔지니어링 팀에 제공합니다.
  • 기업 검토 프로세스를 통해 HPO 파이프라인 교육을 통해 훈련된 모델 버전을 가져오고 필요한 승인을 얻습니다.
  • 모델 레지스트리에서 새로 훈련된 모델 버전을 수동으로 승인하거나 거부합니다.
  • 추론 파이프라인에 대한 프로덕션 게이트를 승인하고 프로덕션으로 승격할 리소스를 지원합니다.

샘플 코드

이 섹션에서는 다음 아키텍처 다이어그램과 같이 단일 계정 설정을 사용한 일괄 추론 작업을 위한 샘플 코드를 제시합니다. 샘플 코드는 다음에서 찾을 수 있습니다. GitHub 저장소, 기업에 자주 필요한 품질 게이트를 사용한 모델 모니터링 및 자동 재교육을 통해 일괄 추론의 출발점이 될 수 있습니다. 샘플 코드는 다음과 같은 점에서 대상 아키텍처와 다릅니다.

  • ML 모델과 지원 리소스를 구축 및 배포하기 위해 단일 AWS 계정을 사용합니다. 인용하다 여러 계정을 사용하여 AWS 환경 구성 AWS의 다중 계정 설정에 대한 지침을 참조하세요.
  • ML 모델 및 지원 리소스를 구축 및 배포하기 위해 단일 GitLab CI/CD 파이프라인을 사용합니다.
  • 새 버전의 모델이 훈련되고 승인되면 GitLab CI/CD 파이프라인은 자동으로 트리거되지 않으며 담당 데이터 과학자가 수동으로 실행하여 SageMaker 배치 추론 파이프라인을 승인된 최신 버전의 모델로 업데이트해야 합니다.
  • SageMaker 훈련 및 추론 파이프라인을 실행하기 위한 S3 이벤트 기반 트리거만 지원합니다.

사전 조건

이 솔루션을 배포하기 전에 다음과 같은 필수 구성 요소가 있어야 합니다.

  • AWS 계정
  • SageMaker 스튜디오
  • Amazon S3 읽기/쓰기 및 AWS 키 관리 서비스 (AWS KMS) 암호화/암호 해독 권한
  • 데이터, 스크립트, 모델 아티팩트를 저장하기 위한 S3 버킷
  • 테라 폼 버전 0.13.5 이상
  • 파이프라인 실행을 위해 작동하는 Docker 실행기가 있는 GitLab
  • AWS CLI
  • jq
  • 지퍼를 열다
  • Python3(Python 3.7 이상) 및 다음 Python 패키지:
    • 보토3
    • 현자
    • 팬더
    • 피얌

저장소 구조

XNUMXD덴탈의 GitHub 저장소 다음 디렉터리와 파일이 포함되어 있습니다.

  • /code/lambda_function/ – 이 디렉터리에는 SageMaker 파이프라인의 단계 상태 변경에 대한 알림 메시지(Amazon SNS를 통해)를 준비하고 전송하는 Lambda 함수에 대한 Python 파일이 포함되어 있습니다.
  • /data/ – 이 디렉터리에는 원시 데이터 파일(훈련, 추론 및 실측 데이터)이 포함되어 있습니다.
  • /env_files/ – 이 디렉터리에는 Terraform 입력 변수 파일이 포함되어 있습니다.
  • /pipeline_scripts/ – 이 디렉터리에는 HPO SageMaker 파이프라인을 사용한 훈련, 추론 및 훈련을 생성 및 업데이트하기 위한 세 가지 Python 스크립트와 각 파이프라인의 매개변수를 지정하기 위한 구성 파일이 포함되어 있습니다.
  • /scripts/ – 이 디렉터리에는 HPO 파이프라인을 통한 교육, 추론 및 교육에서 참조되는 추가 Python 스크립트(예: 전처리 및 평가)가 포함되어 있습니다.
  • .gitlab-ci.yml – 이 파일은 GitLab CI/CD 파이프라인 구성을 지정합니다.
  • /events.tf – 이 파일은 EventBridge 리소스를 정의합니다.
  • /lambda.tf – 이 파일은 Lambda 알림 기능 및 관련 기능을 정의합니다. AWS 자격 증명 및 액세스 관리 (IAM) 리소스
  • /main.tf – 이 파일은 Terraform 데이터 소스와 로컬 변수를 정의합니다.
  • /sns.tf – 이 파일은 Amazon SNS 리소스를 정의합니다.
  • /tags.json – 이 JSON 파일을 사용하면 사용자 정의 태그 키-값 쌍을 선언하고 로컬 변수를 사용하여 이를 Terraform 리소스에 추가할 수 있습니다.
  • /variables.tf – 이 파일은 모든 Terraform 변수를 선언합니다.

변수 및 구성

다음 표에는 이 솔루션을 매개변수화하는 데 사용되는 변수가 나와 있습니다. 다음을 참조하세요. ./env_files/dev_env.tfvars 자세한 내용은 파일을 참조하세요.

성함 상품 설명
bucket_name 데이터, 스크립트 및 모델 아티팩트를 저장하는 데 사용되는 S3 버킷
bucket_prefix ML 프로젝트의 S3 접두사
bucket_train_prefix 훈련 데이터용 S3 접두사
bucket_inf_prefix 추론 데이터용 S3 접두사
notification_function_name SageMaker 파이프라인의 단계 상태 변경에 대한 알림 메시지를 준비하고 보내는 Lambda 함수의 이름
custom_notification_config 특정 파이프라인 실행 상태가 감지될 때 특정 SageMaker 파이프라인 단계에 대한 알림 메시지를 사용자 지정하기 위한 구성
email_recipient SageMaker 파이프라인의 단계 상태 변경 알림을 수신하기 위한 이메일 주소 목록
pipeline_inf SageMaker 추론 파이프라인의 이름
pipeline_train SageMaker 훈련 파이프라인의 이름
pipeline_trainwhpo HPO 파이프라인을 사용한 SageMaker 교육 이름
recreate_pipelines 로 설정하면 true, 세 가지 기존 SageMaker 파이프라인(훈련, 추론, HPO를 사용한 훈련)이 삭제되고 GitLab CI/CD가 실행될 때 새 파이프라인이 생성됩니다.
model_package_group_name 모델 패키지 그룹 이름
accuracy_mse_threshold 모델 업데이트를 요구하기 전 MSE의 최대값
role_arn SageMaker 파이프라인 실행 역할의 IAM 역할 ARN
kms_key Amazon S3 및 SageMaker 암호화를 위한 KMS 키 ARN
subnet_id SageMaker 네트워킹 구성을 위한 서브넷 ID
sg_id SageMaker 네트워킹 구성을 위한 보안 그룹 ID
upload_training_data 로 설정하면 true, 훈련 데이터는 Amazon S3에 업로드되며, 이 업로드 작업은 훈련 파이프라인 실행을 트리거합니다.
upload_inference_data 로 설정하면 true, 추론 데이터는 Amazon S3에 업로드되며, 이 업로드 작업은 추론 파이프라인 실행을 트리거합니다.
user_id SageMaker 리소스에 태그로 추가된 SageMaker 사용자의 직원 ID

솔루션 배포

AWS 계정에 솔루션을 배포하려면 다음 단계를 완료하십시오.

  1. GitHub 저장소를 작업 디렉터리에 복제합니다.
  2. 환경에 맞게 GitLab CI/CD 파이프라인 구성을 검토하고 수정합니다. 구성은 ./gitlab-ci.yml 파일.
  3. README 파일을 참조하여 일반 솔루션 변수를 업데이트하세요. ./env_files/dev_env.tfvars 파일. 이 파일에는 Python 스크립트와 Terraform 자동화에 대한 변수가 포함되어 있습니다.
    1. 아래의 YAML 파일에 정의된 추가 SageMaker 파이프라인 매개변수를 확인하세요. ./batch_scoring_pipeline/pipeline_scripts/. 필요한 경우 매개변수를 검토하고 업데이트하세요.
  4. SageMaker 파이프라인 생성 스크립트를 검토하십시오. ./pipeline_scripts/ 뿐만 아니라 그들이 참조하는 스크립트도 ./scripts/ 폴더. GitHub 저장소에 제공되는 예제 스크립트는 다음을 기반으로 합니다. 전복 데이터 세트. 다른 데이터세트를 사용하려는 경우 특정 문제에 맞게 스크립트를 업데이트해야 합니다.
  5. 데이터 파일을 ./data/ 다음 명명 규칙을 사용하여 폴더를 지정합니다. 제공된 예제 스크립트와 함께 Abalone 데이터세트를 사용하는 경우 데이터 파일에 헤더가 없는지, 교육 데이터에 원래 열 순서가 유지된 독립 변수와 대상 변수가 모두 포함되어 있는지, 추론 데이터에는 독립 변수만 포함되어 있는지, 지상 실제값이 포함되어 있는지 확인하세요. 파일에는 대상 변수만 포함됩니다.
    1. training-data.csv
    2. inference-data.csv
    3. ground-truth.csv
  6. 코드를 커밋하고 리포지토리에 푸시하여 GitLab CI/CD 파이프라인 실행(첫 번째 실행)을 트리거합니다. 첫 번째 파이프라인 실행은 다음에서 실패합니다. pipeline 아직 추론 파이프라인 스크립트에서 사용할 승인된 모델 버전이 없기 때문입니다. 단계 로그를 검토하고 이름이 지정된 새 SageMaker 파이프라인을 확인합니다. TrainingPipeline 성공적으로 생성되었습니다.

    1. SageMaker Studio UI를 연 다음 훈련 파이프라인을 검토하고 실행합니다.
    2. 학습 파이프라인이 성공적으로 실행된 후 모델 레지스트리에 등록된 모델 버전을 승인한 다음 전체 GitLab CI/CD 파이프라인을 다시 실행합니다.
  1. Terraform 계획 출력을 검토하세요. build 단계. 매뉴얼 승인 apply GitLab CI/CD 파이프라인의 단계를 수행하여 파이프라인 실행을 재개하고 Terraform에 권한을 부여하여 AWS 계정에 모니터링 및 알림 리소스를 생성합니다.
  2. 마지막으로, 다음 스크린샷과 같이 SageMaker Studio UI에서 SageMaker 파이프라인의 실행 상태와 출력을 검토하고 이메일에서 알림 메시지를 확인하세요. 기본 메시지 본문은 JSON 형식입니다.

SageMaker 파이프라인

이 섹션에서는 MLOps 워크플로 내의 세 가지 SageMaker 파이프라인에 대해 설명합니다.

교육 파이프라인

학습 파이프라인은 다음 단계로 구성됩니다.

  • 특징 변환 및 인코딩을 포함한 전처리 단계
  • 학습 데이터를 활용하여 데이터 통계 및 제약 기준선을 생성하는 데이터 품질 확인 단계
  • 훈련 단계
  • 훈련 평가 단계
  • 훈련된 모델이 사전 지정된 성능 임계값을 충족하는지 확인하는 조건 단계
  • 훈련된 모델이 요구되는 성능 임계값을 충족하는 경우 새로 훈련된 모델을 모델 레지스트리에 등록하는 모델 등록 단계

둘 다 skip_check_data_qualityregister_new_baseline_data_quality 매개변수는 다음과 같이 설정됩니다. True 훈련 파이프라인에서. 이러한 매개변수는 파이프라인에 데이터 품질 검사를 건너뛰고 훈련 데이터를 사용하여 새로운 데이터 통계 또는 제약 조건 기준선을 생성 및 등록하도록 지시합니다. 다음 그림은 학습 파이프라인의 성공적인 실행을 보여줍니다.

일괄 추론 파이프라인

일괄 추론 파이프라인은 다음 단계로 구성됩니다.

  • 모델 레지스트리의 승인된 최신 모델 버전에서 모델 생성
  • 특징 변환 및 인코딩을 포함한 전처리 단계
  • 일괄 추론 단계
  • 데이터 품질 검사에 사용할 입력 데이터와 모델 예측을 모두 포함하는 새로운 CSV 파일을 생성하는 데이터 품질 검사 전처리 단계
  • 등록된 모델과 관련된 기본 통계 및 제약 조건과 비교하여 입력 데이터를 확인하는 데이터 품질 확인 단계
  • Ground Truth 데이터가 유효한지 확인하는 조건 단계입니다. 실제 데이터를 사용할 수 있는 경우 모델 품질 확인 단계가 수행됩니다.
  • 정답 레이블을 기반으로 모델 성능을 계산하는 모델 품질 계산 단계

둘 다 skip_check_data_qualityregister_new_baseline_data_quality 매개변수는 다음과 같이 설정됩니다. False 추론 파이프라인에서. 이러한 매개변수는 등록된 모델과 관련된 데이터 통계 또는 제약 기준을 사용하여 데이터 품질 검사를 수행하도록 파이프라인에 지시합니다(supplied_baseline_statistics_data_qualitysupplied_baseline_constraints_data_quality) 추론 중에 새로운 데이터 통계 및 제약 조건 기준선 생성 또는 등록을 건너뜁니다. 다음 그림은 추론 데이터에 대한 모델 성능 저하로 인해 데이터 품질 확인 단계가 실패한 일괄 추론 파이프라인 실행을 보여줍니다. 이 특별한 경우에는 모델을 미세 조정하기 위해 HPO 파이프라인을 사용한 교육이 자동으로 실행됩니다.

HPO 파이프라인을 사용한 교육

HPO 파이프라인을 사용한 교육은 다음 단계로 구성됩니다.

  • 전처리 단계(특성 변환 및 인코딩)
  • 학습 데이터를 활용하여 데이터 통계 및 제약 기준선을 생성하는 데이터 품질 확인 단계
  • 초매개변수 조정 단계
  • 훈련 평가 단계
  • 훈련된 모델이 사전 지정된 정확도 임계값을 충족하는지 확인하는 조건 단계
  • 가장 잘 훈련된 모델이 필수 정확도 임계값을 충족하는 경우 모델 등록 단계

둘 다 skip_check_data_qualityregister_new_baseline_data_quality 매개변수는 다음과 같이 설정됩니다. True HPO 파이프라인을 이용한 교육 중입니다. 다음 그림은 HPO 파이프라인을 사용한 성공적인 교육 실행을 보여줍니다.

정리

리소스를 정리하려면 다음 단계를 완료하세요.

  1. 고용 destroy Terraform에서 프로비저닝한 모든 리소스를 제거하기 위해 GitLab CI/CD 파이프라인의 단계.
  2. AWS CLI를 사용하여 명부제거 Python 스크립트에 의해 생성된 나머지 파이프라인.
  3. 선택적으로 CI/CD 파이프라인 외부에서 생성된 S3 버킷 또는 IAM 역할과 같은 다른 AWS 리소스를 삭제합니다.

결론

이 게시물에서는 기업이 Amazon SageMaker, Amazon EventBridge, AWS Lambda, Amazon SNS, HashiCorp Terraform 및 GitLab CI/CD를 사용하여 배치 추론 작업을 위한 MLOps 워크플로를 생성하는 방법을 시연했습니다. 제시된 워크플로우는 데이터 및 모델 모니터링, 모델 재교육은 물론 일괄 작업 실행, 코드 버전 관리 및 인프라 프로비저닝을 자동화합니다. 이를 통해 프로덕션에서 일괄 추론 작업을 유지하는 데 드는 복잡성과 비용이 크게 줄어들 수 있습니다. 구현 세부정보에 대한 자세한 내용은 다음을 검토하세요. GitHub 레포.


저자에 관하여

하산 쇼재에이 그는 AWS 전문 서비스의 수석 데이터 과학자로서 스포츠, 보험, 금융 서비스 등 다양한 업계의 고객이 빅 데이터, 기계 학습 및 클라우드 기술을 사용하여 비즈니스 문제를 해결하도록 돕습니다. 이 직책을 맡기 전에 Hasan은 최고의 에너지 기업을 위한 새로운 물리학 기반 및 데이터 기반 모델링 기술을 개발하기 위한 여러 이니셔티브를 주도했습니다. 직장 밖에서 Hasan은 책, 하이킹, 사진, 역사에 열정을 쏟고 있습니다.

리우원신 수석 클라우드 인프라 설계자입니다. Wenxin은 기업에 클라우드 채택을 가속화하는 방법에 대해 조언하고 클라우드 혁신을 지원합니다. 그는 애완동물을 좋아하고 스노보드와 여행에 열정적입니다.

비벡 락슈마난 Amazon의 기계 학습 엔지니어입니다. 그는 데이터 과학 전문 분야와 MLE로서 수년간의 경험을 바탕으로 소프트웨어 엔지니어링 석사 학위를 보유하고 있습니다. Vivek은 클라우드에서 고객에게 최첨단 기술을 적용하고 AI/ML 솔루션을 구축하게 되어 기쁘게 생각합니다. 그는 AI/ML의 통계, NLP 및 모델 설명 가능성에 열정을 갖고 있습니다. 여가 시간에는 크리켓 경기와 자동차 여행을 즐깁니다.

앤디 크라치올로 클라우드 인프라 설계자입니다. IT 인프라 분야에서 15년 이상 경력을 쌓은 Andy는 성취감 있고 결과 중심적인 IT 전문가입니다. IT 인프라, 운영 및 자동화를 최적화하는 것 외에도 Andy는 IT 운영을 분석하고 불일치를 식별하며 효율성을 높이고 비용을 절감하며 수익을 높이는 프로세스 개선을 구현하는 입증된 실적을 보유하고 있습니다.

spot_img

최신 인텔리전스

spot_img