Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Логування Експериментів з MLflow | Розділ
Основи MLOps

bookЛогування Експериментів з 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

Щоб зрозуміти, як працює логування експериментів на практиці, ознайомтеся з покроковим розбором наведеного коду. Спочатку код завантажує зразковий набір даних за допомогою load_diabetes з бібліотеки scikit-learn, а потім розділяє його на навчальну та тестову вибірки. Назва експерименту задається через mlflow.set_experiment, що дозволяє вибрати існуючий експеримент або створити новий за потреби.

Основна частина робочого процесу починається з mlflow.start_run(), яка ініціалізує новий запуск і забезпечує групування всіх наступних логів. Усередині цього запуску визначається модель регресії Ridge з певним параметром alpha і навчається на тренувальних даних. Після навчання виконуються передбачення на тестовій вибірці, а середньоквадратична помилка (MSE) обчислюється як метрика якості.

Далі для фіксації ключових аспектів експерименту використовуються функції логування MLflow. Параметр alpha фіксується за допомогою mlflow.log_param, а обчислений mse зберігається як метрика через mlflow.log_metric. Навчена модель зберігається як артефакт за допомогою mlflow.sklearn.log_model, що спрощує її подальше отримання або розгортання. Для відтворюваності також логуються параметри, наприклад, data_version, який фіксує джерело або версію використаного для навчання набору даних.

Note
Попередження

Попередження: завжди фіксуйте відповідні метадані, такі як версія даних, випадкове зерно та інформація про середовище. Без цього відтворення результатів або пошук помилок значно ускладнюється.

question mark

Які з наступних тверджень точно описують етапи робочого процесу журналювання експериментів у MLflow, як показано в розборі коду?

Select all correct answers

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookЛогування Експериментів з 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

Щоб зрозуміти, як працює логування експериментів на практиці, ознайомтеся з покроковим розбором наведеного коду. Спочатку код завантажує зразковий набір даних за допомогою load_diabetes з бібліотеки scikit-learn, а потім розділяє його на навчальну та тестову вибірки. Назва експерименту задається через mlflow.set_experiment, що дозволяє вибрати існуючий експеримент або створити новий за потреби.

Основна частина робочого процесу починається з mlflow.start_run(), яка ініціалізує новий запуск і забезпечує групування всіх наступних логів. Усередині цього запуску визначається модель регресії Ridge з певним параметром alpha і навчається на тренувальних даних. Після навчання виконуються передбачення на тестовій вибірці, а середньоквадратична помилка (MSE) обчислюється як метрика якості.

Далі для фіксації ключових аспектів експерименту використовуються функції логування MLflow. Параметр alpha фіксується за допомогою mlflow.log_param, а обчислений mse зберігається як метрика через mlflow.log_metric. Навчена модель зберігається як артефакт за допомогою mlflow.sklearn.log_model, що спрощує її подальше отримання або розгортання. Для відтворюваності також логуються параметри, наприклад, data_version, який фіксує джерело або версію використаного для навчання набору даних.

Note
Попередження

Попередження: завжди фіксуйте відповідні метадані, такі як версія даних, випадкове зерно та інформація про середовище. Без цього відтворення результатів або пошук помилок значно ускладнюється.

question mark

Які з наступних тверджень точно описують етапи робочого процесу журналювання експериментів у MLflow, як показано в розборі коду?

Select all correct answers

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 5
some-alt