-
[Sagemaker] IntroductionMLOps/AWS 2024. 5. 19. 21:26
업무상 AWS Sagemaker를 쓸 일이 있어서, Udemy에서 강의를 구매했다.
간단하게 공부하며 정리할 예정이다.
내 리스닝 실력 부족 + 선생님의 인도계 억양 콤보로 챗지피티와 함께 학습을 진행하였다,,,😂
배울것:
- 세이지메이커의 ML 사이클
- DS와 엔지니어에게 필요한, ML를 더 쉽게 적용할 수 있는 방법
- 학습 테크닉(중요):
1. own docker container를 온프레미스에서 세이지메이커로 가져오기
2. 내가 만든 알고리즘을 로컬에서 세이지메이커로 가져오기
3. pre-built된 알고리즘
- Sagemaker 파이프라인 개발
- 학습 스케줄링(주피터 노트북)
Sagemaker란?
- Service used to built to handle ML workflow
- 개발: 주피터 노트북 개발 환경 제공
- 학습: 학습 인프라 관리 (데이터 분석, 라벨링, 분산 학습, 자동 튜닝, 훈련 모니터링)
- 배포: 엔드포인트를 통해 실시간 예측 서비스를 제공, 성능 관리
Sagemaker의 이점
- s3과의 호환성
- 계산 리소스
- 관리, 모니터링 용이
- End-to-End 모델 개발 환경 제공
Sagemaker Architecture
- S3 Bucket:
- Training Data: 학습에 사용될 데이터를 저장
- Model Artifacts: 학습된 모델 아티팩트를 저장
- Model Training:
- Training Code: 모델을 학습시키기 위한 코드
- Helper Code: 학습을 지원하는 추가 코드 (예: 데이터 전처리 코드).
- Training on ML Compute Instances: ML 컴퓨팅 인스턴스에서 모델을 학습/ 학습 코드와 데이터를 사용하여 모델을 학습하고, 결과 모델 아티팩트를 생성
- EC2 Container Registry:
- Training Code Image: 학습 코드를 포함하는 컨테이너 이미지
- Inference Code Image: 추론 코드를 포함하는 컨테이너 이미지
- Deployment / Hosting:
- Inference Code: 추론을 수행하기 위한 코드
- Helper Code: 추론을 지원하는 추가 코드
- Deployment on ML Compute Instances: ML 컴퓨팅 인스턴스에서 모델을 호스팅하고 추론 서비스를 제공/학습된 모델을 배포하여 엔드포인트를 생성
- Endpoint:
- Client Application: 클라이언트 애플리케이션이 엔드포인트를 통해 추론 요청
- Inference Response: 엔드포인트가 추론 요청에 대한 응답을 반환
데이터 흐름
- 데이터 준비: S3 버킷에 학습 데이터를 업로드
- 모델 학습:
학습 데이터와 학습 코드를 사용하여 ML 컴퓨팅 인스턴스에서 모델을 학습
학습된 모델 아티팩트는 S3 버킷에 저장 - 모델 배포:
학습된 모델 아티팩트와 추론 코드를 사용하여 ML 컴퓨팅 인스턴스에 모델을 배포
엔드포인트가 생성되어 클라이언트 애플리케이션이 이를 통해 추론 요청을 보낼 수 있음 - 추론:
클라이언트 애플리케이션이 엔드포인트로 데이터를 전송하여 추론 요청을 보냄
엔드포인트는 추론 결과를 반환
Docker🤔
- Docker 이미지: 소프트웨어를 컨테이너라는 가상화된 환경에 패키징하는 기술로, 동일한 실행 환경을 보장하고 이동성을 높여줌
SageMaker에서의 Docker 이미지 사용 흐름
- 이미지 준비:
- 학습 코드 준비: 모델 학습에 필요한 코드를 작성
- Dockerfile 작성: Dockerfile을 사용하여 필요한 라이브러리, 종속성, 학습 코드를 포함하는 Docker 이미지를 정의
- Docker 이미지 빌드: Dockerfile을 기반으로 이미지를 빌드
- 이미지 등록:
- EC2 Container Registry (ECR): 빌드된 Docker 이미지를 AWS ECR에 푸시
- ECR은 Docker 이미지를 저장하고 관리하는 AWS 서비스
- EC2 Container Registry (ECR): 빌드된 Docker 이미지를 AWS ECR에 푸시
- 학습 작업 시작:
SageMaker Training Job: SageMaker에서 학습 작업을 시작할 때 ECR에 저장된 학습용 Docker 이미지를 지정
컴퓨팅 리소스 할당: SageMaker는 지정된 이미지를 사용하여 필요한 컴퓨팅 리소스를 할당하고 학습 작업을 실행
- 모델 배포:
- 배포용 Docker 이미지 준비: 추론 코드를 작성하고 Dockerfile을 사용하여 추론용 Docker 이미지를 빌드
- 이미지 등록: 추론용 Docker 이미지를 ECR에 푸시
- SageMaker Endpoint 설정: SageMaker에서 배포 작업을 시작할 때 ECR에 저장된 추론용 Docker 이미지를 지정
- 엔드포인트 생성: SageMaker는 지정된 이미지를 사용하여 추론 엔드포인트를 생성하고 클라이언트 요청을 처리
'MLOps > AWS' 카테고리의 다른 글
SageMaker 사이클 및 SDK 2.x 사용법 (0) 2024.02.29 SageMaker를 활용한 빅데이터 처리 및 훈련, 배포, 추론 수행 (2) 2024.02.27 ECR (0) 2024.02.27 AWS CLI 사용 & 파이썬 SDK boto 설치 (0) 2024.02.27