본문

4. Amazon SageMaker 시작하기

반응형

Amazon SageMaker AI 소개

 

요리를 할 때 재료 준비부터 조리, 서빙까지 모든 과정이 필요하듯이 AI 모델도 비슷한 과정을 거칩니다.

SageMaker Studio는 머신 러닝 개발을 위한 웹 기반 통합 개발 환경(IDE)으로, 데이터 준비, 모델 학습, 모델 배포 등 전체 ML 워크플로우를 한 곳에서 관리할 수 있습니다.

 

SageMaker 주요 기능

1. 데이터 준비 (재료 준비하기)

  • 데이터 수집과 저장
  • 데이터 정제와 가공
  • 데이터 라벨링
  • AI가 학습할 수 있도록 데이터에 정답을 달아주는 작업입니다. 예시:

2. 모델 개발 (레시피 작성하기)

  • 노트북으로 코딩
  • 기존 AI 모델 활용
  • 자동 모델 최적화

3. 모델 학습 (실제 요리하기)

  • 필요한 만큼의 컴퓨팅 자원 사용
  • 학습 과정 모니터링
  • 비용 최적화 가능

4. 모델 배포 (서비스 제공하기)

  • 완성된 모델을 웹서비스로 배포

Amazon SageMaker 활용

1. CI/CD 파이프라인을 통한 모델 배포 및 관리

SageMaker는 CI/CD(지속적 통합/지속적 배포) 파이프라인을 통해 모델 배포 및 관리 프로세스를 자동화합니다.

 

  • 모델 배포
    • SageMaker는 학습된 모델을 엔드포인트에 배포하여 실시간 추론을 수행할 수 있습니다.
    • 배치 변환(Batch Transform)을 사용하여 대량의 데이터에 대한 오프라인 추론도 가능합니다.
    • 모델 버전 관리를 통해 여러 버전의 모델을 관리하고 필요에 따라 롤백할 수 있습니다.
    • 블루/그린 배포, 카나리아 배포 등의 전략을 사용하여 안전하게 모델을 업데이트할 수 있습니다.
  • 모델 모니터링
    • SageMaker Model Monitor는 배포된 모델의 성능을 지속적으로 모니터링하고 이상 징후를 탐지합니다.
    • 데이터 드리프트, 개념 드리프트 등 모델 성능 저하의 원인을 파악하고 조치를 취할 수 있습니다.
    • CloudWatch와 연계하여 모델 지표를 시각화하고 알람을 설정할 수 있습니다.
  • MLOps 파이프라인
    • SageMaker는 AWS CodePipeline, AWS CodeBuild 등과 통합되어 MLOps 파이프라인을 구축할 수 있습니다.
    • 데이터 전처리, 모델 훈련, 모델 평가, 모델 배포 등 전체 워크플로우를 자동화할 수 있습니다.
    • 코드 변경이나 새로운 데이터 유입 시 자동으로 파이프라인이 실행되어 모델을 업데이트합니다.
    • MLOps 파이프라인을 통해 기계 학습 모델의 개발, 배포, 관리를 효율화하고 안정성을 높일 수 있습니다.

 

2. 자동화된 기계 학습(AutoML)

 

  • SageMaker Autopilot은 AutoML 기능을 제공하여 코드 작성 없이도 최적의 모델을 자동으로 생성할 수 있습니다.
  • 사용자는 데이터셋과 타겟 변수만 지정하면, Autopilot이 자동으로 데이터 전처리, 알고리즘 선택, 하이퍼파라미터 최적화 등을 수행합니다.
  • Autopilot은 생성된 모델들을 비교하고 평가하여 최상의 모델을 추천하므로, 기계 학습 전문 지식이 부족한 사용자도 손쉽게 고품질 모델을 개발할 수 있습니다.

AWS GPU 인스턴스 비용 한눈에 보기

💡 NOTICE

  • 달러 환율: $1 = 1,350원 기준
  • 학습 시간이 길어질수록 비용이 크게 증가하니 꼭 예산 계획을 세우고 시작하세요!

