시작하기 / 실습 / ...

기계 학습 모델 자동 생성

시작 가이드

개요

이 자습서에서는 Amazon SageMaker Autopilot을 사용하여 기계 학습(ML) 모델을 자동으로 빌드, 훈련, 튜닝하고 모델을 배포하여 예측을 실행하는 방법을 알아봅니다.
 

Amazon SageMaker Autopilot은 데이터를 기반으로 최상의 기계 학습 모델을 자동으로 구축, 훈련 및 튜닝하여 기계 학습 모델을 구축하는 과도한 부담을 없애줍니다. SageMaker Autopilot을 사용하는 경우, 테이블 형식의 데이터 세트를 제공하고 예측 대상 열을 선택하면 됩니다. SageMaker Autopilot은 데이터를 탐색하고, 문제 유형에 적합한 알고리즘을 선택하고, 모델 훈련을 위해 데이터를 준비하고, 다양한 모델을 테스트하고, 가장 성능이 좋은 모델을 선택합니다. 그런 다음 후보 모델 중 하나를 배포하거나 모델을 반복하여 예측 품질을 높일 수 있습니다.

학습 내용

이 가이드에서는 다음을 수행합니다.

  • SageMaker Autopilot을 사용하여 훈련 실험 생성
  • 훈련 실험의 각 단계 살펴보기
  • 훈련 실험에서 성능이 가장 우수한 모델 확인 및 배포
  • 배포한 모델을 사용하여 예측

사전 요구 사항

이 가이드를 시작하기 전에 필요한 사항은 다음과 같습니다.

  • AWS 계정: 아직 계정이 없는 경우 환경 설정 시작하기 가이드를 간단히 참조하여 만들 수 있습니다.

 AWS 경험

초보자

 소요 시간

45분

 완료 비용

이 자습서의 예상 비용은 SageMaker 요금을 참조하세요.

 필요 사항

AWS 계정에 로그인해야 합니다.

 사용 서비스

Amazon SageMaker Autopilot

 최종 업데이트 날짜

2022년 7월 12일

사용 사례

이 워크로드의 경우 가상의 자동차 보험 청구 데이터 세트를 사용하게 됩니다. 원시 입력은 청구 테이블과 고객 테이블이라는 2개의 보험 데이터 테이블입니다. 청구 테이블에는 청구의 사기 여부를 나타내는 fraud 열이 있습니다. 이 자습서에서는 편의상 데이터 세트의 일부를 선택했습니다. 하지만 이 자습서와 동일한 단계에 따라 대규모 데이터 세트를 처리할 수도 있습니다.

 

1단계: Amazon SageMaker Studio 도메인 설정

AWS 계정은 AWS 리전당 1개의 SageMaker Studio 도메인만 설정할 수 있습니다. 미국 동부(버지니아 북부) 리전에 이미 SageMaker Studio 도메인이 있는 경우 SageMaker Studio 설정 가이드에 따라 필요한 AWS IAM 정책을 SageMaker Studio 계정에 연결한 다음 1단계를 건너뛰고 2단계로 바로 넘어가세요. 

기존 SageMaker Studio 도메인이 없는 경우 1단계를 계속 진행하여 AWS CloudFormation 템플릿을 실행합니다. 그러면 SageMaker Studio 도메인이 생성되고 이 자습서의 나머지 부분에 필요한 권한이 추가됩니다.

AWS CloudFormation 스택 링크를 선택합니다. 이 링크를 누르면 AWS CloudFormation 콘솔이 열리고 SageMaker Studio 도메인과 studio-user라는 이름의 사용자가 생성됩니다. 또한 필요한 권한이 SageMaker Studio 계정에 추가됩니다. CloudFormation 콘솔에서 미국 동부(버지니아 북부)(US East (N. Virginia))가 오른쪽 위에 표시된 리전인지 확인합니다. 스택 이름(Stack name)은 CFN-SM-IM-Lambda-Catalog여야 하며 변경할 수 없습니다. 이 스택은 모든 리소스를 생성하는 데 약 10분이 걸립니다.

이 스택은 퍼블릭 VPC가 계정에 이미 설정되어 있는 것으로 가정합니다. 퍼블릭 VPC가 없는 경우 단일 퍼블릭 서브넷이 있는 VPC를 참조하여 퍼블릭 VPC 생성 방법에 대해 알아보세요.

