728x90
기록해두어야할 정보
- Model 소스 코드
- Evaluation Metric 결과
- 사용한 hyperparameters
- Model 파일
- 학습에 사용한 data
- 데이터 전처리용 코드
- 전처리 된 data
- 활용한 라이브러리와 버전
- 개발 환경(OS, 도커)
- 배포환경(linux, 도커)
기존 머신러닝의 패턴을 찾아서 만든 것이 MLflow이다.
그리고 Model 학습용 코드를 구현하는 사람과 Serving용 코드를 구현하는 사람이 분리되어있어 이를 합쳐주는 역할이라고 볼 수 있다.
MLflow은 저장방식이 제각각 다른 것들을 통합하는 툴이라고 볼 수 있다.
Experiment Management and Tracking(실험 관리와 트래킹)
머신러닝의 metric, loss 등의 실험 내용들을 추적하여 각 실험들의 내용과 결과 저장 하나의 MLflow 서버를 두고 여럿이서 각자 자기 실험을 한 곳에 저장할 수도 있음 실험 내용 뿐만 아니라 실험에 사용한 코드, 하이퍼파라미터, 가중치 파일 등도 저장
Model Registry(모델 저장소)
MLflow로 실험을 진행한 모델들을 model registry라는 저장소에 등록할 수 있음 이 때 버저닝이 자동으로 기록되고, 저장소에 등록된 모델은 다른 사람들에게 쉽게 공유가 가능 ML 실험의 github나 도커 같은 역할을 함
Model Serving(모델 배포)
model register에 등록된 모델을 REST API 형태의 서버로 Serving할 수 있다.
MLflow안에 flask가 내장되어있다.
파이썬, mlflow, 머신러닝 프레임워크 버전을 확인해야한다.
MLflow의 장점
- 쉬운 설치
- 쉬운 Migration
- 대시보드 제공
- 다양한 ML API 제공(scikit-learn, pytorch, tensorflow, xgboost …)
- 다양한 Backend Storage 연동 지원
- 다양한 Artifact Storage 연동 지원
- 상업용으로도 가능
mlflow에 대해서 배웠는데 꼭 한번 써보고 싶다는 생각이 들었다.
나중에 혼자서 로컬에서 mlflow를 사용해봐야겠다.
728x90
'AI 공부' 카테고리의 다른 글
결측치 채우는 방법 (0) | 2022.11.24 |
---|---|
크롤링 (HTML, CSS, User Agent, Selenium) (0) | 2022.08.22 |
댓글