Apache Spark MLlib et suivi MLflow automatisé

MLflow est une plateforme open source qui permet de gérer le cycle de vie du machine learning de bout en bout. MLflow prend en charge le suivi pour Machine Learning le paramétrage du modèle dans Python, R et Scala. pour les notebooks Python uniquement, Databricks Runtime et Databricks Runtime pour Machine Learning prennent en charge lesuivi MLflowautomatisépour le paramétrage du modèle de Apache Spark MLlib.

Avec le suivi MLflow automatisé MLlib, lorsque vous exécutez le code de paramétrage qui utilise CrossValidator ou TrainValidationSplit , les hyperparamètres et les métriques d’évaluation sont automatiquement enregistrés dans MLflow. Sans le suivi de MLflow automatisé, vous devez effectuer des appels d’API explicites pour la connexion à MLflow.

Gérer les exécutions de MLflow

CrossValidator ou TrainValidationSplit les résultats du paramétrage des journaux en tant qu’exécutions MLflow imbriquées :

  • Exécution principale ou parente : les informations pour CrossValidator ou TrainValidationSplit sont enregistrées dans la série de tests principale. Si une exécution active existe déjà, les informations sont consignées dans cette série active et l’exécution active n’est pas arrêtée. S’il n’y a pas d’exécution active, MLflow crée une nouvelle exécution, y enregistre des journaux et met fin à l’exécution avant de retourner.
  • Exécutions enfants : chaque paramètre d’hyperparamètre testé et la mesure d’évaluation correspondante sont journalisés dans une exécution enfant sous l’exécution principale.

Lors de fit() l’appel de, Azure Databricks recommande la gestion active MLflow Run, c’est-à-dire encapsuler l’appel à fit() l’intérieur d’une with mlflow.start_run(): instruction «». Cela permet de s’assurer que les informations sont consignées dans le cadre de leur propre exécution principale MLflow, et de faciliter la journalisation des balises, des paramètres ou des métriques supplémentaires sur cette exécution.

Notes

Lorsque fit() est appelé plusieurs fois au cours de la même exécution de MLflow active, il journalise ces exécutions multiples dans la même exécution principale. Pour résoudre les conflits de noms pour les balises et les paramètres MLflow, MLflow ajoute un UUID aux noms avec conflits.

Le Notebook python suivant montre le suivi MLflow automatisé.

Bloc-notes de suivi MLflow automatisé

Obtenir le notebook

Une fois que vous avez effectué les actions dans la dernière cellule du bloc-notes, votre interface utilisateur MLflow doit afficher :

Démonstration de MLlib-MLflow