[Boostcamp AI Tech] MLflow

이성범·2022년 2월 16일
0

Boostcamp AI Tech

목록 보기
33/49

MLflow

이번 강에서는 ML 모델의 실험에 대한 버전 관리에 유용한 MLflow에 대하여 학습을 진행했다.

01. MLflow란?

  • ML 모델을 학습시킬 때 가장 중요한 것 중 하나는 다양한 실험 결과를 기록하는 것이다.
  • 우리는 과거에 ML 모델의 실험 결과를 주피터 노트북에 작성하거나 엑셀에 따로 기록하거나 서로 공유를 했다.(모델의 파라미터, 메트릭, 모델 구조 등)
  • 그런데 위와 같은 방식으로 모델을 공유하면 다음과 같은 문제점이 발생한다.
    • 실험을 추적하기 어려움
    • 코드를 재현하기 어려움
    • 모델을 패키징하고 배포하기 어려움
    • 모델을 관라히가 위한 중앙저장소가 존재하지 않음
    • ...
  • 위와 같은 문제를 해결하기 위해서 나온 패키지가 바로 MLflow이다.
  • MLflow는 머신러닝 실험, 배포를 쉽게할 수 있는 오픈소스로 CLI, GUI 환경 모두 지원해준다.

02. MLflow 핵심 기능

  • Experiment Management & Tracking
    • ML 관련 실험들을 관리하고, 각 실험의 내용들을 기록할 수 있다. (만약 하나의 MLflow 서버를 공유한다면 그 서버에 각자의 실험들을 빠르게 공유할 수 있을 것이다. )
    • 각 ML 관련 실험에 사용할 메트릭, 파라미터, 모델 등을 정의하고, 실행하고, 코드를 기록할 수 있다.
  • Model Registry
    • MLflow로 실행한 ML 모델을 모델 저장소에 저장 할 수 있다.(각 모델의 버전은 자동으로 올라감)
    • 따라서 모델 저장소에 등록된 모델은 쉽게 공유 및 활용할 수 있다.(깃허브가 소스코드에 대한 버전 관리이고 Docker가 이미지에 대한 버전 관리라면, MLflow는 ML 모델 및 실험에 대한 버전 관리라고 할 수 있다.)
  • Model Serving
    • 모델 저장소에 등록한 모델을 REST API 형대의 서버로 쉽게 Serving 할 수 있다.
  • 따라서 MLflow는 위에 해당하는 핵심 기능을 수행하기 위해서 MLflow Tracking, MLflow Project, MLflow Model, MLflow Registry의 Component로 나뉘어 진다.
profile
Machine Learning Engineer at Konan Technology

0개의 댓글