Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Vergleich und Verwaltung von Runs | Abschnitt
Practice
Projects
Quizzes & Challenges
Quizze
Challenges
/
MLOps-Grundlagen

bookVergleich und Verwaltung von Runs

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

Nach dem Protokollieren mehrerer Läufe mit unterschiedlichen Hyperparametern können die Ergebnisse mit der MLflow-Oberfläche oder der API verglichen werden. Um die MLflow-Oberfläche zu nutzen, starten Sie sie mit mlflow ui im Terminal. Die Oberfläche zeigt alle Läufe, deren Parameter und Metriken an und ermöglicht das Sortieren oder Filtern nach accuracy, Hyperparameterwerten oder Tags. Es können mehrere Läufe ausgewählt werden, um deren Leistung nebeneinander zu vergleichen und das beste Modell anhand der Bewertungsmetrik auszuwählen. Alternativ kann die MLflow Python API verwendet werden, um Läufe zu durchsuchen und das beste Modell programmatisch zu ermitteln, was für die Automatisierung der Modellauswahl in Produktionsabläufen nützlich ist.

Note
Hinweis

Konsistente Benennung und Verschlagwortung von Läufen machen große Projekte überschaubar. Verwenden Sie aussagekräftige Laufnamen und Tags, um den Zweck des Experiments, die Datensatzversion oder die Hyperparameter-Suchgruppe zu kennzeichnen. Diese Vorgehensweise erleichtert das schnelle Identifizieren und Vergleichen relevanter Läufe, wenn das Projekt wächst.

question mark

Welche der folgenden Aussagen beschreiben zutreffend, wie Sie in MLflow mit der Benutzeroberfläche und der Python-API Runs vergleichen und den besten auswählen können?

Select all correct answers

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 6

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

bookVergleich und Verwaltung von Runs

Swipe um das Menü anzuzeigen

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

Nach dem Protokollieren mehrerer Läufe mit unterschiedlichen Hyperparametern können die Ergebnisse mit der MLflow-Oberfläche oder der API verglichen werden. Um die MLflow-Oberfläche zu nutzen, starten Sie sie mit mlflow ui im Terminal. Die Oberfläche zeigt alle Läufe, deren Parameter und Metriken an und ermöglicht das Sortieren oder Filtern nach accuracy, Hyperparameterwerten oder Tags. Es können mehrere Läufe ausgewählt werden, um deren Leistung nebeneinander zu vergleichen und das beste Modell anhand der Bewertungsmetrik auszuwählen. Alternativ kann die MLflow Python API verwendet werden, um Läufe zu durchsuchen und das beste Modell programmatisch zu ermitteln, was für die Automatisierung der Modellauswahl in Produktionsabläufen nützlich ist.

Note
Hinweis

Konsistente Benennung und Verschlagwortung von Läufen machen große Projekte überschaubar. Verwenden Sie aussagekräftige Laufnamen und Tags, um den Zweck des Experiments, die Datensatzversion oder die Hyperparameter-Suchgruppe zu kennzeichnen. Diese Vorgehensweise erleichtert das schnelle Identifizieren und Vergleichen relevanter Läufe, wenn das Projekt wächst.

question mark

Welche der folgenden Aussagen beschreiben zutreffend, wie Sie in MLflow mit der Benutzeroberfläche und der Python-API Runs vergleichen und den besten auswählen können?

Select all correct answers

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 6
some-alt