<jupyter_start><jupyter_text>1.1 Amazon SageMaker Training 실습  학습 작업의 실행 노트북 개요이 노트북은 SageMaker에서 Training Job을 통해서 모델 학습합니다.상세한 사항은 개발자 가이드를 참조 하세요. -->  [모델 학습](https://sagemaker.readthedocs.io/en/stable/overview.htmlprepare-a-training-script)- 일반적으로 SageMaker Training은 아래와 같이 진행이 됩니다.    - [작업 실행 시 필요 라이브러리 import](작업-실행-시-필요-라이브러리-import)    - [SageMaker 세션과 Role, 사용 버킷 정의](SageMaker-세션과-Role,-사용-버킷-정의)    - [하이퍼파라미터 정의](하이퍼파라미터-정의)    - [학습 실행 작업 정의](학습-실행-작업-정의)        - 학습 코드 명        - 학습 코드 폴더 명        - 학습 코드가 사용한 Framework 종류, 버전 등        - 학습 인스턴스 타입과 개수        - SageMaker 세션        - 학습 작업 하이퍼파라미터 정의        - 학습 작업 산출물 관련 S3 버킷 설정 등    - [학습 데이터셋 지정](학습-데이터셋-지정)        - 학습에 사용하는 데이터셋의 S3 URI 지정    - [학습 실행](학습-실행)    - [데이터 세트 설명](데이터-세트-설명)  작업 실행 시 필요 라이브러리 import<jupyter_code>import boto3
import sagemaker<jupyter_output><empty_output><jupyter_text>SageMaker 세션과 Role, 사용 버킷 정의<jupyter_code>sagemaker_session = sagemaker.session.Session()
role = sagemaker.get_execution_role()
bucket = sagemaker_session.default_bucket()
code_location = f's3://{bucket}/xgboost/code'
output_path = f's3://{bucket}/xgboost/output'<jupyter_output><empty_output><jupyter_text>하이퍼파라미터 정의<jupyter_code>hyperparameters = {
       "scale_pos_weight" : "29",    
        "max_depth": "3",
        "eta": "0.2",
        "objective": "binary:logistic",
        "num_round": "100",
}<jupyter_output><empty_output><jupyter_text>학습 실행 작업 정의<jupyter_code>instance_count = 1
instance_type = "ml.m5.xlarge"
max_run = 1*60*60

use_spot_instances = True
max_wait = 1*60*60
from sagemaker.xgboost.estimator import XGBoost

xgb_estimator = XGBoost(
    entry_point="xgboost_starter_script.py",
    source_dir='src',
    output_path=output_path,
    code_location=code_location,
    hyperparameters=hyperparameters,
    role=role,
    sagemaker_session=sagemaker_session,
    instance_count=instance_count,
    instance_type=instance_type,
    framework_version="1.3-1",
    max_run=max_run,
    use_spot_instances=use_spot_instances,  # spot instance 활용
    max_wait=max_wait,
)<jupyter_output><empty_output><jupyter_text>학습 데이터셋 지정<jupyter_code>data_path=f's3://{bucket}/xgboost/dataset'
!aws s3 sync ../data/dataset/ $data_path<jupyter_output><empty_output><jupyter_text>학습 실행<jupyter_code>xgb_estimator.fit(inputs = {'train': data_path},
                  wait=False)
xgb_estimator.logs()<jupyter_output><empty_output><jupyter_text>데이터 세트 설명- 데이터 세트는 블로그 [Architect and build the full machine learning lifecycle with AWS: An end-to-end Amazon SageMaker demo](https://aws.amazon.com/blogs/machine-learning/architect-and-build-the-full-machine-learning-lifecycle-with-amazon-sagemaker/) 에서 사용한 데이터를 사용합니다. 블로그에서는 데이터 세트에 대해서 이렇게 설명 합니다.- "자동차 보험 청구 사기를 탐지를 위해서 블로그 저자가 데이터를 합성해서 만든 고객과 클레임의 데이터 세트를 사용합니다."<jupyter_code>import pandas as pd
train_prep_df = pd.read_csv('../data/dataset/train.csv')
train_prep_df.groupby('fraud').sample(n=5)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12022965214454576, 'fraction_numerical': 0.011144883485309016, 'mean_word_length': 4.133448873483536, 'pattern_counts': {'":': 4, '<': 29, '<?xml version=': 0, '>': 30, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '65372', 'license': 'MIT-0', 'n_tokens_mistral': 1506, 'n_tokens_neox': 1818, 'n_words': 230, 'path': 'sagemaker/sm-special-webinar/lab_1_training/1.1.SageMaker-Training.ipynb', 'repo_name': 'gonsoomoon-ml/aws-ai-ml-workshop-kr', 'size': '2961'}