Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Jämföra och Hantera Körningar | Sektion
Mlops-Grunder

bookJämföra och Hantera Körningar

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
import logging import mlflow import mlflow.sklearn from mlflow.models import infer_signature from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load data iris = load_iris() X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.2, random_state=42 ) # Optionally set/announce experiment experiment_name = "IrisRandomForest" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Define different hyperparameter sets hyperparams_list = [ {"n_estimators": 50, "max_depth": 2}, {"n_estimators": 100, "max_depth": 3}, {"n_estimators": 150, "max_depth": 4} ] for params in hyperparams_list: run_name = f"rf_n{params['n_estimators']}_d{params['max_depth']}" logging.info(f"Starting run: {run_name} with params: {params}") with mlflow.start_run(run_name=run_name) as run: clf = RandomForestClassifier( n_estimators=params["n_estimators"], max_depth=params["max_depth"], random_state=42 ) clf.fit(X_train, y_train) preds = clf.predict(X_test) acc = accuracy_score(y_test, preds) logging.info(f"Accuracy: {acc:.4f}") # Log hyperparameters and metrics mlflow.log_params(params) mlflow.log_metric("accuracy", acc) # Log the model with input example and signature to avoid warnings input_example = X_test[:5] signature = infer_signature(X_test, preds) mlflow.sklearn.log_model(clf, "model", input_example=input_example, signature=signature) run_id = run.info.run_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Artifact URI: {artifact_uri}")
copy

Efter att ha loggat flera körningar med olika hyperparametrar kan du jämföra resultaten med MLflow:s UI eller API. För att använda MLflow UI, starta den genom att köra mlflow ui i din terminal. UI:t visar alla körningar, deras parametrar och metrik, vilket gör det möjligt att sortera eller filtrera efter accuracy, hyperparametervärden eller taggar. Du kan välja flera körningar för att jämföra deras prestanda sida vid sida och välja den bästa modellen baserat på din utvärderingsmetrik. Alternativt kan du använda MLflow Python API för att söka efter körningar och hämta den bästa programmatiskt, vilket är användbart för att automatisera modellval i produktionsarbetsflöden.

Note
Notering

Konsekvent namngivning och taggning av körningar gör stora projekt hanterbara. Använd beskrivande körningsnamn och taggar för att spåra experimentets syfte, datasetversion eller grupp för hyperparametersökning. Denna praxis hjälper dig att snabbt identifiera och jämföra relevanta körningar när ditt projekt växer.

question mark

Vilka av följande påståenden beskriver korrekt hur du kan jämföra och välja den bästa körningen i MLflow med hjälp av gränssnittet och Python-API:et?

Select all correct answers

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookJämföra och Hantera Körningar

Svep för att visa menyn

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
import logging import mlflow import mlflow.sklearn from mlflow.models import infer_signature from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s") # Load data iris = load_iris() X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.2, random_state=42 ) # Optionally set/announce experiment experiment_name = "IrisRandomForest" mlflow.set_experiment(experiment_name) logging.info(f"Using experiment: {experiment_name}") # Define different hyperparameter sets hyperparams_list = [ {"n_estimators": 50, "max_depth": 2}, {"n_estimators": 100, "max_depth": 3}, {"n_estimators": 150, "max_depth": 4} ] for params in hyperparams_list: run_name = f"rf_n{params['n_estimators']}_d{params['max_depth']}" logging.info(f"Starting run: {run_name} with params: {params}") with mlflow.start_run(run_name=run_name) as run: clf = RandomForestClassifier( n_estimators=params["n_estimators"], max_depth=params["max_depth"], random_state=42 ) clf.fit(X_train, y_train) preds = clf.predict(X_test) acc = accuracy_score(y_test, preds) logging.info(f"Accuracy: {acc:.4f}") # Log hyperparameters and metrics mlflow.log_params(params) mlflow.log_metric("accuracy", acc) # Log the model with input example and signature to avoid warnings input_example = X_test[:5] signature = infer_signature(X_test, preds) mlflow.sklearn.log_model(clf, "model", input_example=input_example, signature=signature) run_id = run.info.run_id artifact_uri = mlflow.get_artifact_uri() logging.info(f"Run ID: {run_id}") logging.info(f"Artifact URI: {artifact_uri}")
copy

Efter att ha loggat flera körningar med olika hyperparametrar kan du jämföra resultaten med MLflow:s UI eller API. För att använda MLflow UI, starta den genom att köra mlflow ui i din terminal. UI:t visar alla körningar, deras parametrar och metrik, vilket gör det möjligt att sortera eller filtrera efter accuracy, hyperparametervärden eller taggar. Du kan välja flera körningar för att jämföra deras prestanda sida vid sida och välja den bästa modellen baserat på din utvärderingsmetrik. Alternativt kan du använda MLflow Python API för att söka efter körningar och hämta den bästa programmatiskt, vilket är användbart för att automatisera modellval i produktionsarbetsflöden.

Note
Notering

Konsekvent namngivning och taggning av körningar gör stora projekt hanterbara. Använd beskrivande körningsnamn och taggar för att spåra experimentets syfte, datasetversion eller grupp för hyperparametersökning. Denna praxis hjälper dig att snabbt identifiera och jämföra relevanta körningar när ditt projekt växer.

question mark

Vilka av följande påståenden beskriver korrekt hur du kan jämföra och välja den bästa körningen i MLflow med hjälp av gränssnittet och Python-API:et?

Select all correct answers

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 6
some-alt