적용 대상:
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에서 실행되는지 여부에 관계없이 모든 MLflow 코드에 대한 추적 서버로 Azure Machine Learning 작업 영역을 사용합니다. 추적이 발생하는 작업 영역을 가리키도록 MLflow를 구성하기만 하면됩니다.
- 변경하지 않고 Azure Machine Learning에서 MLflow를 사용하는 모든 학습 루틴을 실행합니다.
팁
Azure Machine Learning SDK v1과 달리 Azure Machine Learning v2 SDK에는 로깅 기능이 포함되지 않습니다. MLflow 로깅을 사용하여 Azure Machine Learning과 무관하고 이식 가능하며 독립적인 학습 루틴을 유지합니다.
추적 내용
작업을 사용할 때 Azure Machine Learning은 코드, 환경, 입력 및 출력 데이터와 같은 실험에 대한 정보를 자동으로 추적합니다. 그러나 모델, 매개 변수 및 메트릭은 각 시나리오와 관련이 있으므로 모델 작성기에서 추적을 설정해야 합니다.
저장된 추적 메타데이터는 실험에 따라 다르며 다음을 포함할 수 있습니다.
- 코드
- OS 버전 및 Python 패키지와 같은 환경 세부 정보
- 입력 데이터
- 매개 변수 구성
- 모델
- 평가 메트릭
- 혼동 행렬 및 중요도 플롯과 같은 평가 시각화
- 일부 평가 예측을 포함한 평가 결과
실험 추적의 이점
Azure Machine Learning에서 작업을 사용하여 모델을 학습하든, Notebook에서 대화형으로 모델을 학습하든, 실험 추적을 통해 다음을 수행할 수 있습니다.
- 모든 기계 학습 실험을 한 곳에서 구성합니다. 그런 다음, 실험을 검색 및 필터링하고 드릴다운하여 이전 실험에 대한 세부 정보를 확인합니다.
- 실험을 비교하고, 결과를 분석하고, 모델 학습을 디버그합니다.
- 실험을 재현하거나 다시 실행하여 결과의 유효성을 검사합니다.
- 다른 팀원이 수행하는 작업을 확인하고, 실험 결과를 공유하고, 프로그래밍 방식으로 실험 데이터에 액세스하므로 더 쉽게 공동 작업할 수 있습니다.
MLflow를 통해 추적
Azure Machine Learning 작업 영역은 MLflow와 호환됩니다. 이 호환성은 MLflow를 사용하여 학습 루틴을 변경하거나 클라우드 관련 구문을 추가하지 않고 작업 영역에서 실행, 메트릭, 매개 변수 및 아티팩트를 추적한다는 것을 의미합니다. Azure Machine Learning 작업 영역에서 실험 및 실행을 추적하기 위해 MLflow를 사용하는 방법을 알아보려면 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과 모델을 추적할 수 없습니다. 대신 작업에서
mlflow.save_model폴더와 함께outputs메서드를 사용하여 캡처하려는 모델 또는 아티팩트를 저장합니다.
Azure Machine Learning 추적 서버와 함께 MLflow 추적 클라이언트를 사용하는 Java 예는 azuremlflow-java를 참조하세요.
MLflow 추적을 위한 Notebook 예
- MLflow를 사용하여 XGBoost 분류자를 학습하고 추적하면 MLflow 를 사용하여 실험을 추적하고, 모델을 기록하고, 여러 버전을 파이프라인으로 결합하는 방법을 보여 줍니다.
- 서비스 주체 인증을 사용하여 MLflow를 사용하여 XGBoost 분류자를 학습하고 추적하는 방법은 MLflow를 사용하여 Azure Machine Learning 외부에서 실행되는 컴퓨팅에서 실험을 추적하는 방법을 보여 줍니다. 이 예에서는 서비스 주체를 사용하여 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를 사용하여 모델 배포
향상된 환경을 얻기 위해 Azure Machine Learning에 MLflow 모델을 배포합니다. 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를 사용하여 레거시 웹 서비스(Azure Container Instances 또는 Azure Kubernetes Service v1)에 MLflow 모델을 배포하는 방법을 보여 줍니다.
- Azure Databricks에서 모델을 학습시키고 Azure Machine Learning에 배포하면 Azure Databricks에서 모델을 학습시키고 Azure Machine Learning에 배포하는 방법을 보여 줍니다. 이 예에서는 Azure Databricks에서 MLflow 인스턴스를 사용하여 실험을 추적하는 방법도 다룹니다.
MLflow 프로젝트를 사용한 학습(미리 보기)
경고
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 실험 및 모델 추적을 참조하세요.
중요합니다
이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다.
자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.
MLflow Projects를 사용하여 Azure Machine Learning에 학습 작업을 제출합니다. Azure Machine Learning 추적을 사용하여 로컬로 작업을 제출하거나 Azure Machine Learning 컴퓨팅을 사용하여 작업을 클라우드로 마이그레이션합니다.
Azure Machine Learning 작업 영역에서 MLflow Projects를 사용하여 추적을 위해 학습 작업을 제출하는 방법을 Azure Machine Learning(미리 보기)에서 MLflow Projects로 학습하기에서 알아보세요.
MLflow 프로젝트에 대한 예제 노트북
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 모델 배포 및 실행을 참조하세요.