[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개의 댓글

관련 채용 정보