Порівняння та керування запусками
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import 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}")
Після фіксації кількох запусків із різними гіперпараметрами можна порівнювати результати за допомогою інтерфейсу MLflow або API. Щоб скористатися інтерфейсом MLflow, запустіть його командою mlflow ui у терміналі. Інтерфейс відображає всі запуски, їх параметри та метрики, дозволяючи сортувати або фільтрувати за accuracy, значеннями гіперпараметрів чи тегами. Можна обрати кілька запусків для порівняння їх продуктивності поруч і вибрати найкращу модель за вашим оціночним критерієм. Альтернативно, можна скористатися Python API MLflow для пошуку запусків і програмного отримання найкращого, що корисно для автоматизації вибору моделі у виробничих процесах.
Послідовне іменування та тегування запусків робить великі проєкти керованими. Використовуйте описові імена запусків та теги для відстеження призначення експерименту, версії датасету чи групи пошуку гіперпараметрів. Такий підхід допомагає швидко знаходити й порівнювати релевантні запуски у міру зростання проєкту.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 6.67
Порівняння та керування запусками
Свайпніть щоб показати меню
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import 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}")
Після фіксації кількох запусків із різними гіперпараметрами можна порівнювати результати за допомогою інтерфейсу MLflow або API. Щоб скористатися інтерфейсом MLflow, запустіть його командою mlflow ui у терміналі. Інтерфейс відображає всі запуски, їх параметри та метрики, дозволяючи сортувати або фільтрувати за accuracy, значеннями гіперпараметрів чи тегами. Можна обрати кілька запусків для порівняння їх продуктивності поруч і вибрати найкращу модель за вашим оціночним критерієм. Альтернативно, можна скористатися Python API MLflow для пошуку запусків і програмного отримання найкращого, що корисно для автоматизації вибору моделі у виробничих процесах.
Послідовне іменування та тегування запусків робить великі проєкти керованими. Використовуйте описові імена запусків та теги для відстеження призначення експерименту, версії датасету чи групи пошуку гіперпараметрів. Такий підхід допомагає швидко знаходити й порівнювати релевантні запуски у міру зростання проєкту.
Дякуємо за ваш відгук!