데이터 분석 Data Analytics/프로그래머스 데이터분석 데브코스 2기

[TIL] 데이터분석 데브코스 55일차 - 머신러닝 모델 개발 과정/머신러닝 프레임워크 SageMaker

상급닌자연습생 2024. 5. 3. 20:27

머신러닝 모델 개발 과정

 

1. 문제 정의

모델 개발 당위성을 가설로 제시

📌 가설
- 어떤 문제를 해결하려고 하는가?
- 왜 문제 해결에 머신러닝이 필요한가?
- 문제 해결의 성공 여부를 결정하는 지표는 무엇인가?
- 지표는 어떻게 계산되며, 성공/실패를 나누는 기준은 무엇인가?

► 가설을 통해 풀고자 하는 문제의 임팩트와 중요도를 가늠할 수 있음

 

 

2. 데이터 수집 및 분석(훈련용 데이터)

 

3. 모델 훈련 및 테스트(평가 데이터)

 

4. 모델 배포

  • 처음에는 1명 정도의 소수의 사람들에게만 배포
  • 괜찮으면 점진적으로 인원수를 늘리는 방향으로 진행

 

5. 모델 성능 A/B 테스트

  • 온라인 서비스에서 새 기능의 임팩트를 객관적으로 측정할 수 있는 방법
  • 사용자들을 2개의 그룹으로 나누고 시간을 두고 관련 지표를 비교
    • control : 기존 기능에 그대로 노출시킴
    • test : 새로운 기능에 노출시킴
  • 가설에서 영향받는 지표 + 성공/실패의 기준을 미리 정하고 시작하는 것이 일반적임

 

6. 전체 배포 여부 결정

 

 

 

 

 

 

 

 

 

머신러닝 모델 개발시 자주 발생하는 문제점

1. 훈련 데이터셋 관리

 

데이터 수집과 관련된 모든 것이 문서화되어야 한다.

  • 어떻게 훈련용 데이터 셋을 수집했는가?
    • label 데이터 비율
    • bias 존재 여부
  • 어떻게 이 데이터들을 보관하고 관리할 것인지?
  • 다양한 feature들을 어떻게 구현했고 관리할 것인가?
    • 데이터 과학자가 코딩을 할 수 있는지 여부가 아주 중요해짐
    • 유닛 테스트를 통한 버그 줄이기
    • 모델 개발 속도 단축
    • Feature Store가 필요해짐
    • 이미 만들어진 feature들의 공유와 재사용성이 중요해짐

 

 

2. ML 모델 빌딩 시 사용한 하이퍼 파라미터 관리

  • 다양한 러닝 알고리즘과 하이퍼 파라미터를 어떻게 손쉽게 테스트 가능한가?
  • 자동화가 관건
  • 모델 빌딩에 사용한 하이퍼 파라미터를 저장하고 쉽게 찾을 수 있는가?
  • 모델 검증 결과를 저장하고 쉽게 찾을 수 있는가?

 

 

3. ML 모델 관리

  • 모델별 사용 알고리즘/하이퍼파라미터/트레이닝셋/테스트 결과를 유기적으로 보관해야함
  • 버전닝(versioning)이 필요해짐
  • 모델 재연성 (reproducibility)이 아주 중요해짐

 

4. 모델 론치 프로세스

  • 만든 모델을 어떻게 프로덕션으로 론치할 것인가?
  • 프로덕션 엔지니어링 팀과의 협업이 중요해짐
  • 이러한 프로세스가 자동화가 필요

 

5. 모델 A/B 테스트 프로세스

 

 

► 위의 문제들을 해결하기 위한 머신러닝 프레임워크의 필요성이 강조됨

머신러닝 프레임워크를 사용하게 되면, 기업 내 데이터팀의 구성원들이 바뀌더라도 같은 프레임워크를 사용하기 때문에 모든 것들이 기록에 남고 좀 더 관리가 용이해진다.

 

 

 

 

 

 

MLOps

  • 개발 직군에서 DevOps에 해당됨
    • 개발자가 만든 코드를 시스템에 반영하는 프로세스 (CI/CD, deployment)
    • 시스템이 제대로 동작하는지 모니터링, 이슈 감지시 escalation 프로세스, On-call 프로세스
  • MLOps 팀의 목적 : 머신러닝과 관계된 여러 프로세스를 하나의 파이프라인으로 하나의 프레임워크에서 관리할 수 있도록 해준다.
    → 목적을 달성하는데 필요한 툴 : 머신러닝 프레임워크
  • MLOps의 역할 : 
    • DevOps와 동일하나 개발자 코드가 아니라 ML 모델이 대상
    • ML모델 지속적으로 빌딩, 배포, 성능 모니터링
  • 데이터 엔지니어, 데브옵스가 알아야 하는 기술, 머신러닝 관련 경험과 지식이 모두 필요 → 주로 시니어가 함

 

 

 

