MLflow 및 Azure Machine Learning

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

MLflow는 전체 기계 학습 수명 주기를 관리하도록 설계된 오픈소스 프레임워크입니다. 다양한 플랫폼에서 모델을 학습하고 제공할 수 있기 때문에 로컬 컴퓨터, 원격 컴퓨팅 대상, 가상 머신 또는 Azure Machine Learning 컴퓨팅 인스턴스 등 실험이 실행되는 위치에 관계없이 일관된 도구 세트를 사용할 수 있습니다.

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과 달리 SDK v2에는 로깅 기능이 없습니다. 학습 루틴이 클라우드에 독립적으로 이식 가능하도록 로깅에 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에서 MLflow를 사용하면 다음과 같은 기능이 포함됩니다.

예제 Notebook

R에서 MLflow를 사용하여 추적

R의 MLflow 지원에는 다음과 같은 제한 사항이 있습니다.

  • MLflow 추적은 Azure Machine Learning 작업에 대한 실험 메트릭, 매개 변수 및 모델을 추적하는 것으로 제한됩니다.
  • R 커널을 사용하는 RStudio, Posit(이전의 RStudio Workbench) 또는 Jupyter Notebook에 대한 대화형 학습은 지원되지 않습니다.
  • MLflow R SDK를 사용한 모델 관리 및 등록은 지원되지 않습니다. 대신 모델 등록 및 관리를 위해 Azure Machine Learning CLI 또는 Azure Machine Learning 스튜디오를 사용합니다.

Azure Machine Learning과 함께 MLflow 추적 클라이언트를 사용하는 방법을 알아보려면 Azure Machine Learning CLI(v2)를 사용하여 R 모델 학습의 예를 확인합니다.

Java에서 MLflow를 사용하여 추적

Java의 MLflow 지원에는 다음과 같은 제한 사항이 있습니다.

  • MLflow 추적은 Azure Machine Learning 작업에 대한 실험 메트릭 및 매개 변수를 추적하는 것으로 제한됩니다.
  • MLflow Java SDK를 사용해서는 아티팩트 및 모델을 추적할 수 없습니다. 대신 작업에서 mlflow.save_model 메서드와 함께 Outputs 폴더를 사용하여 캡처하려는 모델(또는 아티팩트)을 저장합니다.

Azure Machine Learning에서 MLflow 추적 클라이언트를 사용하는 방법을 알아보려면 Azure Machine Learning에서 MLflow 추적 클라이언트를 사용하는 Java 예를 참조하세요.

MLflow를 사용하는 모델 레지스트리

Azure Machine Learning은 모델 관리를 위해 MLflow를 지원합니다. 이 지원은 MLflow 클라이언트에 익숙한 사용자를 위해 전체 모델 수명 주기를 지원하는 편리한 방법을 나타냅니다.

Azure Machine Learning에서 MLflow API를 사용하여 모델을 관리하는 방법에 대해 자세히 알아보려면 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 스튜디오를 사용하여 배포가 지원됩니다.

실시간 및 일괄 처리 유추를 위해 Azure Machine Learning에 MLflow 모델을 배포하는 방법에 대해 자세히 알아보려면 MLflow 모델 배포 지침을 참조하세요.

예제 Notebook

MLflow 프로젝트를 사용한 학습(미리 보기)

Important

이 문서에 표시된 항목(미리 보기)은 현재 퍼블릭 미리 보기에서 확인할 수 있습니다. 미리 보기 버전은 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

MLflow 프로젝트(미리 보기)를 사용하여 Azure Machine Learning에 학습 작업을 제출할 수 있습니다. Azure Machine Learning 추적을 사용하여 로컬로 작업을 제출하거나 Azure Machine Learning 컴퓨팅을 통해 작업을 클라우드로 마이그레이션할 수 있습니다.

추적을 위해 Azure Machine Learning 작업 영역을 사용하는 MLflow 프로젝트로 학습 작업을 제출하는 방법을 알아보려면 MLflow 프로젝트 및 Azure Machine Learning을 사용하여 기계 학습 모델 학습을 참조하세요.

예제 Notebook

MLflow SDK, Azure Machine Learning v2 및 Azure Machine Learning 스튜디오 기능

다음 표에서는 기계 학습 수명 주기에서 사용 가능한 각 클라이언트 도구를 사용하여 가능한 작업을 보여 줍니다.

기능 MLflow SDK Azure Machine Learning CLI/SDK Azure Machine Learning Studio
메트릭, 매개 변수 및 모델 추적 및 로그
메트릭, 매개 변수 및 모델 검색 1
학습 작업 제출 2
Azure Machine Learning 데이터 자산을 사용하여 학습 작업 제출
기계 학습 파이프라인을 사용하여 학습 작업 제출
실험 및 실행 관리
MLflow 모델 관리 3
비MLflow 모델 관리
Azure Machine Learning에 MLflow 모델 배포(온라인 및 배치) 4
Azure Machine Learning에 비MLflow 모델 배포

참고 항목