다음을 통해 공유


Apache Spark MLlib 및 자동화된 MLflow 추적

참고 항목

MLlib 자동화된 MLflow 추적은 Databricks Runtime 10.1 ML 이상을 실행하는 클러스터에서 더 이상 사용되지 않으며 Databricks Runtime 10.2 ML 이상을 실행하는 클러스터에서는 기본적으로 사용하지 않도록 설정되어 있습니다. 대신 Databricks Autologging과 함께 기본적으로 사용하도록 설정되는 mlflow.pyspark.ml.autolog()를 호출하여 MLflow PySpark ML 자동 로깅을 사용합니다.

Databricks Runtime 10.2 ML 이상에서 이전 MLlib 자동화된 MLflow 추적을 사용하려면 Spark 구성spark.databricks.mlflow.trackMLlib.enabled truespark.databricks.mlflow.autologging.enabled false를 설정하여 사용하도록 설정합니다.

MLflow는 엔드투엔드 기계 학습 수명 주기를 관리하기 위한 오픈 소스 플랫폼입니다. MLflow는 Python, R 및 Scala에서 기계 학습 모델 튜닝을 위한 추적을 지원합니다. Python Notebook의 경우에만 Databricks 런타임 릴리스 정보 버전 및 호환성Machine Learning용 Databricks 런타임은 Apache Spark MLlib 모델 튜닝에 대한 자동화된MLflow 추적을 지원합니다.

MLlib 자동화된 MLflow 추적을 사용하면 CrossValidator 또는 TrainValidationSplit를 사용하는 튜닝 코드를 실행할 때 하이퍼 매개 변수 및 평가 메트릭이 MLflow에 자동으로 기록됩니다. 자동화된 MLflow 추적이 없으면 MLflow에 기록하기 위해 명시적 API 호출을 수행해야 합니다.

MLflow 실행 관리

CrossValidator 또는 TrainValidationSplit은 중첩된 MLflow가 실행될 때 튜닝 결과를 기록합니다:

  • 기본 또는 부모 실행: CrossValidator 또는 TrainValidationSplit에 대한 정보가 기본 실행에 기록됩니다. 활성 실행이 이미 있는 경우 이 활성 실행에 정보가 기록되고 활성 실행이 중지되지 않습니다. 활성 실행이 없으면 MLflow는 새 실행을 만들고 기록하고 반환하기 전에 실행을 종료합니다.
  • 자식 실행: 테스트된 각 하이퍼 매개 변수 설정과 해당 평가 메트릭은 기본 실행에서 자식 실행에 기록됩니다.

fit()을 호출할 때 Azure Databricks는 활성 MLflow 실행 관리를 권장합니다. 즉, "with mlflow.start_run():" 문 내에서 fit()에 대한 호출을 래핑합니다. 이렇게 하면 정보가 자체 MLflow 기본 실행 아래에 기록되고 해당 실행에 대한 추가 태그, 매개 변수 또는 메트릭을 더 쉽게 기록할 수 있습니다.

참고 항목

동일한 활성 MLflow 실행 내에서 여러 번 호출된 fit()은 이러한 여러 실행을 동일한 기본 실행에 기록합니다. MLflow 매개 변수 및 태그에 대한 이름 충돌을 해결하기 위해 MLflow는 충돌이 있는 이름에 UUID를 추가합니다.

다음 Python Notebook은 자동화된 MLflow 추적을 보여 줍니다.

자동화된 MLflow 추적 Notebook

전자 필기장 가져오기

Notebook의 마지막 셀에서 작업을 수행하면 MLflow UI에 다음이 표시되어야 합니다.

MLlib-MLflow demo