Myo-Kyeong Tech Blog

[MLOps] MLOps 실험관리 : MLflow 설치 및 실행 본문

MLOps

[MLOps] MLOps 실험관리 : MLflow 설치 및 실행

myo-kyeong 2025. 8. 16. 23:51
728x90
반응형

실험과 실험 관리

  • 실험(Experiment) :
    • 데이터를 사용해 모델을 학습하고 성능을 평가하는 과정
    • 예 : 특정 데이터셋으로 모델을 학습시킨 뒤 Accuracy를 확인하는 것
  • 실험 관리 (Experiment Management) :
    • 여러 실험의 결과와 설정을 기록·추적·비교·재현할 수 있도록 체계적으로 관리하는 것
    • 왜 필요할까?
      • "어제 돌린 코드가 제대로 학습 끝났나?"
      • "가장 성능이 좋았던 모델은 어떤 파라미터를 썼더라?"
        => 이런 질문에 바로 답할 수 있도록 만드는 게 목적
  • 관리해야 할 정보
    • 데이터(Data) : 어떤 데이터셋을 사용했는가 (예: data.csv)
    • 코드 (Code) : 어떤 알고리즘/프레임워크를 사용했는가 (예: scikit-learn)
    • 파라미터(Parameters) : 모델 하이퍼파라미터 값들 (예 : n_estimators, max_depth)
    • 결과(Metrics) : 실험 성능 지표 (예: Accuracy, Loss, F1-score 등)
  • 모든 실험 정보를 표(테이블) 형태로 정리하면, 한눈에 비교 가능
  • 자동화된 기록이 있어야 재현성(다시 실행 시 결과 보장)과 성능 비교가 쉬움

=> 실험 관리 = 데이터를 어떻게 학습했는지(데이터·코드·파라미터) + 그 결과가 어땠는지(메트릭)를 자동으로 기록·비교·재현 하는 과정

 

 

MLflow 설치 및 실행 방법

1. 로컬(Host)에서 mlflow 설치·실행 하기

[mlflow 설치]

pip install mlflow

[mlflow 서버 실행]

mlflow server --host 0.0.0.0 --port 5000
  • --host 0.0.0.0 : 외부에서도 접속 가능하도록 설정
  • --port 5000 : 기본 포트 (브라우저에서 http://localhost:5000 으로 접속 -> MLflow UI 확인 가능)

 

2. Docker로 실행

[Dockerfile 작성]

FROM amd64/python:3.9-slim

RUN pip install --upgrade pip && \
    pip install mlflow

CMD ["mlflow", "server", "--host", "0.0.0.0"]

[이미지 빌드 & 실행]

# 이미지 빌드
docker build -t mlflow-server .

# 컨테이너 실행 (로컬 5001 포트 ↔ 컨테이너 5000 포트 연결)
docker run -p 5001:5000 mlflow-server
  • 5000 : 컨테이너 내부 포트
  • 5001 : 로컬(호스트)에서 접근할 포트

 

3. Docker Compose 실행 (여러 서비스 관리 시)

[docker-compose.yaml 작성]

version: "3"
services:
  mlflow-server:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "5001:5000"

[실행 명령어]

docker compose up -d --build   # 실행 (백그라운드)
docker compose logs            # 로그 확인
docker compose down            # 종료

 

 

728x90
반응형