티스토리 뷰

카테고리 없음

[ML] MLflow

SweetDev 2022. 2. 14. 13:02
네이버 부스트캠프 AI Tech 3기 강의를 듣는 과정에서 작성된 포스트입니다. 
강의 내용을 저만의 언어로 재해석 했습니다.

 

MLflow를 공부하면서 

버전관리, 코드 저장 등의 프로젝트 관리를 해준다는 점에서 머신러닝계의 깃허브 처럼 느껴졌다.

 

중요한 기능들

1 ) 실험 기록하기

실험을 정의하고, 실험을 실행할 수 있다. 

각 실행해서 사용한 소스 코드, 하이퍼 파라미터, 부산물(Chart Image)등을 저장해준다. 

seed, num_round, gamma 등의 변수를 기록해준다. 

 

2 ) 모델 저장소에 등록하기

깃헙처럼 모델의 저장 버전을 관리해준다. 공유가 쉬워진다. 

 

3 ) 모델 서빙

모델 저장소에 등록된 모델에 input을 넣었을 때 나오는 output을 REST API 형태로 사용할 수 있다. 


Experiment 

Experiment == 프로젝트 단위 이다. 

하나의 Experiment는 여러 Run(실행)을 가진다. 

 

생성하기

mlflow experiments create --experiment-name my-first-experiment

 

리스트 확인하기

mlflow experiments list

 

Project 생성하기

패키지 모듈의 상단에 위치한 파일로, 메타 정보를 저장한다. 

실행 파일 등을 지정한다. 

 

 

 

 

사용하기

pip install mlflow

CLI, GUI 둘다 지원중이어서 원하는걸로 쓸 수 있다. 

GUI실행 : mlflow ui

Run으로 실행: mlflow run logistic_regression --experiment-name my-first-experiment --no-conda

 

코드에서 다음과 같이 써주면 된다. 

 

import mlflow

 

mlflow.autolog(log_input_examples=True)

 

mlflow.start_run()

 

 

한계점

모든 프레임워크에서 아직 지원하지는 않는다. 

 

예제

import os
from random import random, randint
from mlflow import log_metric, log_param, log_artifacts

if __name__ == "__main__":
    # Log a parameter (key-value pair)
    log_param("param1", randint(0, 100))

    # Log a metric; metrics can be updated throughout the run
    log_metric("foo", random())
    log_metric("foo", random() + 1)
    log_metric("foo", random() + 2)

    # Log an artifact (output file)
    if not os.path.exists("outputs"):
        os.makedirs("outputs")
    with open("outputs/test.txt", "w") as f:
        f.write("hello world!")
    log_artifacts("outputs")
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함