MLflow 및 Azure Machine Learning
적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)
이 문서에서는 기계 학습 수명 주기 전체를 관리하도록 설계된 오픈 소스 프레임워크인 MLflow의 기능에 대해 설명합니다. MLflow는 일관된 도구 집합을 사용하여 다양한 플랫폼에서 모델을 학습하고 제공합니다. 실험이 원격 컴퓨팅 대상, 가상 머신 또는 Azure Machine Learning 컴퓨팅 인스턴스에서 실행되든 로컬에서 실행되든 MLflow를 사용할 수 있습니다.
Azure Machine Learning 작업 영역은 MLflow와 호환됩니다. 즉, MLflow 서버를 사용하는 것과 같은 방식으로 Azure Machine Learning 작업 영역을 사용할 수 있습니다. 이 호환성의 이점은 다음과 같습니다.
- Azure Machine Learning은 MLflow 서버 인스턴스를 호스팅하지 않지만 MLflow API를 직접 사용할 수 있습니다.
- Azure Machine Learning에서의 실행 여부와 관계없이, Azure Machine Learning 작업 영역을 모든 MLflow 코드의 추적 서버로 사용할 수 있습니다. 추적해야 할 작업 영역을 가리키도록 MLflow만 구성하면 됩니다.
- Azure Machine Learning에서 MLflow를 사용하는 모든 학습 루틴은 아무런 변경 없이 실행할 수 있습니다.
팁
Azure Machine Learning SDK v1과 달리 Azure Machine Learning v2 SDK에는 로깅 기능이 없습니다. MLflow 로깅을 사용하면 학습 루틴이 클라우드에 구애받지 않고, 이식 가능하며, Azure Machine Learning에 종속되지 않도록 할 수 있습니다.
MLflow를 통해 추적
Azure Machine Learning은 MLflow 추적을 사용하여 메트릭을 기록하고 실험에 대한 아티팩트를 저장합니다. Azure Machine Learning에 연결하면 모든 MLflow 추적이 작업 중인 작업 영역에 구체화됩니다.
실험 및 학습 루틴에 대한 MLflow 추적을 설정하는 방법을 알아보려면 MLflow를 사용하여 메트릭, 매개 변수 및 파일 기록을 참조하세요. 또한 MLflow를 사용하여 실험과 실행을 쿼리 및 비교할 수도 있습니다.
Azure Machine Learning의 MLflow는 추적을 중앙 집중화하는 방법을 제공합니다. 로컬로 작업하거나 다른 클라우드에서 작업하는 경우에도 MLflow를 Azure Machine Learning 작업 영역에 연결할 수 있습니다. Azure Machine Learning 작업 영역은 학습 메트릭과 모델을 저장할 수 있는 안전하며 확장성 있는 중앙 집중식 위치를 제공합니다.
Azure Machine Learning의 MLflow는 다음을 수행할 수 있습니다.
- 로컬 또는 클라우드에서 실행되는 기계 학습 실험 및 모델을 추적합니다.
- Azure Databricks 기계 학습 실험을 추적합니다.
- Azure Synapse Analytics 기계 학습 실험을 추적합니다.
R에서 MLflow를 사용하여 추적
R의 MLflow 지원에는 다음과 같은 제한 사항이 있습니다.
- MLflow 추적은 Azure Machine Learning 작업에 대한 실험 메트릭, 매개 변수 및 모델을 추적하는 것으로 제한됩니다.
- R 커널을 사용하는 RStudio, Posit(이전의 RStudio Workbench) 또는 Jupyter Notebook에 대한 대화형 학습은 지원되지 않습니다.
- 모델 관리 및 등록은 지원되지 않습니다. 모델 등록 및 관리를 위해 Azure Machine Learning CLI 또는 Azure Machine Learning 스튜디오를 사용합니다.
Azure Machine Learning에서 R 모델과 함께 MLflow 추적 클라이언트를 사용하는 예는 Azure Machine Learning CLI(v2)를 사용하여 R 모델 학습을 참조하세요.
Java에서 MLflow를 사용하여 추적
Java의 MLflow 지원에는 다음과 같은 제한 사항이 있습니다.
- MLflow 추적은 Azure Machine Learning 작업에 대한 실험 메트릭 및 매개 변수를 추적하는 것으로 제한됩니다.
- Artifacts과 모델을 추적할 수 없습니다. 대신 작업에서
outputs
폴더와 함께mlflow.save_model
메서드를 사용하여 캡처하려는 모델 또는 아티팩트를 저장합니다.
Azure Machine Learning 추적 서버와 함께 MLflow 추적 클라이언트를 사용하는 Java 예는 azuremlflow-java를 참조하세요.
MLflow 추적을 위한 Notebook 예
- MLflow를 사용한 XGBoost 분류자 학습 및 추적은 MLflow를 사용하여 실험을 추적하고, 모델을 기록하고, 여러 버전을 파이프라인으로 결합하는 방법을 보여 줍니다.
- 서비스 주체 인증을 사용하여 MLflow에서 XGBoost 분류자 학습 및 추적은 Azure Machine Learning 외부에서 실행되는 컴퓨팅에서 MLflow를 사용하여 실험을 추적하는 방법을 보여 줍니다. 이 예에서는 서비스 주체를 사용하여 Azure Machine Learning Services에 대해 인증하는 방법을 보여 줍니다.
- MLflow에서 HyperOpt와 중첩 실행을 사용한 하이퍼 매개 변수 최적화는 인기 있는 HyperOpt 라이브러리를 사용하여 자식 실행을 통해 모델의 하이퍼 매개 변수 최적화를 수행하는 방법을 보여 줍니다. 이 예에서는 자식 실행에서 부모 실행으로 메트릭, 매개 변수 및 아티팩트를 전송하는 방법을 보여 줍니다.
- MLflow를 사용하여 모델 로깅은 MLflow에서 아티팩트 대신 모델 개념을 사용하는 방법을 보여 줍니다. 이 예에서는 사용자 지정 모델을 구성하는 방법도 보여 줍니다.
- MLflow로 실행 및 실험 관리는 MLflow를 사용하여 Azure Machine Learning에서 실험, 실행, 메트릭, 매개 변수 및 아티팩트를 쿼리하는 방법을 보여 줍니다.
MLflow를 사용한 모델 등록
Azure Machine Learning은 모델 관리를 위해 MLflow를 지원합니다. 이 지원은 MLflow 클라이언트에 익숙한 사용자가 전체 모델 수명 주기를 관리하는 편리한 방법입니다. Azure Machine Learning에서 MLflow API를 사용하여 모델을 관리하는 방법에 대한 자세한 내용은 MLflow를 사용하여 Azure Machine Learning에서 모델 레지스트리 관리를 참조하세요.
MLflow 모델 등록을 위한 Notebook 예
MLflow를 활용한 모델 관리는 레지스트리에서 모델을 관리하는 방법을 보여 줍니다.
MLflow를 사용하여 모델 배포
개선된 환경을 활용하려면 MLflow 모델을 Azure Machine Learning에 배포하면 됩니다. Azure Machine Learning은 환경이나 채점 스크립트를 지정하지 않고도 실시간 및 일괄 처리 엔드포인트 모두에 MLflow 모델 배포를 지원합니다.
MLflow SDK, Azure Machine Learning CLI, Python용 Azure Machine Learning SDK, Azure Machine Learning 스튜디오는 모두 MLflow 모델 배포를 지원합니다. 실시간 및 일괄 처리 유추를 위해 Azure Machine Learning에 MLflow 모델을 배포하는 방법에 대한 자세한 내용은 MLflow 모델 배포 지침을 참조하세요.
MLflow 모델 배포를 위한 Notebook 예
- 온라인 엔드포인트에 MLflow 배포는 MLflow SDK를 사용하여 MLflow 모델을 온라인 엔드포인트에 배포하는 방법을 보여 줍니다.
- MLflow 배포의 점진적 롤아웃은 MLflow SDK를 사용하여 점진적 모델 롤아웃을 통해 MLflow 모델을 온라인 엔드포인트에 배포하는 방법을 보여 줍니다. 또한 이 예에서는 동일한 엔드포인트에 여러 버전의 모델을 배포하는 방법도 보여 줍니다.
- 레거시 웹 서비스에 MLflow 모델 배포는 MLflow SDK를 사용하여 MLflow 모델을 레거시 웹 서비스(Azure Container Instances 또는 Azure Kubernetes Service v1)에 배포하는 방법을 보여 줍니다.
- Azure Databricks에서 모델 학습 및 Azure Machine Learning에 배포는 Azure Databricks에서 모델을 학습하고 Azure Machine Learning에 배포하는 방법을 보여 줍니다. 이 예에서는 Azure Databricks에서 MLflow 인스턴스를 사용하여 실험을 추적하는 방법도 다룹니다.
MLflow 프로젝트를 사용한 학습(미리 보기)
Warning
Azure Machine Learning의 MLproject
파일(MLflow 프로젝트)에 대한 지원은 2026년 9월에 완전히 사용 중지됩니다. MLflow는 여전히 완전히 지원되며 Azure Machine Learning에서 기계 학습 워크로드를 추적하는 데 권장되는 방법입니다.
MLflow를 계속 사용할 때는 Azure CLI 또는 Python용 Azure Machine Learning SDK(v2)를 사용하여 MLproject
파일에서 Azure Machine Learning 작업으로 전환하는 것이 좋습니다. Azure Machine Learning 작업에 대한 자세한 내용은 MLflow를 사용하여 ML 실험 및 모델 추적을 참조하세요.
Important
이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다.
자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
MLflow 프로젝트를 사용하여 Azure Machine Learning에 학습 작업을 제출할 수 있습니다. Azure Machine Learning 추적을 사용하여 로컬로 작업을 제출하거나 Azure Machine Learning 컴퓨팅을 통해 작업을 클라우드로 마이그레이션할 수 있습니다.
MLflow 프로젝트를 사용하는 학습 작업을 추적을 위해 Azure Machine Learning 작업 영역에 제출하는 방법을 알아보려면 Azure Machine Learning에서 MLflow 프로젝트를 사용하여 학습(미리 보기)을 참조하세요.
MLflow 프로젝트를 위한 Notebook 예
MLflow 및 Azure Machine Learning 클라이언트 도구 기능
다음 표에서는 MLflow SDK와 Azure Machine Learning 클라이언트 도구를 사용하여 가능한 기계 학습 수명 주기 작업을 보여 줍니다.
기능 | MLflow SDK | Azure Machine Learning CLI/SDK v2 | Azure Machine Learning Studio |
---|---|---|---|
메트릭, 매개 변수 및 모델 추적 및 로그 | ✓ | ||
메트릭, 매개 변수 및 모델 검색 | ✓ | 아티팩트 및 모델만 다운로드할 수 있습니다. | ✓ |
학습 작업 제출 | MLflow 프로젝트(미리 보기)를 사용하면 가능합니다. | ✓ | ✓ |
Azure Machine Learning 데이터 자산을 사용하여 학습 작업 제출 | ✓ | ✓ | |
기계 학습 파이프라인을 사용하여 학습 작업 제출 | ✓ | ✓ | |
실험 및 실행 관리 | ✓ | ✓ | ✓ |
MLflow 모델 관리 | 일부 작업은 지원되지 않을 수 있습니다.1 | ✓ | ✓ |
비MLflow 모델 관리 | ✓ | ✓ | |
Azure Machine Learning에 MLflow 모델 배포(온라인 및 일괄 처리) | 일괄 처리 유추를 위한 MLflow 모델 배포는 현재 지원되지 않습니다.2 | ✓ | ✓ |
Azure Machine Learning에 비MLflow 모델 배포 | ✓ | ✓ |
1 자세한 내용은 MLflow를 사용하여 Azure Machine Learning에서 모델 레지스트리 관리를 참조하세요.
2 대안으로 Spark 작업에서 MLflow 모델 배포 및 실행을 참조하세요.