이번 시간은 MLflow 실습에 들어가기전 Model management 에 대해 배웠다.
1) Model management Cycle
Raw data -> Data processing -> Train & Evaluate : 이 과정을 지속적으로 반복
이를 위해서는
학습에 사용한 데이터 데이터 전처리 코드 전처리 된 데이터 |
사용한 features Model 소스코드 Model pkl 파일 |
Evaluation metric 결과 |
이 내용들이 저장 + 업데이트 + 관리가 되어야 함 → 해당 모델의 성능 재현이 목표
but MLops 의 문제들....ㅠㅠ
학습 단계에서 랜덤 시드가 개발자의 관리 밖의 영역
dependency package 문제도 발생
모델의 사이즈가 커서 학습 시간 (하루 이틀 몇주인 경우도 있음)
이미 전처리, 학습이 된 것들을 다루는 것이 저비용 (컴퓨팅 자원보다는 storage 자원이 더 싸니까)
비슷한 작업 반복
dependency 패키지가 많고, 버전 관리가 어려움
테스트하기가 어려움
reproduce가 어려움
모델 학습용 코드를 구현하는 사람과, 서빙용 코드가 분리되어 있음...
이를 해결 하기 위해 등장한 툴들 : 코드 뿐만 아니라 학습의 메타정보까지 저장해서 모델 서빙까지 가능해지도록 함
2) MLflow 특징
- tracking : 모델 버전의 메트릭을 저장하는 중앙 저장소
하이퍼파라미터에 변화 따른 각각의 성능, 파라미터, 소스 코드 버전, 날짜, 패키징 된 모델자체, 데이터 자체, 주석도 싹 다 저장
클라 - 서버의 구조를 가지고 있음
- project : 성능을 재현할 수 있도록 : 각 패키지 버전 코드 패키징
- model : 통일된 형태로 배포할 수 있도록 --> 포맷화 시켜줌
무슨 언어로 짰던 간에 포맷화 시켜서 작동이 되게끔
- model registry : 실험의 모든 단계를 저장 (** 실무 배포에는 이게 가장 많이 쓰임)
cli 를 통해서 간편하게 배포가 가능함,
학습 단계에서 바로 registry에 바로 등록 배포
필수 링크: https://bit.ly/37BpXiC
19일차 학습 인증샷 :
오늘은 데이터 관리 모델 배포 오픈소스 툴인 mlfow에 대해 살펴봤다.
사실 모델 실험은 많이 해봤지만, 배포 경험은 적기에 이번 기회에 mlflow를 제대로 배워보고 싶다.
매번 모델 실험을 하면서 성능의 향상만 고민하는 습관을 버리고
배포용 코드를 만드는 연습을 해야할 텐데
이번 수업에서 그 방법을 많이 배웠음 좋겠네 !
'Study > MLops' 카테고리의 다른 글
[MLops] 220210 패스트캠퍼스 챌린지 18일차 - DVC 실습(2) (0) | 2022.02.10 |
---|---|
[MLops] 220209 패스트캠퍼스 챌린지 17일차 - DVC 실습 (0) | 2022.02.09 |
[MLops] 220208 패스트캠퍼스 챌린지 16일차 - DVC 실습 (0) | 2022.02.08 |
[MLops] 220207 패스트캠퍼스 챌린지 15일차 - DVC (0) | 2022.02.07 |
[MLops] 220206 패스트캠퍼스 챌린지 14일차 - PVC (0) | 2022.02.06 |
댓글