MLFlow Mastery : 실험 추적 및 모델 관리에 대한 완전한 안내서

기계 학습 프로젝트에는 많은 단계가 포함됩니다. 실험과 모델을 추적하는 것은 어려울 수 있습니다. MLFLOW는 더 쉽게 만드는 도구입니다. 모델을 추적, 관리 및 배포하는 데 도움이됩니다. 팀은 MLFlow와 함께 더 잘 협력 할 수 있습니다. 그것은 모든 것을 조직적이고 단순하게 유지합니다. 이 기사에서는 mlflow가 무엇인지 설명 할 것입니다. 또한 프로젝트에 사용하는 방법을 보여 드리겠습니다.
mlflow 란 무엇입니까?
MLFlow는 오픈 소스 플랫폼입니다. 전체 기계 학습 라이프 사이클을 관리합니다. 워크 플로를 단순화하는 도구를 제공합니다. 이 도구는 모델을 개발, 배포 및 유지하는 데 도움이됩니다. MLFlow는 팀 협업에 적합합니다. 데이터 과학자와 엔지니어가 함께 일하는 것을 지원합니다. 실험과 결과를 추적합니다. 재현성을위한 코드를 포장합니다. MLFlow는 배포 후 모델을 관리합니다. 이것은 원활한 생산 공정을 보장합니다.
왜 mlflow를 사용합니까?
MLFlow없이 ML 프로젝트를 관리하는 것은 어려운 일입니다. 실험은 지저분 해지고 조직화 될 수 있습니다. 배포도 비효율적 일 수 있습니다. MLFLOW는 이러한 문제를 유용한 기능으로 해결합니다.
- 실험 추적: mlflow는 실험을 쉽게 추적하는 데 도움이됩니다. 테스트 중에 생성 된 매개 변수, 메트릭 및 파일을 기록합니다. 이것은 테스트 된 내용에 대한 명확한 기록을 제공합니다. 각 테스트가 어떻게 수행되는지 알 수 있습니다.
- 재현성: mlflow는 실험 관리 방식을 표준화합니다. 각 테스트에 사용되는 정확한 설정을 저장합니다. 이것은 반복 실험을 간단하고 신뢰할 수있게합니다.
- 모델 버전 작성: mlflow에는 버전을 관리하는 모델 레지스트리가 있습니다. 한 곳에 여러 모델을 저장하고 구성 할 수 있습니다. 이를 통해 업데이트 및 변경 사항을보다 쉽게 처리 할 수 있습니다.
- 확장 성: mlflow는 Tensorflow 및 Pytorch와 같은 라이브러리와 함께 작동합니다. 분산 컴퓨팅으로 대규모 작업을 지원합니다. 또한 추가 유연성을 위해 클라우드 스토리지와 통합됩니다.
mlflow 설정
설치
시작하려면 PIP를 사용하여 mlflow를 설치하십시오.
추적 서버를 실행합니다
중앙 집중식 추적 서버를 설정하려면 실행하십시오.
mlflow server --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./mlruns
이 명령은 메타 데이터 저장에 SQLITE 데이터베이스를 사용하고 MLRUNS 디렉토리에 아티팩트를 저장합니다.
Mlflow UI를 시작합니다
MLFLOW UI는 실험 및 모델을 시각화하기위한 웹 기반 도구입니다. 다음과 같이 로컬로 시작할 수 있습니다.
기본적으로 UI는 AT에서 액세스 할 수 있습니다 http : // localhost : 5000.
mlflow의 주요 구성 요소
1. mlflow 추적
실험 추적은 MLFlow의 핵심입니다. 팀이 로그인 할 수 있습니다.
- 매개 변수: 각 모델 훈련 실행에 사용되는 하이퍼 파라미터.
- 메트릭: 정확도, 정밀, 리콜 또는 손실 값과 같은 성능 메트릭.
- 유물: 모델, 데이터 세트 및 플롯과 같은 실험 중에 생성 된 파일.
- 소스 코드: 실험 결과를 생성하는 데 사용되는 정확한 코드 버전.
다음은 mlflow로 로깅의 예입니다.
import mlflow
# Start an MLflow run
with mlflow.start_run():
# Log parameters
mlflow.log_param("learning_rate", 0.01)
mlflow.log_param("batch_size", 32)
# Log metrics
mlflow.log_metric("accuracy", 0.95)
mlflow.log_metric("loss", 0.05)
# Log artifacts
with open("model_summary.txt", "w") as f:
f.write("Model achieved 95% accuracy.")
mlflow.log_artifact("model_summary.txt")
2. Mlflow 프로젝트
MLFLOW 프로젝트는 ML 코드의 구조를 표준화하여 재현성과 휴대 성을 가능하게합니다. 프로젝트에는 다음이 포함됩니다.
- 소스 코드: 교육 및 평가를위한 파이썬 스크립트 또는 노트북.
- 환경 사양: Conda, Pip 또는 Docker를 사용하여 지정된 종속성.
- 진입 점: Train.py 또는 Evaluate.py와 같은 프로젝트를 실행하는 명령.
예제 mlproject 파일 :
name: my_ml_project
conda_env: conda.yaml
entry_points:
main:
parameters:
data_path: {type: str, default: "data.csv"}
epochs: {type: int, default: 10}
command: "python train.py --data_path {data_path} --epochs {epochs}"
3. mlflow 모델
MLFLOW 모델은 숙련 된 모델을 관리합니다. 그들은 배포를위한 모델을 준비합니다. 각 모델은 표준 형식으로 저장됩니다. 이 형식에는 모델과 메타 데이터가 포함됩니다. 메타 데이터에는 모델의 프레임 워크, 버전 및 종속성이 있습니다. MLFlow는 많은 플랫폼에서 배포를 지원합니다. 여기에는 REST API, Docker 및 Kubernetes가 포함됩니다. 또한 AWS Sagemaker와 같은 클라우드 서비스와도 작동합니다.
예:
import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier
# Train and save a model
model = RandomForestClassifier()
mlflow.sklearn.log_model(model, "random_forest_model")
# Load the model later for inference
loaded_model = mlflow.sklearn.load_model("runs://random_forest_model")
4. MLFLOW 모델 레지스트리
모델 레지스트리는 다음 수명주기 단계를 통해 모델을 추적합니다.
- 각색: 테스트 및 평가 모델.
- 생산: 라이브 트래픽을 배포하고 서비스하는 모델.
- 보관 된: 참조 용으로 보존 된 구형 모델.
모델 등록의 예 :
from mlflow.tracking import MlflowClient
client = MlflowClient()
# Register a new model
model_uri = "runs://random_forest_model"
client.create_registered_model("RandomForestClassifier")
client.create_model_version("RandomForestClassifier", model_uri, "Experiment1")
# Transition the model to production
client.transition_model_version_stage("RandomForestClassifier", version=1, stage="Production")
레지스트리는 팀이 함께 일하는 데 도움이됩니다. 다른 모델 버전을 추적합니다. 또한 모델 이동에 대한 승인 프로세스를 관리합니다.
실제 사용 사례
- 하이퍼 파라미터 튜닝: 다른 과다 투파계 구성으로 수백 개의 실험을 추적하여 가장 성능이 좋은 모델을 식별하십시오.
- 협업 개발: 팀은 중앙 집중식 MLFLOW 추적 서버를 통해 실험과 모델을 공유 할 수 있습니다.
- 기계 학습을위한 CI/CD: ML 모델의 테스트 및 배포를 자동화하기 위해 MLFlow를 Jenkins 또는 GitHub 동작과 통합합니다.
mlflow의 모범 사례
- 실험 추적을 중앙 집중화하십시오: 팀 협업을 위해 원격 추적 서버를 사용하십시오.
- 버전 제어: 코드, 데이터 및 모델에 대한 버전 제어를 유지합니다.
- 워크 플로를 표준화하십시오: MLFLOW 프로젝트를 사용하여 재현성을 보장하십시오.
- 모니터 모델: 생산 모델의 성능 지표를 지속적으로 추적합니다.
- 문서 및 테스트: 철저한 문서를 유지하고 ML 워크 플로에서 단위 테스트를 수행하십시오.
결론
MLFLOW는 기계 학습 프로젝트 관리를 단순화합니다. 실험을 추적하고 모델을 관리하며 재현성을 보장하는 데 도움이됩니다. MLFlow를 사용하면 팀이 협력하고 체계적으로 유지할 수 있습니다. 확장 성을 지원하고 인기있는 ML 라이브러리와 협력합니다. 모델 레지스트리는 모델 버전과 단계를 추적합니다. MLFlow는 다양한 플랫폼에서의 배포도 지원합니다. MLFlow를 사용하면 워크 플로우 효율성 및 모델 관리를 향상시킬 수 있습니다. 원활한 배포 및 생산 프로세스를 보장하는 데 도움이됩니다. 최상의 결과를 얻으려면 버전 제어 및 모니터링 모델과 같은 모범 사례를 따르십시오.
Jayita Gulati 기계 학습 애호가이자 기계 학습 모델 구축에 대한 열정으로 인해 기계 학습 애호가이자 기술 작가입니다. 그녀는 리버풀 대학교에서 컴퓨터 과학 석사 학위를 취득했습니다.
Post Comment