Delen via


Apache Spark MLlib en automatische MLflow-tracering

Belangrijk

Deze documentatie is buiten gebruik gesteld en wordt mogelijk niet bijgewerkt. De producten, services of technologieën die in deze inhoud worden genoemd, worden niet meer ondersteund.

Notitie

MLlib geautomatiseerde MLflow-tracering wordt afgeschaft op clusters waarop Databricks Runtime 10.1 ML en hoger wordt uitgevoerd. Het is standaard uitgeschakeld voor clusters met Databricks Runtime 10.2 ML en hoger. Gebruik in plaats daarvan MLflow PySpark ML autologging door aan te roepen mlflow.pyspark.ml.autolog(). Deze functie is standaard ingeschakeld met Databricks Autologging.

Als u de oude geautomatiseerde MLlib MLflow-tracering in Databricks Runtime 10.2 ML of hoger wilt gebruiken, schakelt u dit in door de Spark-configuraties spark.databricks.mlflow.trackMLlib.enabled true en spark.databricks.mlflow.autologging.enabled false.

MLflow is een open source-platform voor het beheer van de end-to-end levenscyclus van machine learning. MLflow biedt ondersteuning voor het bijhouden van machine learning-modellen in Python, R en Scala. Alleen voor Python-notebooks bieden releaseopmerkingen voor Databricks Runtime versies en compatibiliteit en Databricks Runtime voor Machine Learning ondersteuning voor geautomatiseerde MLflow-tracering voor het afstemmen van Apache Spark MLlib-modellen.

Wanneer u met MLlib geautomatiseerde MLflow-tracering code uitvoert die gebruikmaakt CrossValidator van of TrainValidationSplit, worden hyperparameters en metrische evaluatiegegevens automatisch geregistreerd in MLflow. Zonder automatische MLflow-tracering moet u expliciete API-aanroepen uitvoeren om u aan te melden bij MLflow.

MLflow-uitvoeringen beheren

CrossValidator of TrainValidationSplit logboekafstemmingsresultaten als geneste MLflow-uitvoeringen:

  • Hoofd- of bovenliggende uitvoering: de informatie voor CrossValidator of TrainValidationSplit wordt geregistreerd bij de hoofduitvoering. Als er al een actieve uitvoering is, wordt er informatie geregistreerd bij deze actieve uitvoering en wordt de actieve uitvoering niet gestopt. Als er geen actieve uitvoering is, maakt MLflow een nieuwe uitvoering, meldt u zich aan en beëindigt u de uitvoering voordat u terugkeert.
  • Onderliggende uitvoeringen: elke geteste hyperparameterinstelling en de bijbehorende metrische evaluatiegegevens worden geregistreerd bij een onderliggende uitvoering onder de hoofduitvoering.

Wanneer u aanroept fit(), raadt Azure Databricks actief beheer van MLflow-uitvoeringen aan. Dat wil zeggen dat de aanroep in fit() een 'with mlflow.start_run():'-instructie wordt verpakt. Dit zorgt ervoor dat de informatie wordt vastgelegd onder een eigen MLflow-hoofduitvoering en het eenvoudiger maakt om extra tags, parameters of metrische gegevens te registreren voor die uitvoering.

Notitie

Wanneer fit() meerdere keren wordt aangeroepen binnen dezelfde actieve MLflow-uitvoering, worden deze meerdere uitvoeringen in dezelfde hoofduitvoering opgeslagen. Om naamconflicten voor MLflow-parameters en -tags op te lossen, voegt MLflow een UUID toe aan namen met conflicten.

In het volgende Python-notebook ziet u geautomatiseerde MLflow-tracering.

Geautomatiseerd notebook voor MLflow-tracering

Notebook downloaden

Nadat u de acties in de laatste cel in het notebook hebt uitgevoerd, moet de MLflow-gebruikersinterface worden weergegeven:

MLlib-MLflow-demo