Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Experimenten Loggen met MLflow | Sectie
Practice
Projects
Quizzes & Challenges
Quizzen
Challenges
/
Mlops Fundamentals

bookExperimenten Loggen met 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

Om te begrijpen hoe het loggen van experimenten in de praktijk werkt, volgt hier een stapsgewijze uitleg van de gegeven code. Eerst laadt de code een voorbeeld-dataset met load_diabetes uit scikit-learn en splitst deze in trainings- en testsets. Het experiment krijgt een naam via mlflow.set_experiment, waarmee een bestaand experiment wordt geselecteerd of een nieuw experiment wordt aangemaakt indien nodig.

Het hoofdproces start met mlflow.start_run(), waarmee een nieuwe run wordt geïnitieerd en alle daaropvolgende logs worden gegroepeerd. Binnen deze run wordt een Ridge-regressiemodel gedefinieerd met een specifieke alpha-parameter en getraind op de trainingsdata. Na de training worden voorspellingen gedaan op de testset en wordt de mean squared error (MSE) berekend als prestatie-indicator.

De logfuncties van MLflow worden vervolgens gebruikt om belangrijke aspecten van het experiment vast te leggen. De alpha-parameter wordt gelogd met mlflow.log_param en de berekende mse wordt als metriek opgeslagen via mlflow.log_metric. Het getrainde model zelf wordt als artefact opgeslagen met mlflow.sklearn.log_model, zodat het later eenvoudig kan worden opgehaald of ingezet. Voor reproduceerbaarheid logt de code ook een data_version-parameter, waarmee de herkomst of versie van de gebruikte dataset wordt vastgelegd.

Note
Waarschuwing

Waarschuwing: log altijd relevante metadata zoals dataversie, random seed en omgevingsinformatie. Zonder deze gegevens wordt het veel moeilijker om resultaten te reproduceren of problemen op te lossen.

question mark

Welke van de volgende uitspraken beschrijven nauwkeurig de stappen in de MLflow-experiment logging workflow zoals gedemonstreerd in de code-analyse?

Select all correct answers

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

bookExperimenten Loggen met MLflow

Veeg om het menu te tonen

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

Om te begrijpen hoe het loggen van experimenten in de praktijk werkt, volgt hier een stapsgewijze uitleg van de gegeven code. Eerst laadt de code een voorbeeld-dataset met load_diabetes uit scikit-learn en splitst deze in trainings- en testsets. Het experiment krijgt een naam via mlflow.set_experiment, waarmee een bestaand experiment wordt geselecteerd of een nieuw experiment wordt aangemaakt indien nodig.

Het hoofdproces start met mlflow.start_run(), waarmee een nieuwe run wordt geïnitieerd en alle daaropvolgende logs worden gegroepeerd. Binnen deze run wordt een Ridge-regressiemodel gedefinieerd met een specifieke alpha-parameter en getraind op de trainingsdata. Na de training worden voorspellingen gedaan op de testset en wordt de mean squared error (MSE) berekend als prestatie-indicator.

De logfuncties van MLflow worden vervolgens gebruikt om belangrijke aspecten van het experiment vast te leggen. De alpha-parameter wordt gelogd met mlflow.log_param en de berekende mse wordt als metriek opgeslagen via mlflow.log_metric. Het getrainde model zelf wordt als artefact opgeslagen met mlflow.sklearn.log_model, zodat het later eenvoudig kan worden opgehaald of ingezet. Voor reproduceerbaarheid logt de code ook een data_version-parameter, waarmee de herkomst of versie van de gebruikte dataset wordt vastgelegd.

Note
Waarschuwing

Waarschuwing: log altijd relevante metadata zoals dataversie, random seed en omgevingsinformatie. Zonder deze gegevens wordt het veel moeilijker om resultaten te reproduceren of problemen op te lossen.

question mark

Welke van de volgende uitspraken beschrijven nauwkeurig de stappen in de MLflow-experiment logging workflow zoals gedemonstreerd in de code-analyse?

Select all correct answers

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 5
some-alt