Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Logning af Eksperimenter med MLflow | Sektion
Mlops Grundlæggende

bookLogning af Eksperimenter med 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

For at forstå, hvordan eksperimentlogning fungerer i praksis, kan du følge denne trin-for-trin-gennemgang af den angivne kode. Først indlæser koden et eksempel-datasæt ved hjælp af load_diabetes fra scikit-learn og deler det derefter op i trænings- og testdatasæt. Eksperimentet navngives med mlflow.set_experiment, som enten vælger et eksisterende eksperiment eller opretter et nyt, hvis det er nødvendigt.

Hoveddelen af arbejdsgangen begynder med mlflow.start_run(), som initialiserer et nyt run og sikrer, at alle efterfølgende logninger grupperes sammen. Inden for dette run defineres en Ridge-regressionsmodel med en specifik alpha-parameter og trænes på træningsdataene. Efter træningen laves der forudsigelser på testdatasættet, og mean squared error (MSE) beregnes som en præstationsmetrik.

MLflows logningsfunktioner bruges derefter til at registrere nøgleaspekter af eksperimentet. alpha-parameteren logges med mlflow.log_param, og den beregnede mse logges som en metrik ved hjælp af mlflow.log_metric. Den trænede model gemmes som et artefakt med mlflow.sklearn.log_model, hvilket gør det nemt at hente eller implementere modellen senere. For reproducerbarhed logger koden også en data_version-parameter, som registrerer oprindelsen eller versionen af det datasæt, der blev brugt til træning.

Note
Advarsel

Advarsel: log altid relevant metadata såsom dataversion, tilfældig seed og miljøinformation. Uden disse bliver det meget sværere at reproducere resultater eller fejlfinde problemer.

question mark

Hvilke af følgende udsagn beskriver nøjagtigt trinnene i MLflow-eksperimentlogningsarbejdsgangen som demonstreret i kodegennemgangen?

Select all correct answers

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookLogning af Eksperimenter med MLflow

Stryg for at vise menuen

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

For at forstå, hvordan eksperimentlogning fungerer i praksis, kan du følge denne trin-for-trin-gennemgang af den angivne kode. Først indlæser koden et eksempel-datasæt ved hjælp af load_diabetes fra scikit-learn og deler det derefter op i trænings- og testdatasæt. Eksperimentet navngives med mlflow.set_experiment, som enten vælger et eksisterende eksperiment eller opretter et nyt, hvis det er nødvendigt.

Hoveddelen af arbejdsgangen begynder med mlflow.start_run(), som initialiserer et nyt run og sikrer, at alle efterfølgende logninger grupperes sammen. Inden for dette run defineres en Ridge-regressionsmodel med en specifik alpha-parameter og trænes på træningsdataene. Efter træningen laves der forudsigelser på testdatasættet, og mean squared error (MSE) beregnes som en præstationsmetrik.

MLflows logningsfunktioner bruges derefter til at registrere nøgleaspekter af eksperimentet. alpha-parameteren logges med mlflow.log_param, og den beregnede mse logges som en metrik ved hjælp af mlflow.log_metric. Den trænede model gemmes som et artefakt med mlflow.sklearn.log_model, hvilket gør det nemt at hente eller implementere modellen senere. For reproducerbarhed logger koden også en data_version-parameter, som registrerer oprindelsen eller versionen af det datasæt, der blev brugt til træning.

Note
Advarsel

Advarsel: log altid relevant metadata såsom dataversion, tilfældig seed og miljøinformation. Uden disse bliver det meget sværere at reproducere resultater eller fejlfinde problemer.

question mark

Hvilke af følgende udsagn beskriver nøjagtigt trinnene i MLflow-eksperimentlogningsarbejdsgangen som demonstreret i kodegennemgangen?

Select all correct answers

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5
some-alt