제퍼넷 로고

Amazon SageMaker에서 AWS Step Functions 및 AutoGluon을 사용하여 AutoML 워크플로 관리

시간

클라우드에서 머신 러닝(ML) 실험을 실행하는 것은 많은 서비스와 구성 요소에 걸쳐 있을 수 있습니다. ML 실험을 구조화, 자동화 및 추적하는 기능은 ML 모델을 빠르게 개발하는 데 필수적입니다. 자동화된 기계 학습(AutoML) 분야의 최신 발전, 즉 ML 프로세스 자동화 전용 ML 영역을 통해 깊은 ML 지식 없이도 정확한 의사 결정 모델을 구축할 수 있습니다. 이 게시물에서는 몇 줄의 Python으로 정확한 ML 모델을 빌드할 수 있는 오픈 소스 AutoML 프레임워크인 AutoGluon을 살펴봅니다.

AWS는 ML 워크플로를 관리하고 실행할 수 있는 광범위한 서비스를 제공하므로 기술과 애플리케이션에 따라 솔루션을 선택할 수 있습니다. 예를 들어 이미 사용 중인 경우 AWS 단계 함수 분산 애플리케이션의 구성 요소를 오케스트레이션하기 위해 동일한 서비스를 사용하여 ML 워크플로를 구축하고 자동화할 수 있습니다. AWS에서 제공하는 기타 MLOps 도구는 다음과 같습니다. Amazon SageMaker 파이프 라인, 이를 통해 ML 모델을 구축할 수 있습니다. 아마존 세이지 메이커 스튜디오 MLOps 기능(CI/CD 호환성, 모델 모니터링 및 모델 승인 등). 다음과 같은 오픈 소스 도구 아파치 에어 플로우— 다음을 통해 AWS에서 사용 가능 Apache Airflow용 Amazon 관리형 워크플로-과 큐브플로우, 하이브리드 솔루션도 지원됩니다. 예를 들어 SageMaker Pipelines를 사용하여 ML 모델을 교육 및 배포하는 동안 Step Functions로 데이터 수집 및 처리를 관리할 수 있습니다.

이 게시물에서는 ML 전문 지식이 없는 개발자도 AutoGluon을 사용하여 최첨단 ML 모델을 쉽게 구축하고 유지 관리할 수 있는 방법을 보여줍니다. 아마존 세이지 메이커 워크플로 구성 요소를 오케스트레이션하는 Step Functions.

AutoGluon 알고리즘에 대한 개요를 설명한 후 예제와 함께 워크플로 정의를 제시합니다. 코드 튜토리얼 자신의 데이터에 적용할 수 있습니다.

오토글루온

AutoGluon은 몇 줄의 Python 코드로 정확한 ML 모델을 교육하여 ML의 채택을 가속화하는 오픈 소스 AutoML 프레임워크입니다. 이 게시물은 표 형식의 데이터에 중점을 두고 있지만 AutoGluon을 사용하면 이미지 분류, 객체 감지 및 텍스트 분류를 위한 최첨단 모델을 훈련할 수도 있습니다. AutoGluon 테이블 형식은 최적의 솔루션을 찾기 위해 다양한 모델을 생성하고 결합합니다.

AWS의 AutoGluon 팀이 발표했습니다. 종이 라이브러리를 구성하는 원칙을 제시합니다.

  • 간단 – 데이터를 분석하거나 피쳐 엔지니어링을 수행할 필요 없이 원시 데이터에서 직접 분류 및 회귀 모델을 생성할 수 있습니다.
  • 견고성 – 개별 모델 중 일부가 실패하더라도 전체 교육 프로세스는 성공해야 합니다.
  • 예측 가능한 타이밍 – 교육에 투자하고자 하는 시간 내에 최적의 결과를 얻을 수 있습니다.
  • 결함 허용 – 교육을 중단하고 언제든지 재개할 수 있으므로 프로세스가 클라우드의 스팟 이미지에서 실행되는 경우 비용이 최적화됩니다.

알고리즘에 대한 자세한 내용은 다음을 참조하십시오. 종이 AWS의 AutoGluon 팀에서 발표했습니다.

설치 후 오토글루온 패키지 모델 교육은 다음 세 줄의 코드를 작성하는 것만큼 쉽습니다.

from autogluon.tabular import TabularDataset, TabularPredictor

train_data = TabularDataset('s3://my-bucket/datasets/my-csv.csv')
predictor = TabularPredictor(label="my-label", path="my-output-folder").fit(train_data)

AutoGluon 팀은 여러 Kaggle 대회에서 상위 10위권에 진입하여 프레임워크의 강점을 입증했습니다.

솔루션 개요

우리는 Step Functions를 사용하여 교육, 평가 및 배포를 다루는 ML 워크플로를 구현합니다. 파이프라인 설계는 런타임에 파이프라인에 공급하는 입력 매개변수를 수정하여 빠르고 구성 가능한 실험을 가능하게 합니다.

다음과 같은 다양한 워크플로를 구현하도록 파이프라인을 구성할 수 있습니다.

  • 이 시점에서 배포가 필요하지 않은 경우 새 ML 모델을 학습하고 SageMaker 모델 레지스트리에 저장합니다.
  • 온라인(SageMaker 엔드 포인트) 또는 오프라인(SageMaker 일괄 변환) 추론
  • 전체 파이프라인을 실행하여 ML 모델을 처음부터 학습, 평가 및 배포

솔루션은 일반 상태 머신 (다음 다이어그램 참조) 입력 매개 변수 집합을 기반으로 실행할 작업 집합을 조정합니다.

