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

bookПорівняння та керування запусками

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

Після фіксації кількох запусків із різними гіперпараметрами можна порівнювати результати за допомогою інтерфейсу MLflow або API. Щоб скористатися інтерфейсом MLflow, запустіть його командою mlflow ui у терміналі. Інтерфейс відображає всі запуски, їх параметри та метрики, дозволяючи сортувати або фільтрувати за accuracy, значеннями гіперпараметрів чи тегами. Можна обрати кілька запусків для порівняння їх продуктивності поруч і вибрати найкращу модель за вашим оціночним критерієм. Альтернативно, можна скористатися Python API MLflow для пошуку запусків і програмного отримання найкращого, що корисно для автоматизації вибору моделі у виробничих процесах.

Note
Примітка

Послідовне іменування та тегування запусків робить великі проєкти керованими. Використовуйте описові імена запусків та теги для відстеження призначення експерименту, версії датасету чи групи пошуку гіперпараметрів. Такий підхід допомагає швидко знаходити й порівнювати релевантні запуски у міру зростання проєкту.

question mark

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

Select all correct answers

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

bookПорівняння та керування запусками

Свайпніть щоб показати меню

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

Після фіксації кількох запусків із різними гіперпараметрами можна порівнювати результати за допомогою інтерфейсу MLflow або API. Щоб скористатися інтерфейсом MLflow, запустіть його командою mlflow ui у терміналі. Інтерфейс відображає всі запуски, їх параметри та метрики, дозволяючи сортувати або фільтрувати за accuracy, значеннями гіперпараметрів чи тегами. Можна обрати кілька запусків для порівняння їх продуктивності поруч і вибрати найкращу модель за вашим оціночним критерієм. Альтернативно, можна скористатися Python API MLflow для пошуку запусків і програмного отримання найкращого, що корисно для автоматизації вибору моделі у виробничих процесах.

Note
Примітка

Послідовне іменування та тегування запусків робить великі проєкти керованими. Використовуйте описові імена запусків та теги для відстеження призначення експерименту, версії датасету чи групи пошуку гіперпараметрів. Такий підхід допомагає швидко знаходити й порівнювати релевантні запуски у міру зростання проєкту.

question mark

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

Select all correct answers

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

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

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

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