제퍼넷 로고

Amazon SageMaker Autopilot으로 배치 예측 수행

시간

Amazon SageMaker 자동 조종 장치 종단 간 기계 학습(ML) 워크플로를 완료하는 데 필요한 모든 작업을 수행하는 자동화된 기계 학습(AutoML) 솔루션입니다. 데이터를 탐색 및 준비하고, 다양한 알고리즘을 적용하여 모델을 생성하고, 모델 통찰력과 설명 가능성 보고서를 투명하게 제공하여 결과를 해석하는 데 도움을 줍니다. Autopilot은 온라인 추론을 위한 실시간 끝점을 만들 수도 있습니다. Autopilot의 원클릭 기능에 액세스할 수 있습니다. 아마존 세이지 메이커 스튜디오 또는 Python 용 AWS SDK (Boto3) 또는 SageMaker Python SDK.

이 게시물에서는 Autopilot 훈련 모델을 사용하여 레이블이 지정되지 않은 데이터 세트에 대해 일괄 예측을 수행하는 방법을 보여줍니다. 우리는 고객 이탈을 예측할 때 일반적으로 볼 수 있는 기능 유형을 나타내는 종합적으로 생성된 데이터 세트를 사용합니다.

솔루션 개요

일괄 추론, 또는 오프라인 추론은 관찰 배치에 대한 예측을 생성하는 프로세스입니다. 일괄 추론은 온라인 실시간 모델 엔드포인트를 사용할 때처럼 모델 예측 요청에 대한 즉각적인 응답이 필요하지 않다고 가정합니다. 오프라인 예측은 더 큰 데이터 세트와 응답을 위해 몇 분 또는 몇 시간을 기다릴 여유가 있는 경우에 적합합니다. 대조적으로, 온라인 추론은 실시간으로 ML 예측을 생성하며 적절하게 다음과 같이 참조됩니다. 실시간 추론 또는 동적 추론. 일반적으로 이러한 예측은 런타임 시 단일 데이터 관찰에서 생성됩니다.

고객을 잃는 것은 모든 비즈니스에 비용이 많이 듭니다. 불행한 고객을 조기에 식별하면 머물 인센티브를 제공할 수 있습니다. 이동통신 사업자는 이탈한 사람과 서비스를 유지한 사람을 보여주는 이력 고객 데이터를 가지고 있습니다. 이 기록 정보를 사용하여 고객이 ML을 사용하여 이탈할지 예측하는 모델을 구성할 수 있습니다.

ML 모델을 교육한 후 임의의 고객의 프로필 정보(교육에 사용한 것과 동일한 프로필 정보)를 모델에 전달하고 고객이 이탈할지 여부를 모델이 예측하도록 할 수 있습니다. 이 게시물에 사용된 데이터세트는 sagemaker-sample-files 폴더 아래에 호스팅됩니다. 아마존 단순 스토리지 서비스 (Amazon S3) 공개 버킷, 다운로드할 수 있습니다. 5,000개의 레코드로 구성되어 있으며 각 레코드는 21개의 속성을 사용하여 알 수 없는 미국 이동통신사의 고객 프로필을 설명합니다. 속성은 다음과 같습니다.

  • 주 정부 – 고객이 거주하는 미국 주(두 글자 약어로 표시됨) 예: TX 또는 CA
  • 계정 길이 – 이 계정이 활성화된 일수
  • 지역 번호 – 해당 고객 전화번호의 지역번호 XNUMX자리
  • 연락처 – 나머지 XNUMX자리 전화번호
  • 국제 계획 – 국제 전화 요금제 있음: 예/아니오
  • VMail 계획 – 음성 메일 기능 있음: 예/아니오
  • VMail 메시지 – 월 평균 음성 메일 메시지 수
  • 하루 분 – 하루 동안 사용한 총 통화 시간(분)
  • 데이 콜 – 하루 동안 걸려온 총 통화 수
  • 당일 청구 – 주간 통화 요금 청구
  • 이브 민스, 이브 콜스, 이브 차지 – 저녁 시간에 걸려온 전화에 대한 청구 비용
  • 야간 통화, 야간 통화, 야간 요금 – 야간 통화에 대한 청구 비용
  • 국제 시간(분), 국제 통화, 국제 요금 – 국제전화 청구금액
  • CustServ 통화 – 고객 서비스에 걸려온 전화 수
  • 휘젓다? – 고객이 서비스를 떠났습니다: True/False

마지막 속성인 Churn?은 ML 모델이 예측할 대상 속성입니다. 대상 속성이 바이너리이기 때문에 우리 모델은 바이너리 예측을 수행합니다. 이진 분류.

변동 데이터 세트

사전 조건

데이터 세트를 로컬 개발 환경에 다운로드하고 다음 S3 복사 명령을 실행하여 탐색합니다. AWS 명령 줄 인터페이스 (AWS CLI):

$ aws s3 cp s3://sagemaker-sample-files/datasets/tabular/synthetic/churn.txt ./