AWS CloudFormation이 IAM 리소스를 생성할 수 있음을 동의합니다(I acknowledge that AWS CloudFormation might create IAM resources)를 선택하고 스택 생성(Create stack)을 선택합니다.

CloudFormation 창에서 스택(Stacks)을 선택합니다. 스택이 생성되면 스택 상태가 CREATE_IN_PROGRESS에서 CREATE_COMPLETE로 바뀝니다.

SageMaker Studio를 CloudFormation 콘솔 검색 창에 입력하고 SageMaker Studio를 선택합니다.

SageMaker 콘솔의 오른쪽 위에 있는 리전(Region) 드롭다운 목록에서 미국 동부(버지니아 북부)(US East (N. Virginia))를 선택합니다. 앱 시작(Launch app)에서 Studio를 선택하고 studio-user 프로필을 사용하여 SageMaker Studio를 엽니다.
 

2단계: 새로운 SageMaker Autopilot 실험 시작

많은 후보 모델을 개발하고 테스트하는 것은 기계 학습(ML) 프로젝트에 있어서 매우 중요합니다. Amazon SageMaker Autopilot은 다양한 모델 후보를 제공하고 데이터를 기반으로 최적의 모델을 자동으로 선택합니다. 이 단계에서는 금융 서비스 마케팅 캠페인의 성공 여부를 예측하는 SageMaker Autopilot 실험을 구성합니다. 이 데이터 세트는 대형 금융 서비스 기관이 양도성 예금 증서 상품을 홍보하기 위해 실시한 마케팅 캠페인을 나타냅니다.

새 SageMaker Autopilot 실험을 시작하려면 + 아이콘을 클릭하여 새 런처 창에 액세스합니다. 런처 창에서 아래로 스크롤하여 기계 학습 태스크 및 구성 요소(ML tasks and components)로 이동합니다. 새 Autopilot 실험(New Autopilot experiment)+ 아이콘을 클릭합니다.

다음으로 실험의 이름을 지정합니다. 실험 이름(Experiment name) 상자를 클릭하고 autopilot-experiment를 이름으로 입력합니다.

 

다음으로, S3에 스테이징된 데이터에 실험을 연결합니다. S3 버킷 위치 입력(Enter S3 bucket location) 상자를 클릭합니다. S3 버킷 주소(S3 bucket address) 상자에 S3 경로 s3://sagemaker-sample-files/datasets/tabular/uci_bank_marketing/bank-additional-full.csv를 붙여 넣습니다.

매니페스트 파일 옵션을 꺼짐(Off)으로 설정된 채로 둡니다. 대상(Target) 드롭다운에서 모델이 예측을 시도할 대상 특성으로 y를 선택합니다.

