Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Journalisation des Expériences avec MLflow | Section
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Fondamentaux du MLOps

bookJournalisation des Expériences avec MLflow

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")
copy

Pour comprendre le fonctionnement de la journalisation des expériences en pratique, suivez cette explication étape par étape du code fourni. Tout d'abord, le code charge un jeu de données d'exemple à l'aide de load_diabetes de scikit-learn, puis le divise en ensembles d'entraînement et de test. L'expérience est nommée à l'aide de mlflow.set_experiment, qui sélectionne une expérience existante ou en crée une nouvelle si nécessaire.

La partie principale du flux de travail commence avec mlflow.start_run(), qui initialise une nouvelle exécution et garantit que tous les journaux suivants sont regroupés. À l'intérieur de cette exécution, un modèle de régression Ridge est défini avec un paramètre alpha spécifique et entraîné sur les données d'entraînement. Après l'entraînement, des prédictions sont effectuées sur l'ensemble de test et l'erreur quadratique moyenne (MSE) est calculée comme métrique de performance.

Les fonctions de journalisation de MLflow sont ensuite utilisées pour capturer les aspects clés de l'expérience. Le paramètre alpha est enregistré avec mlflow.log_param, et le mse calculé est enregistré comme métrique à l'aide de mlflow.log_metric. Le modèle entraîné lui-même est sauvegardé comme artefact avec mlflow.sklearn.log_model, ce qui facilite sa récupération ou son déploiement ultérieur. Pour la reproductibilité, le code enregistre également un paramètre data_version, qui indique l'origine ou la version du jeu de données utilisé pour l'entraînement.

Note
Avertissement

Avertissement : toujours enregistrer les métadonnées pertinentes telles que la version des données, la graine aléatoire et les informations sur l’environnement. Sans ces éléments, la reproduction des résultats ou le débogage des problèmes devient beaucoup plus difficile.

question mark

Lesquelles des affirmations suivantes décrivent avec précision les étapes du flux de journalisation d’expériences MLflow, comme démontré dans l’analyse du code ?

Select all correct answers

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

bookJournalisation des Expériences avec MLflow

Glissez pour afficher le menu

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
import logging import mlflow import mlflow.sklearn from sklearn.datasets import load_diabetes from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load sample dataset X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) # Set experiment name (creates if doesn't exist) experiment_name = "DiabetesRegression" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Start an MLflow run with mlflow.start_run() as run: # Define and train model alpha = 0.5 logging.info(f"Training Ridge(alpha={alpha})") model = Ridge(alpha=alpha) model.fit(X_train, y_train) logging.info("Training complete") # Predict and calculate metric predictions = model.predict(X_test) mse = mean_squared_error(y_test, predictions) logging.info(f"Test MSE: {mse:.6f}") # Log parameter, metric, and model mlflow.log_param("alpha", alpha) mlflow.log_metric("mse", mse) mlflow.sklearn.log_model(model, "model") logging.info("Logged params, metrics, and model to MLflow") # Optionally, log data version or hash for reproducibility mlflow.log_param("data_version", "sklearn_diabetes_v1") # Print run information to stdout run_id = run.info.run_id experiment_id = run.info.experiment_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Experiment ID: {experiment_id}") logging.info(f"Artifact URI: {artifact_uri}")
copy

Pour comprendre le fonctionnement de la journalisation des expériences en pratique, suivez cette explication étape par étape du code fourni. Tout d'abord, le code charge un jeu de données d'exemple à l'aide de load_diabetes de scikit-learn, puis le divise en ensembles d'entraînement et de test. L'expérience est nommée à l'aide de mlflow.set_experiment, qui sélectionne une expérience existante ou en crée une nouvelle si nécessaire.

La partie principale du flux de travail commence avec mlflow.start_run(), qui initialise une nouvelle exécution et garantit que tous les journaux suivants sont regroupés. À l'intérieur de cette exécution, un modèle de régression Ridge est défini avec un paramètre alpha spécifique et entraîné sur les données d'entraînement. Après l'entraînement, des prédictions sont effectuées sur l'ensemble de test et l'erreur quadratique moyenne (MSE) est calculée comme métrique de performance.

Les fonctions de journalisation de MLflow sont ensuite utilisées pour capturer les aspects clés de l'expérience. Le paramètre alpha est enregistré avec mlflow.log_param, et le mse calculé est enregistré comme métrique à l'aide de mlflow.log_metric. Le modèle entraîné lui-même est sauvegardé comme artefact avec mlflow.sklearn.log_model, ce qui facilite sa récupération ou son déploiement ultérieur. Pour la reproductibilité, le code enregistre également un paramètre data_version, qui indique l'origine ou la version du jeu de données utilisé pour l'entraînement.

Note
Avertissement

Avertissement : toujours enregistrer les métadonnées pertinentes telles que la version des données, la graine aléatoire et les informations sur l’environnement. Sans ces éléments, la reproduction des résultats ou le débogage des problèmes devient beaucoup plus difficile.

question mark

Lesquelles des affirmations suivantes décrivent avec précision les étapes du flux de journalisation d’expériences MLflow, comme démontré dans l’analyse du code ?

Select all correct answers

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 5
some-alt