본문
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번부터 다시 실행 😭😭😭

댓글