MLflow는 실험 추적, 코드를 재현 가능한 실행으로 패키징, 모델 공유 및 배포를 포함하여 기계 학습 개발을 간소화하는 플랫폼입니다. MLflow는 현재 ML 코드를 실행하는 모든 곳(예: 노트북, 독립 실행형 애플리케이션 또는 클라우드)에서 기존 기계 학습 애플리케이션 또는 라이브러리(TensorFlow, PyTorch, XGBoost 등)와 함께 사용할 수 있는 경량 API 세트를 제공합니다. MLflow의 현재 구성 요소는 다음과 같습니다.
MLflow Tracking: 기계 학습 실험의 매개변수, 코드 및 결과를 기록하고 대화형 UI를 사용하여 비교하는 API입니다.
MLflow 프로젝트: Conda 및 Docker를 사용하여 재현 가능한 실행을 위한 코드 패키징 형식이므로 ML 코드를 다른 사람과 공유할 수 있습니다.
MLflow 모델: 동일한 모델(모든 ML 라이브러리)을 Docker, Apache Spark, Azure ML 및 AWS SageMaker와 같은 플랫폼에서 배치 및 실시간 채점에 쉽게 배포할 수 있는 모델 패키징 형식 및 도구입니다.
MLflow 모델 레지스트리: MLflow 모델의 전체 수명 주기를 공동으로 관리하기 위한 중앙 집중식 모델 저장소, API 세트 및 UI입니다.
패키지
PyPI | |
콘다 포지 | |
크란 | |
메이븐 센트럴 |
작업 상태
pip install mlflow
통해 PyPI에서 MLflow 설치
MLflow에서는 프로젝트 기능의 PATH
에 conda
있어야 합니다.
MLflow 마스터의 야간 스냅샷도 여기에서 확인할 수 있습니다.
pip install mlflow-skinny
를 통해 PyPI에서 MLflow의 낮은 종속성 하위 집합을 설치합니다. 원하는 시나리오에 따라 추가 종속성을 추가할 수 있습니다. 예를 들어 pip install mlflow-skinny pandas numpy
mlflow.pyfunc.log_model 지원을 허용합니다.
MLflow의 공식 문서는 https://mlflow.org/docs/latest/index.html에서 찾을 수 있습니다.
현재 MLflow 로드맵은 https://github.com/mlflow/mlflow/milestone/3에서 확인할 수 있습니다. 우리는 help wanted
라벨을 사용하여 모든 로드맵 항목에 대한 기여를 찾고 있습니다. 자세한 내용은 기여 섹션을 참조하세요.
MLflow 사용에 대한 도움말이나 질문(예: "X를 어떻게 수행합니까?")이 필요하면 문서 또는 Stack Overflow를 참조하세요.
버그를 보고하거나 문서 문제를 제출하거나 기능 요청을 제출하려면 GitHub 문제를 열어주세요.
출시 공지 및 기타 토론을 보려면 메일링 리스트([email protected])를 구독하거나 Slack에 가입하세요.
examples
의 프로그램은 MLflow Tracking API를 사용합니다. 예를 들어 다음을 실행합니다.
파이썬 예제/quickstart/mlflow_tracking.py
이 프로그램은 ./mlruns
에 추적 데이터를 기록하는 MLflow Tracking API를 사용합니다. 그런 다음 추적 UI를 통해 확인할 수 있습니다.
MLflow 추적 UI는 http://localhost:5000에서 ./mlruns
에 로그인된 실행을 표시합니다. 다음으로 시작하세요:
mlflow UI
참고: MLflow 복제본 내에서 mlflow ui
실행하는 것은 권장되지 않습니다. 그렇게 하면 소스에서 dev UI가 실행됩니다. --backend-store-uri
옵션을 통해 백엔드 저장소를 지정하여 다른 작업 디렉터리에서 UI를 실행하는 것이 좋습니다. 또는 기여자 가이드에서 개발 UI 실행에 대한 지침을 참조하세요.
mlflow run
명령을 사용하면 로컬 경로 또는 Git URI에서 MLproject 파일로 패키지된 프로젝트를 실행할 수 있습니다.
mlflow 실행 예제/sklearn_elasticnet_wine -P alpha=0.4 mlflow 실행 https://github.com/mlflow/mlflow-example.git -P alpha=0.4
MLproject 파일이 포함된 샘플 프로젝트는 examples/sklearn_elasticnet_wine
참조하세요.
모델 관리를 설명하기 위해 mlflow.sklearn
패키지는 scikit-learn 모델을 MLflow 아티팩트로 기록한 다음 제공을 위해 다시 로드할 수 있습니다. examples/sklearn_logistic_regression/train.py
에는 다음과 같이 실행할 수 있는 훈련 애플리케이션 예제가 있습니다.
$ 파이썬 예제/sklearn_logistic_regression/train.py 점수: 0.666 <run-id> 실행에 저장된 모델 $ mlflow 모델 제공 --model-uri running:/<run-id>/model $ 컬 -d '{"dataframe_split": {"열":[0],"index":[0,1],"data":[[1],[-1]]}}' -H '내용 -유형: 애플리케이션/json' localhost:5000/invocations
참고: 모델 제공을 위해 MLflow skinny( pip install mlflow-skinny
)를 사용하는 경우 MLflow 서버가 작동하려면 추가 필수 종속성(즉, flask
)을 설치해야 합니다.
공식 MLflow Docker 이미지는 GitHub Container Registry(https://ghcr.io/mlflow/mlflow)에서 사용할 수 있습니다.
내보내기 CR_PAT=YOUR_TOKENecho $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin# 최신 버전 풀기docker pull ghcr.io/mlflow/mlflow# 풀 2.2.1docker pull ghcr.io/mlflow/mlflow:v2.2.1
MLflow에 대한 기여를 기쁘게 생각합니다. 또한 MLflow 로드맵의 항목에 대한 기여도 찾고 있습니다. MLflow에 기여하는 방법에 대해 자세히 알아보려면 기여 가이드를 참조하세요.
MLflow는 현재 수백 명의 뛰어난 재능을 지닌 커뮤니티 구성원의 상당한 기여를 통해 다음 핵심 구성원에 의해 유지 관리됩니다.
벤 윌슨
코리 주마르
다니엘 록
가브리엘 푸
카와무라 하루타카
세레나 루안
웨이첸 쑤
와타나베 유키
히라타 토무