Data Drift

: 시간이 지나면서 훈련에 사용한 데이터와 실제 환경의 데이터가 다르게 변화하는 현상 → 모델 성능 저하를 일으킴

 

  • 이를 해결하기 위해 주기적으로 ML 모델을 다시 빌딩해줘야 함

 

 

 

 

 

 

 

머신러닝 프레임워크 'SageMaker'

: 머신러닝 모델 개발을 처음부터 끝까지 해결해주는 AWS 서비스

 

  • 훈련 데이터 셋 준비 (Ground Truth)
  • 모델 훈련
  • 모델 검증
  • 모델 배포와 관리 : API end point, Batch serving
  • 다양한 머신러닝 프레임웍을 지원 : Tensorflow/Keras, PyTorch, MXNet
  • 다양한 개발방식 지원
    • 기본적으로 Python Notebook : 모델 훈련
    • AutoPilot : 코딩이 불필요한 모델 훈련
  • 다른 클라우드 업체들도 비슷한 프레임워크 제공

 

 

 

대표 기능

1. SageMaker Studio

머신러닝을 개발할 수 있는 통합개발환경(IDE)

  • 다수의 프로그램을 호스팅하는 환경 : Jupyter Notebook, R Studio, Canvas, Code Editor, Studio Classic
  • 다양한 기능 : 
    • Data Wrangler: Processing, Data Sources, Feature Store
    • Studio Notebooks: Algorithms, Autopilot, JumpStart
    • One-Click Training: Experiments, Automatic Model Tuning, Debugger
    • One-Click Deployment: Multi-model Endpoints, Model Monitor, Pipelines

 

 

2. SageMaker Jumpstart

: 다양한 범위의 문제를 해결할 수 있는 pre-trained된 큰 오픈소스 기반의 모델들을 한 곳에 모아둔 중앙저장소와 같은 역할

(Hugging Face Models, Kaggle의 Models와 유사함)

  • Foundation models
  • Computer vision models
  • Natural Language processing models

 

 

3. Canvas (Low/No code)

: 머신러닝 모델 개발을 Low code나 No code로 할 수 있게 해줌

  • Data analysis and preprocessing : 데이터 전처리
  • Model selection : 분석에 맞게 어떤 알고리즘을 선택할 것인지
  • Hyperparameter optimization : 하이퍼파라미터 최적화(그리드 서치)
  • Model training and evaluation : 모델 학습 및 평가
  • Model deployment (and monitor) : 모델 배포 및 모니터링

 

 

 

 

📌 XGBoost(eXtreme Gradient Boosting)

: 앙상블 기반의 의사결정나무를 Gradient Boosting으로 분산환경에서 구현한 알고리즘 (랜덤 포레스트)

 

  • 딥러닝을 하지 않고 머신러닝 알고리즘 중에서도 SageMaker 파이썬 모듈이 제공하는 가장 성능이 좋은 학습 알고리즘
  • 분류, 회귀 문제 모두에 적합
  • 과적합 가능성 있음
  • 속도와 성능 측면에서 좋은 결과

 

 

 

 

 

 

 

 


SageMaker AutoPilot실습

 

AutoPilot

: SageMaker Canvas에서 제공되는 AutoML 기능

📌 AutoML
: 모델 빌딩을 위한 훈련 데이터 셋을 제공하면 자동으로 모델을 만들어주는 기능

 

► 기능

  • 데이터 분석, EDA
  • Python Notebook 코드를 나중에 다운로드 해서 직접 개선 후 사용 가능
  • 빌드 옵션
    • 1) Standard
      • 느린 속도, 많은 비용
      • 품질 좋음
      • 다수의 머신러닝 알고리즘과 하이퍼 파라미터의 조합에 대해 머신러닝 모델 생성/훈련/테스트/결과기록 수행
    • 2) Quick
      • 빠른 속도, 적은 비용
      • 성능 낮음

 

 

🔗 튜토리얼 참고 : https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/1-use-cases/5-hcls

 

Amazon SageMaker Canvas Immersion Day

A 4-hours Immersion day that goes through the details of Amazon SageMaker Canvas, the different features it comprises, and the different use cases it helps solve. Note: if you don't wait for the output of every Standard Build, this workshop can take even l

catalog.us-east-1.prod.workshops.aws

 

 

 

 

 

 

 

 

 


마무리하며

주니어 데이터 분석가, 주니어 데이터 과학자에게 가장 중요한 것은 기본기! 

내가 적은 TIL들 생각날때마다 들여다보면서 꾸준히 복습하자 🍀