상태 머신의 단계는 다음과 같습니다.

  1. 첫 번째 단계 IsTraining 사전 훈련된 모델을 사용할 것인지 아니면 처음부터 모델을 훈련할 것인지 결정합니다. 사전 훈련된 모델을 사용하는 경우 상태 머신은 7단계로 건너뜁니다.
  2. 새로운 ML 모델이 필요할 때, TrainSteps 필요한 모든 작업을 수행하고 결과를 현재 상태 시스템으로 반환하는 두 번째 상태 시스템을 트리거합니다. 다음 섹션에서 훈련 상태 머신에 대해 더 자세히 살펴보겠습니다.
  3. 훈련이 끝나면, PassModelName 다음 상태에서 재사용할 수 있도록 상태 머신 컨텍스트의 지정된 위치에 훈련 작업 이름을 저장합니다.
  4. 평가 단계를 선택한 경우 IsEvaluation 상태 머신을 평가 분기로 리디렉션합니다. 그렇지 않으면 7단계로 건너뜁니다.
  5. 그런 다음 평가 단계는 다음을 사용하여 구현됩니다. AWS 람다 에 의해 호출된 함수 ModelValidation 단계. Lambda 함수는 테스트 세트에서 모델 성능을 검색하고 이를 입력 파라미터에 지정된 사용자 구성 가능한 임계값과 비교합니다. 다음 코드는 평가 결과의 예입니다.
    "Payload":{
       "IsValid":true,
       "Scores":{
          "accuracy":0.9187,
          "balanced_accuracy":0.7272,
          "mcc":0.5403,
          "roc_auc":0.9489,
          "f1":0.5714,
          "precision":0.706,
          "recall":0.4799
       }
    }

  6. 에서 모델 평가를 하는 경우 EvaluationResults 성공하면 상태 머신이 최종 배포 단계를 계속합니다. 모델이 사용자 정의 기준 아래에서 수행되는 경우 상태 시스템이 중지되고 배포가 건너뜁니다.
  7. 배포를 선택한 경우 IsDeploy 다음을 통해 세 번째 상태 머신을 시작합니다. DeploySteps, 이 게시물의 뒷부분에서 설명합니다. 배포가 필요하지 않은 경우 상태 시스템은 여기에서 중지됩니다.

입력 매개변수 샘플 세트는 GitHub 레포.

상태 머신 훈련

AutoGluon을 사용하여 새로운 ML 모델을 훈련하기 위한 상태 머신은 다음 다이어그램과 같이 두 단계로 구성됩니다. 첫 번째 단계는 모델을 생성하는 SageMaker 교육 작업입니다. 두 번째는 SageMaker 모델 레지스트리에 항목을 저장합니다.

이 단계를 기본 상태 시스템의 일부로 자동으로 실행하거나 독립 실행형 프로세스로 실행할 수 있습니다.

배포 상태 머신

이제 배포 단계 전용 상태 머신을 살펴보겠습니다(다음 다이어그램 참조). 앞서 언급했듯이 아키텍처는 온라인 및 오프라인 배포를 모두 지원합니다. 전자는 SageMaker 끝점 배포로 구성되는 반면 후자는 SageMaker 일괄 변환 작업을 실행합니다.

구현 단계는 다음과 같습니다.

  1. ChoiceDeploymentMode 어떤 배포 모드가 필요한지 정의하기 위해 입력 매개변수를 살펴보고 상태 머신을 해당 분기로 보냅니다.
  2. 엔드포인트가 선택되면 EndpointConfig 단계는 구성을 정의하는 반면 CreateEndpoint 필요한 컴퓨팅 리소스를 할당하는 프로세스를 시작합니다. 이 할당은 몇 분이 걸릴 수 있으므로 상태 머신은 다음에서 일시 중지됩니다. WaitForEndpoint Lambda 함수를 사용하여 엔드포인트 상태를 폴링합니다.
  3. 엔드포인트가 구성되는 동안 ChoiceEndpointStatus 다시 WaitForEndpoint 상태, 그렇지 않으면 계속 DeploymentFailed or DeploymentSucceeded.
  4. 오프라인 배포를 선택하면 상태 시스템이 SageMaker 일괄 변환 작업을 실행한 후 상태 시스템이 중지됩니다.

결론

이 게시물은 AutoML 워크플로를 조정하고 클라우드에서 빠른 실험을 가능하게 하는 사용하기 쉬운 파이프라인을 제시하여 고급 ML 지식 없이도 정확한 ML 솔루션을 허용합니다.

필요한 경우 교육 및 배포를 별도로 수행할 수 있는 두 개의 모듈식 파이프라인과 일반 파이프라인을 제공합니다. 또한 이 솔루션은 SageMaker와 완전히 통합되어 기능 및 계산 리소스의 이점을 누릴 수 있습니다.

지금 시작하세요 코드 튜토리얼 이 게시물에 제공된 리소스를 AWS 계정에 배포하고 첫 번째 AutoML 실험을 실행합니다.


저자에 관하여

페데리코 피치니니 Amazon Machine Learning Solutions Lab의 딥 러닝 아키텍트입니다. 그는 기계 학습, 설명 가능한 AI 및 MLOps에 열정적입니다. 그는 AWS 고객을 위한 ML 파이프라인 설계에 중점을 두고 있습니다. 일 외에는 스포츠와 피자를 즐깁니다.

파올로 이레라 Amazon Machine Learning Solutions Lab의 데이터 과학자로, 고객이 ML 및 클라우드 기능으로 비즈니스 문제를 해결하도록 돕습니다. 그는 파리의 Telecom ParisTech에서 컴퓨터 비전 박사 학위를 취득했습니다.

spot_img

최신 인텔리전스

spot_img