Логування Експериментів з MLflow
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import 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}")
Щоб зрозуміти, як працює логування експериментів на практиці, ознайомтеся з покроковим розбором наведеного коду. Спочатку код завантажує зразковий набір даних за допомогою 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, який фіксує джерело або версію використаного для навчання набору даних.
Попередження: завжди фіксуйте відповідні метадані, такі як версія даних, випадкове зерно та інформація про середовище. Без цього відтворення результатів або пошук помилок значно ускладнюється.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 6.67
Логування Експериментів з MLflow
Свайпніть щоб показати меню
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import 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}")
Щоб зрозуміти, як працює логування експериментів на практиці, ознайомтеся з покроковим розбором наведеного коду. Спочатку код завантажує зразковий набір даних за допомогою 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, який фіксує джерело або версію використаного для навчання набору даних.
Попередження: завжди фіксуйте відповідні метадані, такі як версія даних, випадкове зерно та інформація про середовище. Без цього відтворення результатів або пошук помилок значно ускладнюється.
Дякуємо за ваш відгук!