Vertex AI: AutoML을 사용한 대출 위험 예측
개요
이 실습에서는 Vertex AI를 사용해 테이블 형식의 데이터 세트로 대출 위험을 예측하도록 머신러닝 모델을 학습시키고 처리합니다.
목표
다음 작업을 수행하는 방법을 알아봅니다.
- Vertex AI에 데이터 세트 업로드
- AutoML을 사용한 머신러닝 모델 학습
- 모델 성능 평가
- 엔드포인트에 모델 배포
- 예측 가져오기
설정
실습 시작 버튼을 클릭하기 전에
다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다.
Qwiklabs 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud Platform에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.
준비할 사항
이 실습을 완료하려면 다음을 준비해야 합니다.
- 표준 인터넷 브라우저(Chrome 브라우저 권장)
- 실습을 완료할 시간
참고: 이미 개인용 GCP 계정이나 프로젝트가 있어도 이 실습에서는 사용하지 마세요.
실습을 시작하고 콘솔에 로그인하는 방법
-
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에 있는 패널에서 이 실습에 사용해야 하는 임시 사용자 인증 정보를 확인할 수 있습니다.
-
사용자 이름을 복사한 다음 Google 콘솔 열기를 클릭합니다. 실습에서 리소스가 실행되며 계정 선택 페이지를 표시하는 다른 탭이 열립니다.
참고: 두 개의 탭을 각각 별도의 창으로 나란히 여세요. -
계정 선택 페이지에서 다른 계정 사용을 클릭합니다. 로그인 페이지가 열립니다.
-
연결 세부정보 패널에서 복사한 사용자 이름을 붙여넣습니다. 그런 다음 비밀번호를 복사하여 붙여넣습니다.
- 이후에 표시되는 페이지를 클릭하여 넘깁니다.
- 이용약관에 동의합니다.
- 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
- 무료 평가판을 신청하지 않습니다.
잠시 후 Cloud 콘솔이 이 탭에서 열립니다.
Vertex AI 소개
이 실습에서는 Google Cloud의 통합 AI 플랫폼인 Vertex AI를 사용해 ML 모델을 학습시키고 배포합니다. Vertex AI는 한 플랫폼에서 ML 모델을 빌드하는 2가지 옵션을 제공합니다. 바로 AutoML을 사용한 코드 없는 솔루션과 Vertex Workbench에서 커스텀 학습을 사용한 코드 기반 솔루션이 있습니다. 이 실습에서는 AutoML을 사용합니다.
이 실습을 통해 특정 고객의 대출금 상환 여부를 판단하는 ML 모델을 빌드합니다.
작업 1. 학습 데이터 준비
맨 처음에 Vertex AI 대시보드는 학습 데이터를 준비하고 모델을 학습시키고 예측을 가져오는 등 ML 모델을 학습시키고 배포하는 주요 단계를 보여줍니다. 나중에 대시보드는 최근 데이터 세트, 모델, 예측, 엔드포인트, 노트북 인스턴스 등의 최근 활동을 표시합니다.
데이터 세트 만들기
- Google Cloud 콘솔의 탐색 메뉴에서 Vertex AI > 데이터 세트를 클릭합니다.
- 데이터 세트 만들기를 클릭합니다.
- 데이터 세트에 LoanRisk라는 이름을 지정합니다.
- 데이터 유형 및 목표에서 테이블 형식을 클릭한 후 회귀/분류를 선택합니다.
- 만들기를 클릭합니다.
데이터 업로드
Vertex AI에 데이터를 가져오는 방법에는 세 가지 옵션이 있습니다.
- 컴퓨터에서 CSV 파일 업로드
- Cloud Storage에서 CSV 파일 선택
- BigQuery에서 테이블 또는 뷰 선택
편의를 위해 데이터 세트를 이미 Cloud Storage에 업로드한 상태입니다.
-
데이터 소스에서 Cloud Storage에서 CSV 파일 선택을 선택합니다.
-
가져오기 파일 경로에 다음을 입력합니다.
- 계속을 클릭합니다.
(선택사항) 통계 생성
-
데이터 세트에 포함된 각 열의 기술통계를 보려면 통계 생성을 클릭합니다.
특히 처음으로 통계를 생성하는 경우 몇 분 정도 걸릴 수 있습니다. -
통계가 준비되면 각 열 이름을 클릭하여 분석 차트를 표시합니다.
작업 2. 모델 학습
데이터 세트가 업로드되었으니 고객의 대출금 상환 여부를 예측하도록 모델을 학습시킬 준비가 되었습니다.
- 새 모델 학습을 클릭하고 기타를 선택합니다.
학습 방법
-
데이터 세트에 이미 LoanRisk라는 이름이 지정되어 있습니다.
-
목표에서 분류를 선택합니다.
회귀 대신 분류를 선택하는 이유는 고객의 대출금 상환 여부를 연속되는 숫자가 아닌 고유한 숫자(상환 시 0, 채무불이행/미상환 시 1)로 예측하기 때문입니다.
- 계속을 클릭합니다.
모델 세부정보
모델 이름과 타겟 열을 지정합니다.
-
모델에 LoanRisk와 같은 이름을 지정합니다.
-
타겟 열에서 기본값을 선택합니다.
-
(선택사항) 고급 옵션에서 학습 및 테스트 데이터를 할당하는 방법과 암호화 방법을 결정합니다.
-
계속을 클릭합니다.
-
특성 추가에서 계속을 클릭합니다.
학습 옵션
학습 모델에 포함할 열을 지정합니다. 예를 들어 ClientID는 대출 위험 예측과는 무관할 수 있습니다.
-
ClientID 행에서 빼기 기호를 클릭하여 학습 모델에서 제외합니다.
-
(선택사항) 고급 옵션에서 다른 최적화 목표를 선택합니다.
테이블 형식 AutoML 모델의 최적화 목표에 대한 자세한 내용은 테이블 형식 AutoML 모델의 최적화 목표 가이드를 참조하세요. -
계속을 클릭합니다.
컴퓨팅 및 가격 책정
-
학습에 쓸 노드 시간을 나타내는 예산에 1을 입력합니다.
처음에는 보통 컴퓨팅 1시간 동안 AutoML 모델을 학습시키면 선택한 특성과 라벨 사이에 관계가 있는지 여부를 파악하는 데 도움이 됩니다. 이후 특성을 수정하고 학습 시간을 늘려 모델 성능을 개선하면 됩니다. -
조기 중단을 사용 설정됨 상태로 둡니다.
-
학습 시작을 클릭합니다.
데이터 크기 및 학습 방법에 따라 학습 시간은 몇 분에서 몇 시간까지 걸릴 수 있습니다. 학습 작업이 완료되면 일반적으로 Google Cloud에서 이메일이 전송됩니다. 하지만 Qwiklabs 환경에서는 이메일이 전송되지 않습니다.
모델이 학습될 때까지 기다리는 시간을 줄이려면 작업 5에서 선행 학습된 모델을 다운로드해 작업 6에서 예측을 가져옵니다. 이 선행 학습된 모델은 작업 1부터 작업 2의 단계를 그대로 따르면 얻게 되는 학습 결과입니다.
작업 3. 모델 성능 평가(데모용)
Vertex AI는 모델 성능을 평가할 수 있는 여러 측정항목을 제공합니다. 그중 다음 3가지 측정항목에 주목하세요.
- 정밀도-재현율 곡선
- 혼동 행렬
- 특성 중요도
정밀도/재현율 곡선
신뢰도 임곗값에 따라 ML 모델에서 양성 사례를 집계하는 방식이 결정됩니다. 임곗값이 높으면 정밀도가 높아지지만 재현율이 낮아집니다. 임곗값이 낮으면 정밀도가 낮아지지만 재현율이 높아집니다.
수동으로 임곗값을 조정하여 정밀도와 재현율에 미치는 영향을 관측하고 비즈니스 요구사항에 맞는 최상의 절충점을 찾을 수 있습니다.
혼동 행렬
혼동 행렬은 테스트 세트에 있는 각 클래스에서 모델이 올바르게 예측한 예시의 비율을 알려줍니다.
이 혼동 행렬은 초기 모델이 테스트 세트의 상환 예시 100%와 채무불이행 예시 87%를 올바르게 예측할 수 있음을 보여줍니다. 성능이 그리 나쁘지 않은 셈입니다.
더 많은 예시(데이터)를 추가하고 새 특성을 추출하고 학습 방법을 변경하면 이 비율을 개선할 수 있습니다.
특성 중요도
Vertex AI에서 특성 중요도는 각 특성의 예측 기여도를 보여주는 막대 그래프를 통해 표시됩니다. 막대가 길거나 특성과 관련된 숫자 값이 클수록 특성의 중요도가 더 높습니다.
특성 중요도 값을 사용하면 모델을 개선하고 예측 신뢰도를 높일 수 있습니다. 다음에 모델을 학습시킬 때 중요도가 가장 낮은 특성을 삭제하거나 더 중요한 특성 두 개를 특성 교차로 결합하여 모델 성능이 개선되는지 확인할 수 있습니다.
특성 중요도는 Explainable AI라고 부르는 Vertex AI의 포괄적인 머신러닝 기능 중 한 가지 예에 불과합니다. Explainable AI는 머신러닝 모델에서 수행한 예측을 이해하고 해석하는 데 도움이 되는 도구이자 프레임워크입니다.
작업 4. 모델 배포(데모용)
학습된 모델이 있으므로 다음 단계는 Vertex에서 엔드포인트를 만드는 것입니다. Vertex의 모델 리소스에는 여러 엔드포인트가 연결되어 있을 수 있으며 엔드포인트 간에 트래픽을 분할할 수 있습니다.
엔드포인트 생성 및 정의
-
모델 페이지에서 배포 및 테스트를 클릭한 후 엔드포인트에 배포를 클릭합니다.
-
엔드포인트 이름에 LoanRisk를 입력합니다.
-
계속을 클릭합니다.
모델 설정 및 모니터링
-
트래픽 분할 설정은 그대로 둡니다.
-
머신 유형에서 e2-standard-8(vCPU 8개, 메모리 32GiB)을 선택합니다.
-
설명 기능 옵션에서 특성 기여 분석을 클릭합니다.
-
완료를 클릭합니다.
-
계속을 클릭합니다.
-
모델 모니터링에서 계속을 클릭합니다.
-
모델 객체 > 학습 데이터 소스에서 Vertex AI 데이터 세트를 선택합니다.
-
드롭다운 메뉴에서 데이터 세트를 선택합니다.
-
타겟 열에서 기본값을 입력합니다.
-
나머지 설정은 그대로 두고 배포를 클릭합니다.
엔드포인트를 배포하는 데 몇 분 정도 걸립니다. 완료되면 이름 옆에 녹색 체크표시가 나타납니다.
이제 배포된 모델에 대한 예측을 가져올 준비가 되었습니다.
작업 5. SML Bearer 토큰
Bearer 토큰 검색
파이프라인을 인증받고 엔드포인트를 호출하여 예측값을 얻으려면 Bearer 토큰을 제공해야 합니다.
토큰을 얻으려면 아래 안내를 따르세요. Bearer 토큰을 얻는 데 문제가 있다면 시크릿 창의 쿠키 때문일 수 있습니다. 이 경우 시크릿 창이 아닌 다른 창에서 이 단계를 시도하세요.
-
로그인할 때는 학생 이메일 주소와 비밀번호를 사용합니다.
-
복사 버튼을 클릭합니다. 그러면 매우 긴 토큰이 클립보드에 복사됩니다.
이 토큰은 약 60초 동안만 사용할 수 있으니 복사하고 다음 단계로 진행하세요.
작업 6. 예측 가져오기
이 섹션에서는 공유 머신러닝(SML) 서비스를 사용해 기존의 학습된 모델로 작업합니다.
환경 변수 | 값 |
---|---|
AUTH_TOKEN | 이전 섹션의 값 사용 |
엔드포인트 | https://sml-api-vertex-kjyo252taq-uc.a.run.app/vertex/predict/tabular_classification |
INPUT_DATA_FILE | INPUT-JSON |
학습된 모델을 사용하려면 몇 가지 환경 변수를 만들어야 합니다.
-
Cloud Shell 창을 엽니다.
-
INSERT_SML_BEARER_TOKEN
을 이전 섹션의 Bearer 토큰 값으로 바꿉니다.
- 실습 애셋을 다운로드합니다.
- 실습 애셋을 추출합니다.
- 엔드포인트 환경 변수를 만듭니다.
-
INPUT_DATA_FILE
환경 변수를 만듭니다.
INPUT-JSON
파일은 다음 값으로 구성됩니다.
age | ClientID | income | loan |
---|---|---|---|
40.77 | 997 | 44964.01 | 3944.22 |
-
환경 변수에 지정된 파라미터를 전달하여 SML 서비스를 테스트합니다.
-
SML 서비스에 대한 요청을 수행합니다.
이 쿼리는 다음과 유사한 응답을 반환합니다.
-
INPUT-JSON
파일을 변경하여 새 시나리오를 테스트합니다.
age | ClientID | income | loan |
---|---|---|---|
30.00 | 998 | 50000.00 | 20000.00 |
-
INPUT-JSON
파일을 수정하고 원래 값을 바꿉니다. 원하는 편집기(vim
,nano
,emacs
) 또는 Cloud Shell 코드 편집기를 사용할 수 있습니다. -
환경 변수에 지정된 파라미터를 전달하여 SML 서비스를 테스트합니다.
-
SML 서비스에 대한 요청을 수행합니다.
이 경우 소득이 50,000이고 연령이 30세이며 대출금이 20,000인 사람이 있다고 가정하면 모델에서는 이 사람이 대출금을 상환할 것으로 예측합니다.
이 쿼리는 다음과 유사한 응답을 반환합니다.
Google Cloud 콘솔을 사용하는 경우 동일한 작업을 수행하는 방법을 다음 이미지를 통해 살펴볼 수 있습니다.
수고하셨습니다
이제 Vertex AI를 사용해 다음 작업을 수행할 수 있습니다.
- 데이터 세트 업로드
- AutoML을 사용한 모델 학습
- 모델 성능 평가
- 엔드포인트에 학습된 AutoML 모델 배포
- 예측 가져오기
Vertex AI의 다른 부분에 대해 자세히 알아보려면 Vertex AI 문서를 참조하세요.
실습 종료하기
실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
- 별표 1개 = 매우 불만족
- 별표 2개 = 불만족
- 별표 3개 = 중간
- 별표 4개 = 만족
- 별표 5개 = 매우 만족
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.