Apache Spark MLlib och automatiserad MLflow-spårning

Anteckning

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

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 plattform med öppen källkod för hantering av maskininlärningslivscykeln från början till slut. MLflow stöder spårning av maskininlärningsmodelljustering i Python, R och Scala. Endast för Python-notebook-filer, Databricks Runtime och Databricks Runtime för Machine Learning stöder automatiskMLflow-spårning 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 när 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. Det vill säga omsluter anropet till fit() inuti en "with mlflow.start_run():"-instruktion. Detta säkerställer att informationen loggas under en egen MLflow-huvudkörning och gör det enklare att logga ytterligare taggar, parametrar eller mått för den körningen.

Anteckning

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 automatiserad MLflow-spårning.

Automatisk notebook-fil för 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