MLflow
- 머신러닝 실험, 배포를 쉽게 관리할 수 있는 오픈소스
- pip install mlflow
- MLflow가 해결하려 했던 점
1) 실험 추적이 어려움
2) 코드 재현하기 어려움
3) 모델을 패키징하고 배포하는 방법이 어려움
4) 모델을 관리하기 위한 중앙 저장소가 없음 - 핵심 기능
1) Experiment Management & Tracking
머신러닝 관련 "실험들"을 관리하고 각 실험 내용(소스 코드, 하이퍼 파라미터, Metric, 모델 artifact, chart image 등)을 기록할 수 있음
2) Model Registry
MLflow로 실행한 머신러닝 모델을 Model Registry(모델 저장소)에 등록 가능
모델 저장소에 모델이 저장될 때마다 버전이 자동으로 올라감
model registry에 등록된 모델은 타인이 쉽게 공유/활용 가능
3) Model Serving
Model Registry에 등록한 모델을 REST API 형태의 서버로 Serving 가능
Input = Model input
Output = Model output
직접 Docker image를 만들지 않아도 생성 가능
MLflow Component
- MLflow Tracking
머신러닝 코드 실행, 로깅을 위한 API, UI
결과를 local, server에 기록해 여러 실행과 비교도 할수 있고, 팀에선 다른 사용자와 결과를 비교하며 협업가능
* MLflow Tracking - Experiment
하나의 Experiment는 진행하고 있는 머신러닝 프로젝트 단위로 구성되고 여러 Run(실행)을 가짐
생성 : mlflow experiments create --experiment-name [Experiment_name]
Experiment list 확인 : mlflow experiments list
* MLflow Tracking - Run
한 번의 코드 실행 = 하나의 Run 생성
Run하면 여러가지 내용이 기록됨
⊙ Run에서 로깅하는 것들
- Source : 실행한 project의 이름
- Version : 실행 Hash
- Start & end time
- Parameters : 모델 파라미터
- Metrics : 모델의 평가 지표, 시각화 가능
- Tags : 관련된 Tag
- Artifacts : 실행 과정에서 생기는 다양한 파일들(이미지, 모델 Pickle 등)
* MLflow Tracking - UI
UI 실행 : mlflow ui → localhost:5000으로 MLflow UI접속Experiment와 Run의 관계
* MLflow autolog
파라미터를 매번 명시해야 할까 → autolog를 사용하자
하지만 모든 프레임워크에서 사용가능한 것은 아니므로 주의
* MLflow Parameter
* MLflow Hyper Parameter Tuning - MLflow Project
머신러닝 프로젝트 코드를 패키징하기 위한 표준
Project : 소스 코드가 저장된 폴더. 어떤 환경에서 어떻게 실행해야 하는지 저장.
MLflow를 사용한 코드의 프로젝트 메타 정보 저장
MLflow tracking API를 사용하면 프로젝트 버전을 모든 파라미터와 자동으로 로깅 - MLflow Model
모델은 모델 파일과 코드로 저장
MLflow tracking API를 사용하면 자동으로 해당 프로젝트에 대한 내용을 사용함 - MLflow Registry
MLflow model의 life-cycle에서 사용할 수 있는 중앙 모델 저장소
MLflow 서버로 배포하기
- MLflow architecture
- mlflow server 명령어로 Backend Store URI 지정
mlflow server --backend-store-uri sqlite:///mlflow.db --default-artifact-root $(pwd)/artifacts
'네이버 부스트캠프 AI Tech > Deep Learning Basics' 카테고리의 다른 글
[부스트캠프 AI Tech] Docker (0) | 2022.02.15 |
---|---|
[부스트캠프 AI Tech] Linux & Shell Command (0) | 2022.02.15 |
[부스트캠프 AI Tech] Recurrent Neural Network / Transformer (0) | 2022.02.13 |
[부스트캠프 AI Tech] Convolutional Neural Networks (0) | 2022.02.08 |
[부스트캠프 AI Tech] Optimization (0) | 2022.02.07 |
댓글