AI/MLOps

[MLflow] #4. MLflow Projects 정리하기

Linuxias 2023. 4. 5. 14:24
반응형

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

이 글에서는 그 중 MLflow Projects 기능에 대해서 정리한다. MLflow Projects 의 기본적인 기능은 아래와 같다.

  • MLflow Projects
    • 머신러닝 코드를 재사용 가능하고 재현 가능한 형태로 패키징 -> 어떤 플랫폼에서도 재현가능하도록 지원
    • 포장된 형태를 다른 데이터 사이언티스트와 공유하거나 프러덕션에 반영
    • 프로젝트를 실행하기 위한 API와 명령줄 도구가 포함되어 있어 프로젝트를 워크플로우로 연결할 수 있는 기능 제공

기업에서는 다양한 머신러닝 학습 도구 세트를 활용하고 있고 이러한 학습도구를 다양한 환경에서 실행하고 있다. 예를 들어 팀 서버, 로컬 머신 또는 노트북 등에서 실행하고 있을 수 있다.

이러한 상황으로 머신러닝의 결과를 다른 환경에서 재현하기 어렵다는 문제가 발생하기도 한다. 학습 코드가 같아도 같은 방법으로 실행되지 않는 경우가 많고, 서로 다른 장소에서 동일한 결과를 만들지 못하는 경우가 존재한다. 

이 문제를 해결하기 위해 MLflow에서는 독립 실행형 학습 코드 프로젝트를 MLflow Projects를 제공한다. 

 

 

모든 머신러닝 학습 코드를 특별한 라이브러리 종속 항목, 구성, 학습, 테스트 데이터와 함께 묶는 것이다. 머신러닝 학습 작업에 대한 완전한 종속 항목 집합을 모두 지정함으로써 MLflow는 다양한 실행 환경에서 재현성을 구현한다. 이러한 모든 라이브러리를 설치하고 코드가 실행되는 곳마다 동일한 상태 시스템을 구현하는 것이다.

MLflow Projects는 단순한 디렉터리이다. 선택형 구성 파일을 포함하고 있는 디렉터리로 학습 코드, 라이브러리 의존성, 기타 데이터도 포함되어 있다.

  • 재사용 할 수 있는 ML runs 패키징 포맷
  • 의존성 정의
    • 아나콘다 또는 도커등을 사용하여 MLflow는 학습 코드를 지정된 컨테이너 환경에서 실행하게 지원한다.
  • MLflow는 파이썬 및 자바등의 API를 제공한다.
    • 로컬 또는 원격 환경 실행을 지원한다.

핵심적으로 MLflow Projects는 다른 데이터 과학자(또는 자동화된 도구)가 실행할 수 있도록 코드를 구성하고 설명하기 위한 규칙일 뿐이다. 각 프로젝트는 단순히 코드를 포함하는 파일 디렉토리 또는 Git 리포지토리 형태이다. MLflow는 이 디렉터리에 파일을 배치하는 규칙에 따라 일부 프로젝트를 실행할 수 있지만(예: conda.yaml 파일은 Conda 환경으로 취급됨) MLproject 파일을 추가하여 프로젝트를 더 자세히 설명할 수 있다 이 파일은 YAML 형식의 텍스트 파일입니다. 각 프로젝트는 여러 속성을 이 파일에 지정하여 명시할 수 있다.

 

참고

https://mlflow.org/docs/latest/projects.html

 

반응형