MLflow에서 실험 로깅

엔드 투 엔드 Machine Learning

Joshua Stapleton

Machine Learning Engineer

MLflow

MLflow 없이는...

  • 추적되지 않고 산만한 실행 다수
  • 서로 달라 비교 어려움
  • 재현 불가, 유실된 실행

MLflow와 함께라면...

  • 추적·정리된 실험 실행
  • 표준화된 실행 간 비교
  • 재현 가능한 실행
  • 모델 공유·배포
엔드 투 엔드 Machine Learning

실험 생성

mlflow.set_experiment()

  • 실험 이름 설정
  • 실행을 위한 작업 공간 제공

 

사용법:

import mlflow

# Set an experiment name, which is a workspace for your runs
mlflow.set_experiment("Heart Disease Classification")
엔드 투 엔드 Machine Learning

실험 실행

# Start a new run in this experiment
with mlflow.start_run():
    # Train a model, get the prediction accuracy
    logistic_model = LogisticRegression()

# Log parameters, eg: mlflow.log_param("n_estimators", logistic_model.n_estimators)
# Log metrics (accuracy in this case) mlflow.log_metric("accuracy", logistic_model.accuracy)
# Print out metrics print("Model accuracy: %.3f" % accuracy)
Model accuracy: 0.96
엔드 투 엔드 Machine Learning

실험 조회

 

mlflow.get_run(run_id)

  • 특정 실행의 메타데이터

 

mlflow.search_runs()

  • 여러 실행의 지표를 DataFrame으로 반환

사용법:

# Fetch the run data and print params
run_data = mlflow.get_run(run_id)
print(run_data.data.params)
print(run_data.data.metrics)

# Search all runs in experiment
exp_id = run_data.info.experiment_id
runs_df = mlflow.search_runs(exp_id)
{'epochs': '20', 'accuracy': 0.95}
엔드 투 엔드 Machine Learning

MLflow UI

 

MLflow 실험 대시보드

 

MLflow 예시 실험 페이지

엔드 투 엔드 Machine Learning

MLflow UI (계속)

 

지표 향상을 보여주는 예시 그래프

 

실행 간 지표 비교 예시

엔드 투 엔드 Machine Learning

MLflow 자료

  • MLflow 소개 MLflow 소개
  • MLflow 공식 홈페이지 MLflow 공식 홈페이지
엔드 투 엔드 Machine Learning

연습해 봅시다!

엔드 투 엔드 Machine Learning

Preparing Video For Download...