Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Registro de Experimentos com MLflow | Seção
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Fundamentos de MLOps

bookRegistro de Experimentos com 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

Para compreender como o registro de experimentos funciona na prática, siga esta análise passo a passo do código fornecido. Primeiro, o código carrega um conjunto de dados de exemplo usando load_diabetes do scikit-learn e, em seguida, divide-o em conjuntos de treino e teste. O experimento é nomeado utilizando mlflow.set_experiment, que seleciona um experimento existente ou cria um novo, se necessário.

A principal parte do fluxo de trabalho começa com mlflow.start_run(), que inicializa uma nova execução e garante que todos os registros subsequentes sejam agrupados. Dentro desta execução, um modelo de regressão Ridge é definido com um parâmetro alpha específico e treinado com os dados de treino. Após o treinamento, são feitas previsões no conjunto de teste e o erro quadrático médio (MSE) é calculado como métrica de desempenho.

As funções de registro do MLflow são então utilizadas para capturar aspectos-chave do experimento. O parâmetro alpha é registrado com mlflow.log_param, e o mse calculado é registrado como métrica usando mlflow.log_metric. O modelo treinado é salvo como artefato com mlflow.sklearn.log_model, facilitando sua recuperação ou implantação posteriormente. Para reprodutibilidade, o código também registra um parâmetro data_version, que documenta a origem ou versão do conjunto de dados utilizado no treinamento.

Note
Aviso

Aviso: sempre registre metadados relevantes, como versão dos dados, semente aleatória e informações do ambiente. Sem esses dados, reproduzir resultados ou depurar problemas torna-se muito mais difícil.

question mark

Quais das seguintes afirmações descrevem corretamente as etapas do fluxo de registro de experimentos no MLflow conforme demonstrado na análise do código?

Select all correct answers

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

bookRegistro de Experimentos com MLflow

Deslize para mostrar o menu

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

Para compreender como o registro de experimentos funciona na prática, siga esta análise passo a passo do código fornecido. Primeiro, o código carrega um conjunto de dados de exemplo usando load_diabetes do scikit-learn e, em seguida, divide-o em conjuntos de treino e teste. O experimento é nomeado utilizando mlflow.set_experiment, que seleciona um experimento existente ou cria um novo, se necessário.

A principal parte do fluxo de trabalho começa com mlflow.start_run(), que inicializa uma nova execução e garante que todos os registros subsequentes sejam agrupados. Dentro desta execução, um modelo de regressão Ridge é definido com um parâmetro alpha específico e treinado com os dados de treino. Após o treinamento, são feitas previsões no conjunto de teste e o erro quadrático médio (MSE) é calculado como métrica de desempenho.

As funções de registro do MLflow são então utilizadas para capturar aspectos-chave do experimento. O parâmetro alpha é registrado com mlflow.log_param, e o mse calculado é registrado como métrica usando mlflow.log_metric. O modelo treinado é salvo como artefato com mlflow.sklearn.log_model, facilitando sua recuperação ou implantação posteriormente. Para reprodutibilidade, o código também registra um parâmetro data_version, que documenta a origem ou versão do conjunto de dados utilizado no treinamento.

Note
Aviso

Aviso: sempre registre metadados relevantes, como versão dos dados, semente aleatória e informações do ambiente. Sem esses dados, reproduzir resultados ou depurar problemas torna-se muito mais difícil.

question mark

Quais das seguintes afirmações descrevem corretamente as etapas do fluxo de registro de experimentos no MLflow conforme demonstrado na análise do código?

Select all correct answers

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 5
some-alt