그런 다음 데이터 세트를 자체 AWS 계정 내의 S3 버킷에 복사할 수 있습니다. Autopilot의 입력 위치입니다. 버킷에 수동으로 업로드하거나 AWS CLI를 사용하여 다음 명령을 실행하여 데이터 세트를 Amazon S3에 복사할 수 있습니다.

$ aws s3 cp ./churn.txt s3://<YOUR S3 BUCKET>/datasets/tabular/datasets/churn.txt

Autopilot 실험 만들기

데이터세트가 준비되면 SageMaker Studio에서 Autopilot 실험을 초기화할 수 있습니다. 전체 지침은 다음을 참조하십시오. Amazon SageMaker Autopilot 실험 생성.

$XNUMX Million 미만 기본 설정, 실험 이름, 데이터 입력 및 출력 위치를 제공하고 예측할 대상 데이터를 지정하여 Autopilot 실험을 쉽게 만들 수 있습니다. 선택적으로 해결하려는 ML 문제 유형을 지정할 수 있습니다. 그렇지 않으면 다음을 사용하십시오. 자동차 설정하고 Autopilot은 제공한 데이터를 기반으로 모델을 자동으로 결정합니다.

자동 조종 실험 만들기

Python용 AWS SDK(Boto3) 또는 SageMaker Python SDK를 사용하여 코드로 Autopilot 실험을 실행할 수도 있습니다. 다음 코드 조각은 SageMaker Python SDK를 사용하여 Autopilot 실험을 초기화하는 방법을 보여줍니다. 우리는 사용 AutoML 클래스 SageMaker Python SDK에서.

from sagemaker import AutoML automl = AutoML(role="<SAGEMAKER EXECUTION ROLE>",
target_attribute_name="<NAME OF YOUR TARGET COLUMN>",
base_job_name="<NAME FOR YOUR AUTOPILOT EXPERIMENT>",
sagemaker_session="<SAGEMAKER SESSION>",
max_candidates="<MAX NUMBER OF TRAINING JOBS TO RUN AS PART OF THE EXPERIMENT>") automl.fit("<PATH TO INPUT DATASET>", job_name="<NAME OF YOUR AUTOPILOT EXPERIMENT>", wait=False, logs=False)

Autopilot이 실험을 시작한 후 서비스는 원시 입력 데이터를 자동으로 검사하고 기능 프로세서를 적용하고 최상의 알고리즘 집합을 선택합니다. 알고리즘을 선택한 후 Autopilot은 하이퍼파라미터 최적화 검색 프로세스를 사용하여 성능을 최적화합니다. 이를 모델 훈련 및 튜닝이라고 합니다. 이것은 궁극적으로 본 적이 없는 데이터에 대해 정확하게 예측할 수 있는 모델을 생성하는 데 도움이 됩니다. Autopilot은 자동으로 모델 성능을 추적한 다음 모델의 정확도와 정밀도를 설명하는 메트릭을 기반으로 최종 모델의 순위를 지정합니다.

자동 조종 실험 결과

모델을 선택하고(오른쪽 클릭) 다음을 선택하여 순위가 지정된 모델을 배포할 수도 있습니다. 모델 배포, 또는 순위 목록에서 모델을 선택하고 모델 배포.

Autopilot의 모델을 사용하여 일괄 예측 수행

Autopilot 실험이 완료되면 훈련된 모델을 사용하여 평가를 위해 테스트 또는 홀드아웃 데이터 세트에서 일괄 예측을 실행할 수 있습니다. 그런 다음 테스트 또는 홀드아웃 데이터 세트에 레이블이 미리 지정되어 있는 경우 예측 레이블을 예상 레이블과 비교할 수 있습니다. 이것은 본질적으로 모델의 예측을 진실과 비교하는 방법입니다. 모델의 예측이 실제 레이블과 더 많이 일치하는 경우 일반적으로 모델을 성능이 좋은 것으로 분류할 수 있습니다. 레이블이 지정되지 않은 데이터에 레이블을 지정하기 위해 일괄 예측을 실행할 수도 있습니다. 몇 줄의 코드로 높은 수준의 SageMaker Python SDK를 사용하여 동일한 작업을 쉽게 수행할 수 있습니다.

이전에 실행한 Autopilot 실험 설명

먼저 이전에 완료된 Autopilot 실험에서 정보를 추출해야 합니다. SageMaker Python SDK의 AutoML 클래스를 사용하여 이전 Autopilot 실험의 정보를 캡슐화하는 automl 객체를 생성할 수 있습니다. Autopilot 실험을 초기화할 때 정의한 실험 이름을 사용할 수 있습니다. 다음 코드를 참조하십시오.

from sagemaker import AutoML autopilot_experiment_name = "<ENTER YOUR AUTOPILOT EXPERIMENT NAME HERE>"
automl = AutoML.attach(auto_ml_job_name=autopilot_experiment_name)

automl 객체를 사용하면 다음 스니펫과 같이 가장 잘 훈련된 모델을 쉽게 설명하고 다시 만들 수 있습니다.

best_candidate = automl.describe_auto_ml_job()['BestCandidate']
best_candidate_name = best_candidate['CandidateName'] model = automl.create_model(name=best_candidate_name, candidate=best_candidate, inference_response_keys=inference_response_keys)