출력 데이터 위치(S3 버킷(Output data location (S3 bucket)) 테이블에서 여러분의 자체 S3 버킷을 선택합니다. 데이터 세트 디렉터리 이름(Dataset directory name) 필드에 sagemaker/tutorial-autopilot/output을 입력합니다. 실험이 완료되면 출력 데이터가 여기에 저장됩니다.

자동 배포(Auto deploy) 옵션을 켜진 채로 두고 자동 배포 엔드포인트(Auto deploy endpoint) 필드를 비워 둡니다. 그러면 자동으로 모델이 API 엔드포인트로 배포되고 이름이 할당됩니다.

다음으로, 문제 유형, 전체 실험, 실행 시간 세부 정보, IAM 액세스, 보안, 암호화 등의 세부 정보를 제어하는 다양한 선택적 고급 설정이 있습니다. 이 선택적 설정을 표시하려면 런타임 버튼을 클릭합니다.

이 자습서에서는 최대 후보(Max candidates) 수를 250개에서 5개로 줄입니다. 이렇게 하면 더 적은 수의 모델을 더 빨리 실행할 수 있습니다. 전체 실험은 모델을 제대로 최적화하는 최선의 방법이지만, 완료하는 데 몇 시간이 걸릴 수 있습니다. 이 자습서에서는 선택적 설정을 그대로 둡니다.

실험 생성(Create Experiment) 버튼을 클릭하여 SageMaker Autopilot 실험의 첫 단계를 시작합니다. SageMaker Autopilot이 실험을 단계별로 실행하기 시작합니다. 실험 창에서 전처리, 후보 정의, 특성 추출, 모델 튜닝, 설명 가능성 및 인사이트의 단계를 거치는 동안 진행 상황을 추적할 수 있습니다.

실험 생성(Create Experiment) 버튼을 클릭하여 SageMaker Autopilot 실험의 첫 단계를 시작합니다. SageMaker Autopilot이 실험을 단계별로 실행하기 시작합니다. 실험 창에서 전처리, 후보 정의, 특성 추출, 모델 튜닝, 설명 가능성 및 인사이트의 단계를 거치는 동안 진행 상황을 추적할 수 있습니다. ‘최적의 모델을 배치하시겠습니까?(Are you sure you want to deploy the best model?)’라는 팝업 알림이 표시되면 예(yes)를 클릭합니다.

SageMaker Autopilot 작업이 완료되면 후보 모델, 후보 모델 상태, 목표 값, F1 점수 및 정확도를 보여주는 리포트에 액세스할 수 있습니다. SageMaker Autopilot이 엔드포인트를 자동으로 배포합니다.

3단계: 모델 성능 해석

이제 실험이 완료되고 모델이 생겼으므로 다음 단계는 모델의 성능을 해석하는 것입니다. 이제 SageMaker Autopilot을 사용하여 모델의 성능을 분석하는 방법을 알아봅니다.

이제 SageMaker Autopilot 실험이 완료되었으므로 최고 순위의 모델을 열어 모델의 성능과 메타데이터에 대한 자세한 정보를 얻을 수 있습니다. 모델 목록에서 첫 번째 모델을 선택하고 마우스 오른쪽 버튼을 클릭하여 모델 옵션을 표시합니다. 모델 세부 정보에서 열기(Open)를 클릭하여 모델의 성능 통계를 검토합니다.

새 창에서 설명 가능성(Explainability)을 클릭합니다. 첫 번째 보기는 특성 중요도(Feature Importance)라고 하며 데이터 세트의 각 인스턴스마다 각 특성의 집계된 SHAP 값을 보여줍니다. 특성 중요도 점수는 데이터 세트에서 예측에 가장 큰 영향을 미치는 특성을 보여주므로 모델 설명 가능성의 중요한 부분입니다. 이 사용 사례에서 고객 기간 또는 재직 기간과 고용 변동률은 모델의 결과를 좌우하는 상위 2개 필드입니다.

이제 성능(Performance) 탭을 클릭합니다. 정확도, 정밀도, 리콜 등 모델의 성능에 대한 자세한 정보를 확인할 수 있습니다. 또한 모델 성능을 해석하고 추가 모델 튜닝이 필요한지 여부를 결정할 수 있습니다.

다음으로 모델 성능을 추가로 보여주는 시각화가 제공됩니다. 먼저, 오차 행렬을 살펴봅니다. 오차 행렬은 일반적으로 모델 레이블이 예측된 클래스와 실제 클래스 사이에서 어떻게 구분되는지 이해하는 데 사용됩니다. 이 예의 경우 대각선 요소는 정확하게 예측된 레이블의 수를 나타내고 비대각선 요소는 잘못 분류된 레코드를 나타냅니다. 오차 행렬은 가양성과 가음정으로 인한 분류 오류를 분석하는 데 유용합니다.

다음으로 정밀도 대 리콜 곡선을 살펴봅니다. 이 곡선은 레이블을 확률 임계값으로 해석하고 모델 정밀도와 리콜에 대한 다양한 확률 임계값으로 발생하는 트레이드오프를 보여줍니다. SageMaker Autopilot은 이 두 가지 파라미터를 자동으로 최적화하여 최상의 모델을 제공합니다.

다음으로 수신기 조작 특성(ROC)라는 곡선을 살펴봅니다. 이 곡선은 다양한 잠재적 확률 임계값에 대한 실제 양성률과 가양성률 사이의 관계를 보여 줍니다. 대각선은 무작위 추측을 기반으로 하는 가상 모델을 나타냅니다. 이 곡선이 차트의 왼쪽 상단으로 더 많이 당겨질수록 모델의 성능이 좋습니다.

점선은 예측 값이 0인 모델을 나타내며, 이를 흔히 귀무 모형이라고 합니다. 귀무 모델은 무작위로 0/1 레이블을 할당하며, ROC 곡선 아래의 면적은 0.5인데 이는 50%의 확률로 정확함을 나타냅니다.

다음으로, 아티팩트(Artifacts) 탭을 클릭합니다. 특성 추출 코드, 입력 데이터 위치 및 설명 가능성 아티팩트를 포함한 SageMaker Autopilot 실험의 지원 자산이 나와 있습니다.

마지막으로 네트워크(Network) 탭을 클릭합니다. 네트워크 격리 및 컨테이너 트래픽 암호화에 대한 정보가 나와 있습니다.

4단계: SageMaker 모델 엔드포인트 테스트

이제 모델의 세부 정보를 검토했으므로 엔드포인트를 테스트합니다.

+ 아이콘을 클릭하여 새 Python 노트북을 표시합니다. 커널로 Python3를 선택합니다. 첫 번째 셀에서 아래의 코드를 복사해 붙여 넣습니다. 이 코드는 페이로드를 생성하고 모델 엔드포인트에 요청을 제출하고 응답을 구문 분석합니다.

요청을 어디로 보낼지 확인하려면 모델 엔드포인트의 이름을 조회합니다. 왼쪽 창에서 SageMaker 리소스(SageMaker Resources) 아이콘을 클릭합니다. SageMaker 리소스(SageMaker resources) 창에서 엔드포인트(Endpoints)를 선택합니다. 이 자습서의 시작 부분에서 생성한 실험 이름과 연결된 엔드포인트를 클릭합니다. 그러면 엔드포인트 세부 정보(Endpoint Details) 창이 나타납니다. 엔드포인트 이름을 기록하고 Python 3 노트북으로 다시 이동합니다.

다음 코드 조각을 복사하여 노트북의 셀에 붙여 넣고 Shift+Enter를 눌러 현재 셀을 실행합니다. 이 코드는 환경 변수 ENDPOINT_NAME을 설정하고 추론을 실행합니다. 코드가 완료되면 모델 레이블과 관련 확률 점수로 구성된 결과가 표시됩니다.
import os
import io
import boto3
import json
import csv

#: Define the endpoint's name.
ENDPOINT_NAME = 'autopilot-experiment-6d00f17b55464fc49c45d74362f284ce'
runtime = boto3.client('runtime.sagemaker')

#: Define a test payload to send to your endpoint.
payload = {
    "data":{
        "features": {
            "values": [45,"blue-collar","married","basic.9y",'unknown',"yes","no","telephone","may","mon",461,1,999,0,"nonexistent",1.1,93.994,-36.4,4.857,5191.0]
        }
    }
}

#: Submit an API request and capture the response object.
response = runtime.invoke_endpoint(
    EndpointName=ENDPOINT_NAME,
    ContentType='text/csv',
    Body=str(payload)
)

#: Print the model endpoint's output.
print(response['Body'].read().decode())

축하합니다! SageMaker Autopilot을 사용하여 기계 학습 모델을 자동으로 훈련하고 배포하는 방법을 배웠습니다.

5단계: AWS 리소스 정리

사용하지 않는 리소스를 삭제하여 의도하지 않은 비용이 부과되지 않도록 하는 것이 모범 사례입니다.

1단계에서 CloudFormation 템플릿을 실행하여 새 SageMaker Studio 도메인을 생성한 경우 다음 단계를 계속 진행하여 CloudFormation 템플릿으로 생성된 도메인, 사용자 및 리소스를 삭제합니다.

CloudFormation 콘솔을 열려면 AWS Console 검색 창에 CloudFormation을 입력하고 검색 결과에서 CloudFormation을 선택합니다.

CloudFormation 창에서 스택(Stacks)을 선택합니다. 상태 드롭다운 목록에서 활성(Active)을 선택합니다. 스택 이름(Stack name) 아래에서 CFN-SM-IM-Lambda-Catalog를 선택하여 스택 세부 정보 페이지를 엽니다.

CFN-SM-IM-Lambda-Catalog 스택 세부 정보 페이지에서 삭제(Delete)를 선택하여 스택과 함께 1단계에서 생성된 리소스를 삭제합니다.

결론

축하합니다! 기계 학습 모델 자동 생성 자습서를 완료하셨습니다.

SageMaker Autopilot을 사용하여 모델을 자동으로 빌드, 훈련 및 튜닝한 다음 최적의 후보 모델을 배포하여 예측을 실행했습니다.

이 페이지의 내용이 도움이 되었습니까?

다음 단계

Amazon SageMaker Autopilot에 대해 자세히 알아보기

웹 페이지 방문
자세히 알아보기 »

SageMaker Autopilot 설명서 살펴보기

Amazon SageMaker Autopilot을 시작하는 방법 알아보기
더 보기 »
추가 실습 자습서 찾기
기계 학습을 활용하는 방법에 대한 실습 자습서 더 찾아보기
시작하기 »