Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Comparación y Gestión de Ejecuciones | Sección
Practice
Projects
Quizzes & Challenges
Cuestionarios
Challenges
/
Fundamentos de MLOps

bookComparación y Gestión de Ejecuciones

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

Después de registrar múltiples ejecuciones con diferentes hiperparámetros, puedes comparar los resultados utilizando la interfaz de usuario de MLflow o la API. Para usar la interfaz de usuario de MLflow, iníciala ejecutando mlflow ui en tu terminal. La interfaz muestra todas las ejecuciones, sus parámetros y métricas, permitiéndote ordenar o filtrar por accuracy, valores de hiperparámetros o etiquetas. Puedes seleccionar varias ejecuciones para comparar su rendimiento lado a lado y elegir el mejor modelo según tu métrica de evaluación. Alternativamente, puedes utilizar la API de Python de MLflow para buscar ejecuciones y recuperar la mejor de forma programática, lo cual es útil para automatizar la selección de modelos en flujos de trabajo de producción.

Note
Nota

La nomenclatura y el etiquetado consistentes de las ejecuciones hacen que los proyectos grandes sean manejables. Utiliza nombres descriptivos para las ejecuciones y etiquetas para rastrear el propósito del experimento, la versión del conjunto de datos o el grupo de búsqueda de hiperparámetros. Esta práctica te ayuda a identificar y comparar rápidamente las ejecuciones relevantes a medida que tu proyecto crece.

question mark

¿Cuál de las siguientes afirmaciones describe con precisión cómo se pueden comparar y seleccionar las mejores ejecuciones en MLflow utilizando la interfaz de usuario y la API de Python?

Select all correct answers

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookComparación y Gestión de Ejecuciones

Desliza para mostrar el menú

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

Después de registrar múltiples ejecuciones con diferentes hiperparámetros, puedes comparar los resultados utilizando la interfaz de usuario de MLflow o la API. Para usar la interfaz de usuario de MLflow, iníciala ejecutando mlflow ui en tu terminal. La interfaz muestra todas las ejecuciones, sus parámetros y métricas, permitiéndote ordenar o filtrar por accuracy, valores de hiperparámetros o etiquetas. Puedes seleccionar varias ejecuciones para comparar su rendimiento lado a lado y elegir el mejor modelo según tu métrica de evaluación. Alternativamente, puedes utilizar la API de Python de MLflow para buscar ejecuciones y recuperar la mejor de forma programática, lo cual es útil para automatizar la selección de modelos en flujos de trabajo de producción.

Note
Nota

La nomenclatura y el etiquetado consistentes de las ejecuciones hacen que los proyectos grandes sean manejables. Utiliza nombres descriptivos para las ejecuciones y etiquetas para rastrear el propósito del experimento, la versión del conjunto de datos o el grupo de búsqueda de hiperparámetros. Esta práctica te ayuda a identificar y comparar rápidamente las ejecuciones relevantes a medida que tu proyecto crece.

question mark

¿Cuál de las siguientes afirmaciones describe con precisión cómo se pueden comparar y seleccionar las mejores ejecuciones en MLflow utilizando la interfaz de usuario y la API de Python?

Select all correct answers

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 6
some-alt