경우에 따라 Autopilot에서 순위가 ​​매겨진 최상의 모델이 아닌 다른 모델을 사용하고자 할 수 있습니다. 이러한 후보 모델을 찾으려면 automl 개체를 사용하고 전체 또는 상위 N개 모델 후보 목록을 반복하고 재생성하려는 모델을 선택할 수 있습니다. 이 게시물에서는 간단한 Python For 루프를 사용하여 모델 후보 목록을 반복합니다.

all_candidates = automl.list_candidates(sort_by='FinalObjectiveMetricValue', sort_order='Descending', max_results=100) for candidate in all_candidates: if candidate['CandidateName'] == "<ANY CANDIDATE MODEL OTHER THAN BEST MODEL>": candidate_name = candidate['CandidateName'] model = automl.create_model(name=candidate_name, candidate=candidate, inference_response_keys=inference_response_keys) break

추론 응답 사용자 지정

Autopilot의 훈련된 모델 중 최고 또는 다른 모델을 다시 만들 때 추가 매개변수를 추가하여 모델에 대한 추론 응답을 사용자 지정할 수 있습니다. inference_response_keys, 앞의 예와 같이. 이 매개변수는 이진 또는 다중 클래스 분류 문제 유형 모두에 사용할 수 있습니다.

  • 예측된 라벨 – 예상 클래스.
  • 확률 – 이진 분류에서 결과가 대상 열의 두 번째 또는 True 클래스로 예측될 확률입니다. 다중 클래스 분류에서 우승 클래스의 확률입니다.
  • 라벨 – 가능한 모든 클래스 목록.
  • 확률 – 모든 클래스에 대한 모든 확률의 목록(순서는 레이블과 일치함).

이 게시물에서 다루고 있는 문제는 이진 분류이기 때문에 모델을 생성하는 동안 앞의 스니펫에서 이 매개변수를 다음과 같이 설정합니다.

inference_response_keys = ['predicted_label', 'probability']

변환기 생성 및 일괄 예측 실행

마지막으로 후보 모델을 다시 만든 후 다음 두 코드 조각과 같이 일괄 예측 작업을 시작하는 변환기를 만들 수 있습니다. 변환기를 생성하는 동안 인스턴스 수 및 유형과 같은 일괄 작업을 실행할 클러스터 사양을 정의합니다. 배치 입력 및 출력은 데이터 입력 및 출력이 저장되는 Amazon S3 위치입니다. 일괄 예측 작업은 SageMaker 일괄 변환.

transformer = model.transformer(instance_count=1, instance_type='ml.m5.xlarge', assemble_with='Line', output_path=batch_output) transformer.transform(data=batch_input, split_type='Line', content_type='text/csv', wait=False)

작업이 완료되면 배치 출력을 읽고 평가 및 기타 다운스트림 작업을 수행할 수 있습니다.

요약

이 게시물에서는 훈련 후 평가를 위해 Autopilot 훈련 모델을 사용하여 배치 예측을 빠르고 쉽게 만드는 방법을 보여주었습니다. SageMaker Studio를 사용하여 Autopilot 실험을 초기화하여 고객 이탈을 예측하는 모델을 생성했습니다. 그런 다음 Autopilot의 최상의 모델을 참조하여 SageMaker Python SDK와 함께 automl 클래스를 사용하여 일괄 예측을 실행했습니다. 또한 SDK를 사용하여 다른 모델 후보와 일괄 예측을 수행했습니다. Autopilot을 사용하여 데이터를 자동으로 탐색하고 사전 처리한 다음 한 번의 클릭으로 여러 ML 모델을 생성하여 SageMaker가 모델을 교육하고 조정하는 데 필요한 인프라를 관리할 수 있도록 했습니다. 마지막으로 배치 변환을 사용하여 최소한의 코드를 사용하여 모델로 예측을 수행했습니다.

Autopilot 및 고급 기능에 대한 자세한 내용은 다음을 참조하십시오. Amazon SageMaker Autopilot으로 모델 개발 자동화. 게시물의 예제에 대한 자세한 설명은 다음을 참조하세요. 노트북 예.


저자에 관하여

아룬 프라 사스 샨 카르 AWS의 인공 지능 및 기계 학습 (AI / ML) 전문 솔루션 아키텍트로서 글로벌 고객이 클라우드에서 AI 솔루션을 효과적이고 효율적으로 확장 할 수 있도록 지원합니다. 여가 시간에 Arun은 공상 과학 영화를보고 클래식 음악을 듣는 것을 즐깁니다.

피터 정피터 정 AWS용 솔루션 아키텍트이며 고객이 데이터에서 통찰력을 찾도록 돕는 데 열정적입니다. 그는 공공 부문과 민간 부문 모두에서 조직이 데이터 기반 의사 결정을 내리는 데 도움이 되는 솔루션을 구축해 왔습니다. 그는 모든 AWS 인증과 XNUMX개의 GCP 인증을 보유하고 있습니다. 그는 커피, 요리, 활동적인 생활, 가족과 함께 시간을 보내는 것을 즐깁니다.

spot_img

최신 인텔리전스

spot_img