주제

1. 머신러닝 모델 개발 절차
2. 모델 개발 시 발생하는 문제
3.  머신러닝 모델 개발 프레임웍의 필요성
4. SageMaker 소개

 

1. 머신러닝 모델 개발 절차

  • 문제 정의 → 데이터 수집 및 분석 → 모델 훈련 및 테스트 → 모델 배포 → 모델 성능 A/B 테스트 → 전체 배포 여부 결정

1.1 모델 개발 과정 - 가설

  • 어떤 문제를 해결하려고 하며 왜 머신러닝이 필요한가?
  • 문제 해결의 성공 여부를 결정하는 지표
  • 가설을 통해 풀려고 하는 문제의 임팩트와 중요도를 가늠

1.2 모델 성능 A/B 테스트

  • 훈련용 데이터로만 한 검증은 불충분
  • 만든 모델을 실제 사용자의 반응을 통해 어떻게 검증할지?
    • 기존 방식과 얼마나 다른지 A/B 테스트를 사용하여 검증

1.3 모델 개발 전체 과정(Life Cycle)

머신러닝 모델 개발 과정

1.4 A/B 테스트

  • 사용자들을 2개의 그룹으로 나누고 시간을 두어 관련 지표를 비교
    • 한 그룹은 기존 기능에 그대로 노출(control)
    • 다른 그룹은 새로운 기능에 노출(test)
  • 가설에서 영향받는 지표를 미리 정하고 시작하는 것이 일반적임
    • 지표의 경우 성공 / 실패 기준까지 생각해보는 것이 필요함
  • 온라인 서비스에서 새 기능의 임팩트를 객관적으로 측정하는 방법
  • 새로운 기능을 론치함으로서 생기는 위험부담을 줄이는 방법
    • 100%의 사용자에게 론치하는 것이 아닌 작게 시작

 

2. 모델 개발 시 발생하는 문제

2.1 훈련용 데이터 셋 관리

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

2.2 ML 모델 빌딩과 검증

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

2.3 ML 모델 관리

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

2.4 ML 모델 론치 프로세스

  • 만든 모델을 어떻게 프로덕션으로 론치할 것인가?
    • 프로덕션 엔지니어링 팀과의 협업이 중요해짐 → 자동화가 필요
  • 많은 엔지니어들이 데이터 과학자의 일을 모르고, 데이터 과학자도 엔지니어의 일을 모른다
  • 마찰이 생기는 지점 → 개발된 모델의 이양 관련
    • 많은 수의 데이터 과학자들은 R을 비롯한 다양한 툴로 모델을 개발함
    • 하지만 실제 프로덕션 환경은 이 모델들을 지원하지 못함
      • 개발 / 검증된 모델의 프로덕션 환경 론치 시 시간이 걸리고 오류 가능성이 존재
      • 심한 경우 모델 관련 개발을 다시 해야함

 

3. 머신러닝 모델 개발 프레임웍의 필요성

  • 앞서 말한 과정을 모두 해주는 툴이 존재
    • AWS의 SageMaker, Google Cloud의 TFX, KubeFlow, AI Platform, Azure의 Machine Learning 등
  • MLOps 직군의 도래 
    • ML 모델을 계속적으로 빌딩하고 배포하고 모니터링, 이슈 감지 시 escalation 프로세스
  • Data Drift로 인한 모델 성능 저하
    • 시간이 지나면 훈련에 사용한 데이터와 실제 환경의 데이터가 다르게 변화
    • 주기적으로 ML 모델을 다시 빌딩해주는 일이 필요해짐

 

4. SageMaker 소개

  • 머신러닝 모델 개발을 처음부터 끝까지 해결해주는 AWS 서비스
  • 4가지 기능 제공 :
    • 트레이닝 셋 준비(Ground Truth)
    • 모델 훈련
    • 모델 검증
    • 모델 배포와 관리 : API 엔드포인트, 배치 서빙, ...
  • 다양한 머신러닝 프레임웍을 지원
    • Tensorflow/Keras, PyTorch, MXNet, ...
    • 자체 모듈로도 훈련 가능
  • 다양한 개발 방식 지원
    • 기본적으로 파이썬 노트북을 통해 모델 훈련(스칼라 / 자바 SDK도 제공)
    • AutoPilot이라는 노코딩 모델 훈련 기능 제공
  • XGBoost 학습 알고리즘
    • extreme Gradient Boosting
    • 앙상블 기반 Decision Tree를 Gradient Boosting으로 분산 환경에서 구현한 알고리즘
    • 분류와 회귀 문제에 모두 적합(속도와 성능 측면에서 좋은 결과를 보임)
    • SageMaker에서 가장 효율적인 학습 알고리즘

 

+ Recent posts