Apache Spark MLlib och automatiserad MLflow-spårning

Observera

MLlib automatiserad MLflow-spårning är inaktuell på kluster som kör Databricks Runtime 10.1 ML och senare, och det är inaktiverat som standard på kluster som kör Databricks Runtime 10.2 ML och senare. Använd i stället automatisk MLflow PySpark ML-loggning genom att anropa mlflow.pyspark.ml.autolog(), vilket är aktiverat som standard med Databricks Autologging.

Om du vill använda den gamla MLlib-automatiserade MLflow-spårningen i Databricks Runtime 10.2 ML eller senare aktiverar du den genom att ange Spark-konfigurationernaspark.databricks.mlflow.trackMLlib.enabled true och spark.databricks.mlflow.autologging.enabled false.

MLflow är en öppen källkod plattform för att hantera livscykeln för maskininlärning från slutpunkt till slutpunkt. MLflow stöder spårning för maskininlärningsmodelljustering i Python, R och Scala. Endast för Python-notebook-filer stöder Databricks Runtime och Introduction to Databricks Runtime for Machine LearningautomatiskMLflow Tracking för Apache Spark MLlib-modelljustering.

Med MLlib automatiserad MLflow-spårning loggas hyperparametrar och utvärderingsmått automatiskt i MLflow när du kör justeringskod som använder CrossValidator eller TrainValidationSplit. Utan automatisk MLflow-spårning måste du göra explicita API-anrop för att logga till MLflow.

Hantera MLflow-körningar

CrossValidator eller TrainValidationSplit loggjusteringsresultat som kapslade MLflow-körningar:

  • Huvudkörning eller överordnad körning: Informationen för CrossValidator eller TrainValidationSplit loggas till huvudkörningen. Om det redan finns en aktiv körning loggas information till den här aktiva körningen och den aktiva körningen stoppas inte. Om det inte finns någon aktiv körning skapar MLflow en ny körning, loggar till den och avslutar körningen innan den returneras.
  • Underordnade körningar: Varje hyperparameterinställning som testas och motsvarande utvärderingsmått loggas till en underordnad körning under huvudkörningen.

När du anropar fit()rekommenderar Azure Databricks aktiv MLflow-körningshantering, dvs. omsluter anropet till fit() i en "with mlflow.start_run():"-instruktion. Detta säkerställer att informationen loggas under sin egen MLflow-huvudkörning och gör det enklare att logga ytterligare taggar, parametrar eller mått för den körningen.

Observera

När fit() anropas flera gånger inom samma aktiva MLflow-körning loggar den dessa flera körningar till samma huvudkörning. För att lösa namnkonflikter för MLflow-parametrar och taggar lägger MLflow till ett UUID i namn med konflikter.

Följande Python-notebook-fil visar automatisk MLflow-spårning.

Notebook-fil för automatisk MLflow-spårning

Hämta notebook-fil

När du har utför åtgärderna i den sista cellen i notebook-filen bör användargränssnittet för MLflow visa:

MLlib-MLflow-demo