< 11주차 다양한 데이터 분석과 ML 모델 만들어보기 05>
머신러닝 모델 개발 절차
1. 문제정의 : 모델 개발 당위성을 가설로 제시
: 어떤 문제를 해결할 것인지.
문제 해결의 성공 여부를 결정하는 지표
: 가설을 통해 풀려고 하는 문제의 임팩트와 중요도를 가늠할 수 있음
2. 데이터 수집 및 분석 : 훈련용 데이터
3. 모델 훈련 및 테스트
4. 모델 배포
5. 모델 성능 A/B 테스트
: 온라인 서비스에서 새 기능의 임팩트를 객관적으로 측정하는 방법
: 새로운 기능을 론치함으로 생기는 위험부담을 줄이는 방법
ex. 추천 기능을 머신러닝 기반으로 바꾼 경우
-> 먼저 5%의 사용자에게만 론치하고 나머지 95%의 사용자와 매출액과 같은 중요 지표를 이용하여 비교
-> 5%의 사용자에게 별 문제가 없으면, 10%, 20%와 같이 사용자를 키우고, 최종적으로 100% 론치
- 보통 사용자들을 2개의 그룹으로 나누고, 시간을 두고 관련 지표를 비교
가설에서 영향받는 지표를 미리 정하고 시작하는 것이 일반적
6. 전체 배포 여부 결정
머신러닝 모델 개발 시 자주 발생하는 문제점들
=> 가장 큰 문제는 배포와 모델을 다시 빌딩하는 순간에 발생한다!
- 훈련용 데이터셋 관리
: 데이터가 여러번 변형되어 데이터셋 관리가 어려워짐 (전처리 과정)
: 데이터셋이 어떻게 수집되었는가? (문서화 필요!!)
: 다양한 feature들을 어떻게 구현했고 관리할 것인가? (피처 엔지니어링)
-> 이미 만들어진 feature들의 공유와 재사용성이 중요함 (feature store)
- ML 모델 빌딩 시 사용되는 하이퍼 파라미터 관리
: 어떤 알고리즘, 파라미터를 결정했는지 모두 파악 필요함 (시간단축)
: 모델 검증 결과를 저장하고 쉽게 찾을 수 있는가?
- ML 모델 관리
: 모델별 사용 알고리즘/하이퍼 파라미터/테스트 결과를 유기적으로 보관해야함.
=> 버저닝이 필요해짐
=> 모델 재연성(reproducibility)이 아주 중요해짐
- 모델 론치 프로세스
: 백엔드 엔지니어와 모델 개발자의 소통 오류 => 모델 API 생성 필요 & 협업 중요
==> 프로세스 자동화가 필요!
- 모델 AB 테스트 프로세스
머신러닝 모델 개발 프레임워크의 필요성
다양한 회사에서 자체 프레임웍을 개발
- 우버의 미켈란젤로
- 에어비앤비의 빅헤드 (BigHead)
- 넷플릭스의 메타플로우 (Metaflow)
- 리프트의 플라이트 (Flyte)
클라우드 업체들도 프레임웍을 SaaS 형태로 제공
- AWS의 SageMaker
- Google Cloud의 TFX, Kubeflow, and AI Platform
- Azure의 Machine Learning
==> 이러한 프레임웍을 책임지고 운영하는 직군이 MLOps
: ML모델을 만드는 데이터과학자들을 대상으로 만든 ML 모델을 자동화하여
테스트, 배포, 모니터링, 조치 등의 모든 과정을 수행함
=> 왜 이러한 과정이 필요한가?
==> Data Drift로 인한 모델 성능 저하
: 시간이 지나면서 훈련에 사용한 데이터와 실제 환경의 데이터가 다르게 변화함.
이를 Data drift라고 부르며, 이를 모니터링 하는 것이 중요
즉, 주기적으로 ML 모델을 다시 빌딩해주는 일이 필요함
'STUDY > DevCourse' 카테고리의 다른 글
[데브코스][데이터 분석] 텍스트 마이닝 개요 (0) | 2024.05.13 |
---|---|
[데브코스][데이터 분석] SageMaker 소개 및 실습 (0) | 2024.05.03 |
[데브코스][데이터 분석] Regression 모델 만들기 (1) | 2024.05.02 |
[데브코스][데이터 분석] Classification 모델 만들기 (0) | 2024.04.30 |
[데브코스][데이터 분석] 데이터 EDA와 머신러닝 소개 (0) | 2024.04.29 |