고성능 GPU (H100/A100)

  • H100 8개(ml.p5.48xlarge): 시간당 13만원, 일 317만원
  • H100 4개(ml.p5.24xlarge): 시간당 6.6만원, 일 159만원
  • A100 8개 개선형(ml.p4de.24xlarge): 시간당 5.5만원, 일 133만원
  • A100 8개(ml.p4d.24xlarge): 시간당 4.4만원, 일 106만원

중급 GPU (A10G/T4)

  • A10G 8개(ml.g5.48xlarge): 시간당 2.2만원, 일 52만원
  • T4 1개(ml.g4dn.xlarge): 시간당 994원, 일 2.4만원

 

👀  참고: 트러블슈팅 가이드

ResourceLimitExceeded 에러

a) 정상적인 CASE (학습 인스턴스: ml.g4dn.xlarge)

 

b) ResourceLimitExceeded (학습 인스턴스: ml.g5.24xlarge)

 

c) 해결 방법

가용 인스턴스 타입 확인 및 할당량 증가 요청

 

1. AWS Console 접속 > Service Quotas 서비스로 이동

 

2. AWS 서비스 선택 > "SageMaker" 검색

 

3. 가용 “인스턴스 타입 for training job usage” 확인

  • 예시: ml.g5.48xlarge for training job usage
  • 할당량이 없다면, 할당량 증가 요청을 한다


GPU로 직접 학습하기 vs Training Job 활용하기

AI 모델을 학습시키는 방법에는 크게 두 가지가 있습니다. 먼저 직접 학습 방식부터 살펴볼게요.

 

1. 직접 모델 학습

이 방식은 SageMaker의 JupyterLab 노트북에서 직접 모델을 학습시키는 방법입니다.

장점:

  • 코드를 실시간으로 수정하고 디버깅 가능
  • 학습 과정을 바로바로 확인하고 대응 가능

단점:

  • 비용이 많이 발생함 (노트북을 켜둔 시간만큼 지속적으로 비용이 청구됨)
  • (비용 절감을 위해) GPU 노트북을 반납하면 다음에 같은 고사양 GPU를 다시 받을 수 있을지 불확실함

 

  • GPU 컴퓨터 확보가 매우 어려움 (2024년 12월 현재, 전세계적으로 GPU 부족)
    • AWS에서 Service Quota 증설을 요청하더라도 GPU 인스턴스 사용 승인이 나지 않는 상황
    • 버지니아, 오레곤, 오사카, 서울 등 여러 리전에서 Service Quota 증설을 신청했으나, 모두 승인 거절
    • Service Quota 증설요청 예시 (버지니아 북부 리전)


2. Training Job으로 학습하기

학습에 필요한 재료(코드와 데이터)를 준비해서 SageMaker에 맡기면, AWS가 학습을 진행합니다.

 

장점

  • 비용 효율적 (학습 완료 후 자동으로 인스턴스 반환)
  • 대규모 학습에 적합

단점

  • 초기 설정이 더 복잡함
  • Training Job 또한 원하는 인스턴스 확보가 어려울 수 있음
    • 시리즈 별로 Service Quota 증설 요청을 시도한 끝에, ml.p5.48xlarge 인스턴스 사용 승인을 받을 수 있었음
    • Service Quota 증설요청 예시 (버지니아 북부 리전)

 

  • 디버깅이 어려움 (학습 실패 후, 로그 확인 및 수정 필요)

 

✅ 디버깅을 해보자

1. 인스턴스 할당

 

2. SageMaker 학습 환경을 초기화하면서 필요한 의존성 패키지들 설치

 

3. Base Model 로드: 각 GPU가 담당할 모델의 일부분(shard)을 메모리에 로드하는 과정

 

4. 분산 학습 프레임워크 초기화 과정에서 에러 발생

 

5. 버그 수정 후, 1번부터 다시 실행 😭😭😭

반응형

공유

댓글