Linuxias
Developer's Delight
Linuxias
  • Category
    • AI
      • Deep Learning
      • Machine Learning
      • Data Science
      • Framework
      • MLOps
      • Paper-Review
      • Tips
    • Android
      • Kotlin
      • Component
      • Compose
      • Compose UI
      • Material
      • Testing
    • Software Architecture
      • Architecture Pattern
      • Design Pattern
      • Requirement Engineering
    • Linux
      • Compile & Link
      • Command & Tool
      • Container
      • Debugging & Testing
      • Profiling
      • Kernel Analysis
      • Server
      • Shell Script
      • System Programming
    • Language
      • Carbon
      • C,C++
      • C#
      • Java
      • Python
    • ETC
      • Data Struct | Algorithm
      • git
      • Security
    • Book
    • 경제공부
      • 세금
      • 부동산
hELLO · Designed By 정상우.
Linuxias

Developer's Delight

[MLflow] #1. MLflow 개요 정리
AI/MLOps

[MLflow] #1. MLflow 개요 정리

2023. 3. 30. 14:15
반응형

최근 시스템 프로그래머 직무에서 AI / 데이터 분석 쪽으로 직무를 변경하면서 새로운 지식들을 쌓아가고 있다. 그 중 팀 내에 MLflow를 적용하려는 움직임이 있어서 공부 겸 MLflow 정리를 진행한다.

 

시작하기 전에

머신러닝 프로젝트를 진행하다보면 많은 어려움이 많다. 머신러닝 프로젝트는 관리가 필요한 요소가 너무나 많다.

  • 학습에 사용된 데이터
  • 모델에 사용된 파라미터
  • 모델에 사용된 Feature
  • 실험 결과 저장 장소 및 히스토리
  • 학습된 모델의 버전 관리
  • 학습에 사용된 코드 버전

위 요소 외에도 관리해야 할 요소들이 매우 많다. 이러한 요소들을 로컬환경에서 개인별로 관리하는 것이 아닌 중앙 서버에서 관리해준다면 매우 편리할 것이다. 

그리고 모델을 배포하는 것에도 난이도가 있다. 머신러닝 개발자마다 keras, pytorch 등 사용하는 프레임워크가 다르고 배포를 어떤 방식으로 진행할지도 각자의 의견이 다르다. 또한 배포된 모델의 버전관리는 어떻게 해야할지도 큰 논쟁요소가 된다.

 

MLflow란?

MLflow는 End-to-End로 머신 러닝 라이프사이클을 관리하기 위한 오픈 소스 플랫폼이다.

현재 MLflow는 다음과 같은 경량 API 집합을 제공한다. 어디서나 기존 머신러닝 애플리케이션 또는 라이브러리(TensorFlow, PyTorch, XGBoost 등)와 함께 사용할 수 있으며 머신러닝을 개발 중인 환경 어디든(Notebook, Standard Application, Cloud 등) 실행될 수 있다.

MLflow 플랫폼은 크게 MLflow Tracking, MLflow Projects, MLflow Models, MLflow Model Registry의 컴포넌트로 구성된다. 

  • MLflow Tracking
    • 기계 학습 코드를 실행할 때 파라미터, 코드 버전, 메트릭 및 결과 파일을 기록
    • 나중에 결과를 시각화하기 위한 API 및 UI를 제공한다
  • MLflow Projects
    • 머신러닝 코드를 재사용 가능하고 재현 가능한 형태로 패키징 -> 어떤 플랫폼에서도 재현가능하도록 지원
    • 포장된 형태를 다른 데이터 사이언티스트와 공유하거나 프러덕션에 반영
    • 프로젝트를 실행하기 위한 API와 명령줄 도구가 포함되어 있어 프로젝트를 워크플로우로 연결할 수 있는 기능 제공
  • MLflow Models
    • 머신러닝 모델을 패키징하고 서빙할 수 있는 표준화 방법 제공
    • 동일한 모델을 AWS, Apache Spark 등 으로 쉽게 배치할 수 있도록 지원
    • 다양한 다운스트림 도구(예: REST API를 통한 실시간 제공 또는 Apache Spark의 추론)에서 사용할 수 있는 기계 학습 모델을 패키징하기 위한 표준 형식
    • 다양한 다운스트림 도구에서 이해할 수 있는 다양한 "특성"으로 모델을 저장할 수 있는 규칙을 정의
  • MLflow Model Registry
    • MLflow 모델의 전체 수명 주기를 공동으로 관리하기 위한 중앙 집중식 모델 스토어, API 및 UI 모음
    • 모델 계보(MLflow 실험 및 실행이 모델을 생성함), 모델 버전 관리, 단계 전환(예: 스테이징에서 프로덕션으로) 및 주석을 제공.

 

MLflow 설치해보기

Skinny 버전이 아니라 일반 버전으로 설치했습니다.

# Install MLflow
pip install mlflow

# Install MLflow with extra ML libraries and 3rd-party tools
pip install mlflow[extras]

# Install a lightweight version of MLflow
pip install mlflow-skinny

참고

- https://github.com/mlflow/mlflow

- https://mlflow.org/docs/latest/index.html#

 

 

 

반응형
저작자표시 비영리 (새창열림)

'AI > MLOps' 카테고리의 다른 글

[MLflow] MLflow Project와 Model의 차이  (0) 2023.05.21
[MLflow] #5. MLflow Model Registry  (0) 2023.04.07
[MLflow] #4. MLflow Projects 정리하기  (0) 2023.04.05
[MLflow] #3. MLflow Model 정리하기  (0) 2023.04.01
[MLflow] #2. Tracking 기능 사용해보기  (0) 2023.03.30
    'AI/MLOps' 카테고리의 다른 글
    • [MLflow] #5. MLflow Model Registry
    • [MLflow] #4. MLflow Projects 정리하기
    • [MLflow] #3. MLflow Model 정리하기
    • [MLflow] #2. Tracking 기능 사용해보기
    Linuxias
    Linuxias
    I want to be a S/W developer who benefits people.

    티스토리툴바