{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# [모듈 2.1] 모델 훈련 스텝 및 모델 등록 스텝 개발 \n", "## 부제목: SageMaker 모델 빌드 파이프라인을 이용한 모델 빌드 오케스트레이션\n", "\n", "이 노트북은 \"모델 훈련\" 및 \"모델 등록\" 의 2 가지 스텝을 정의하고, 모델 빌딩 파이프라인을 생성하여 실행하는 노트북 입니다.\n", "아래의 목차와 같이 노트북 실행이 될 예정이고\n", "전체를 모두 실행시에 완료 시간은 약 5분-10분 소요 됩니다.\n", "\n", "- 1. 모델 훈련 및 모델 등록 개요 \n", "- 2. 기본 라이브러리 로딩\n", "- 3. 훈련에 사용할 전처리된 파일을 확인\n", "- 4. 모델 빌딩 파이프라인 의 스텝(Step) 생성\n", "- 5. 파리마터, 단계, 조건을 조합하여 최종 파이프라인 정의 및 실행\n", "- 6. 모델 레지스트리에서 모델 등록 확인\n", "- 7. 훈련 아티펙트 경로 추출\n", "\n", "---\n", "### 노트북 커널\n", "- 이 워크샵은 노트북 커널이 `conda_python3` 를 사용합니다. 다른 커널일 경우 변경 해주세요.\n", "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. 모델 훈련 및 모델 등록 개요\n", "- 모델 훈련 및 등록 단계의 개발자 가이드 \n", " - [모델 훈련 스텝](https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/build-and-manage-steps.html#step-type-training)\n", " - [모델 등록 단계](https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/build-and-manage-steps.html#step-type-register-model)\n", " - [모델 레지스트리로 모델 등록 및 배포](https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/model-registry.html)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. 기본 라이브러리 로딩\n", "\n", "세이지 메이커 관련 라이브러리를 로딩 합니다." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import boto3\n", "import sagemaker\n", "import pandas as pd\n", "import os\n", "\n", "sagemaker_session = sagemaker.session.Session()\n", "role = sagemaker.get_execution_role()\n", "sm_client = boto3.client(\"sagemaker\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2.1 노트북 변수 로딩\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "저장된 변수를 확인 합니다." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Stored variables and their in-db values:\n", "bucket -> 'sagemaker-us-east-1-051065130547'\n", "claims_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "customers_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "input_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "input_preproc_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "project_prefix -> 'sagemaker-webinar-pipeline-advanced'\n", "test_preproc_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n", "train_preproc_data_uri -> 's3://sagemaker-us-east-1-051065130547/sagemaker-w\n" ] } ], "source": [ "%store" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "기존 노트북에서 저장한 변수를 로딩 합니다." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "%store -r" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. 훈련에 사용할 전처리된 파일을 확인\n", "이후에 훈련에서 사용할 S3의 저장된 전처리 데이터를 확인 합니다." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2022-03-21 12:16:19 682602 sagemaker-webinar-pipeline-advanced/preporc/train.csv\n" ] } ], "source": [ "! aws s3 ls {train_preproc_data_uri} --recursive" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | fraud | \n", "vehicle_claim | \n", "total_claim_amount | \n", "customer_age | \n", "months_as_customer | \n", "num_claims_past_year | \n", "num_insurers_past_5_years | \n", "policy_deductable | \n", "policy_annual_premium | \n", "customer_zip | \n", "... | \n", "collision_type_missing | \n", "incident_severity_Major | \n", "incident_severity_Minor | \n", "incident_severity_Totaled | \n", "authorities_contacted_Ambulance | \n", "authorities_contacted_Fire | \n", "authorities_contacted_None | \n", "authorities_contacted_Police | \n", "police_report_available_No | \n", "police_report_available_Yes | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "0 | \n", "8913.668763 | \n", "80513.668763 | \n", "54 | \n", "94 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "99207 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "
1 | \n", "0 | \n", "19746.724395 | \n", "26146.724395 | \n", "41 | \n", "165 | \n", "0 | \n", "1 | \n", "750 | \n", "2950 | \n", "95632 | \n", "... | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "
2 | \n", "0 | \n", "11652.969918 | \n", "22052.969918 | \n", "57 | \n", "155 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "93203 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "
3 | \n", "0 | \n", "11260.930936 | \n", "115960.930936 | \n", "39 | \n", "80 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "85208 | \n", "... | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "0 | \n", "1 | \n", "0 | \n", "
4 | \n", "0 | \n", "27987.704652 | \n", "31387.704652 | \n", "39 | \n", "60 | \n", "0 | \n", "1 | \n", "750 | \n", "3000 | \n", "91792 | \n", "... | \n", "0 | \n", "1 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "0 | \n", "1 | \n", "1 | \n", "0 | \n", "
5 rows × 59 columns
\n", "