ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Sagemaker] Introduction
    MLOps/AWS 2024. 5. 19. 21:26

    https://www.udemy.com/course/aws-sagemaker-complete-course-pytorch-tensorflow/?couponCode=LEADERSALE24B

     

    업무상 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 서비스
    • 학습 작업 시작:

      SageMaker Training Job: SageMaker에서 학습 작업을 시작할 때 ECR에 저장된 학습용 Docker 이미지를 지정
      컴퓨팅 리소스 할당: SageMaker는 지정된 이미지를 사용하여 필요한 컴퓨팅 리소스를 할당하고 학습 작업을 실행

     

    • 모델 배포:
      • 배포용 Docker 이미지 준비: 추론 코드를 작성하고 Dockerfile을 사용하여 추론용 Docker 이미지를 빌드
      • 이미지 등록: 추론용 Docker 이미지를 ECR에 푸시
      • SageMaker Endpoint 설정: SageMaker에서 배포 작업을 시작할 때 ECR에 저장된 추론용 Docker 이미지를 지정
      • 엔드포인트 생성: SageMaker는 지정된 이미지를 사용하여 추론 엔드포인트를 생성하고 클라이언트 요청을 처리

     

     

Designed by Tistory.