Amazon SageMaker로 S3 데이터 활용한 ML 모델 훈련 가이드

Amazon SageMaker를 사용한 S3 데이터를 활용한 첫 ML 모델 훈련

카테고리

데이터 과학/AI

서브카테고리

머신러닝

대상자

AI 및 머신러닝 개발자, 연구자, 학생

  • 중간~고급 수준: AWS 환경 설정, SageMaker SDK 사용, 모델 훈련 및 배포 기술 필요

핵심 요약

  • Amazon SageMaker를 사용하여 S3 버킷에 저장된 데이터로 ML 모델을 훈련하는 단계적 가이드 제공
  • S3 URI(s3://my-ml-bucket/datasets/my-data.csv) 설정과 IAM 역할 권한 부여가 필수적인 인프라 구성 요소
  • XGBoost 알고리즘을 활용한 모델 훈련 및 배포 과정에서 sagemaker.estimator.EstimatorTrainingInput 클래스 사용
  • AWS 리소스 정리(predictor.delete_endpoint())를 통한 비용 최소화 전략 강조

섹션별 세부 요약

1. 사전 준비 조건

  • AWS 계정S3 버킷 생성, IAM 역할 설정
  • S3 URI 예시: s3://my-ml-bucket/datasets/my-data.csv
  • IAM 역할 정책 예시:

```json

{"Effect":"Allow","Action":["s3:GetObject","s3:PutObject"],"Resource":"arn:aws:s3:::my-ml-bucket/*"}

```

2. SageMaker 환경 설정

  • Notebook 인스턴스 생성 후 Jupyter Notebook 실행
  • SageMaker SDK를 사용한 S3 데이터 로드:

```python

import pandas as pd

df = pd.read_csv('s3://my-ml-bucket/datasets/my-data.csv')

```

3. 데이터 전처리 및 분할

  • train_test_split을 사용한 데이터 분할:

```python

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

```

  • CSV 파일로 변환 후 S3에 업로드:

```python

train_data.to_csv('train.csv', index=False)

session.upload_data('train.csv', bucket=bucket, key_prefix='train')

```

4. XGBoost 알고리즘을 통한 모델 훈련

  • SageMaker XGBoost 컨테이너 호출:

```python

xgboost_container = sagemaker.image_uris.retrieve("xgboost", session.boto_region_name)

```

  • Estimator 설정 및 Hyperparameter 조정:

```python

xgb.set_hyperparameters(objective='binary:logistic', num_round=100)

xgb.fit({'train': TrainingInput(f's3://{bucket}/train/train.csv', content_type='csv')})

```

5. 모델 배포 및 정리

  • Endpoints 생성예측 수행:

```python

predictor = xgb.deploy(initial_instance_count=1, instance_type='ml.m5.large')

result = predictor.predict(X_test.to_numpy())

```

  • 리소스 정리:

```python

predictor.delete_endpoint()

```

결론

  • IAM 역할 권한S3 URI 설정을 철저히 확인하여 인프라 구성 오류 방지
  • SageMaker의 XGBoost 알고리즘을 활용한 모델 훈련 시 EstimatorTrainingInput 클래스 사용 권장
  • 리소스 정리(delete_endpoint())를 통해 비용 절감 및 프로덕션 환경 최적화
  • S3와 SageMaker 통합은 ML 모델 훈련의 확장성과 효율성을 극대화하는 핵심 전략