Trénování a sledování modelů v poznámkových blocích

Dokončeno

Jako datový vědec používáte poznámkové bloky k experimentování a trénování modelů. K seskupení výsledků trénování modelu použijete experimenty. Pokud chcete sledovat metriky modelu pomocí MLflow při trénování modelu v poznámkovém bloku, můžete použít možnosti protokolování MLflow.

Vytvoření experimentu MLflow

Můžete vytvořit experiment MLflow, který umožňuje seskupit spuštění. Pokud experiment nevytvoříte, MLflow předpokládá výchozí experiment s názvem Default.

Pokud chcete vytvořit experiment, spusťte v poznámkovém bloku následující příkaz:

import mlflow

mlflow.set_experiment(experiment_name="heart-condition-classifier")

Výsledky protokolu s využitím MLflow

Teď jste připraveni model vytrénovat. Ke spuštění spuštění sledovaného MLflow použijete start_run(). V dalším kroku můžete sledovat model:

  • Povolte automatické protokolování.
  • Použijte vlastní protokolování.

Povolení automatického přihlašování

MLflow podporuje automatické protokolování pro oblíbené knihovny strojového učení. Pokud používáte knihovnu podporovanou automatickým protokolem, MLflow říká rozhraní, které používáte k protokolování všech metrik, parametrů, artefaktů a modelů, které architektura považuje za relevantní.

Automatické protokolování můžete zapnout pomocí metody pro architekturu autolog , kterou používáte. Pokud chcete například povolit automatické protokolování pro modely XGBoost, můžete použít mlflow.xgboost.autolog().

Buňka poznámkového bloku, která trénuje a sleduje klasifikační model pomocí automatickéhologování, se může podobat následujícímu příkladu kódu:

from xgboost import XGBClassifier

with mlflow.start_run():
    mlflow.xgboost.autolog()

    model = XGBClassifier(use_label_encoder=False, eval_metric="logloss")
    model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)

Jakmile mlflow.xgboost.autolog() se zavolá, MLflow spustí spuštění v rámci experimentu ve službě Azure Machine Učení a začne sledovat spuštění experimentu.

Po dokončení úlohy můžete zkontrolovat všechny protokolované metriky v sadě Studio.

Screenshot of overview page of MLflow experiment with autologging in Azure Machine Learning studio.

Použití vlastního protokolování

Kromě toho můžete model ručně protokolovat pomocí MLflow. Modely ručního protokolování jsou užitečné, když chcete protokolovat doplňkové nebo vlastní informace, které se neprotokolují prostřednictvím automatického protokolování.

Poznámka:

Můžete se rozhodnout používat pouze vlastní protokolování nebo můžete použít vlastní protokolování v kombinaci s automatickým protokolováním.

Mezi běžné funkce používané s vlastním protokolováním patří:

  • mlflow.log_param(): Zaznamená jeden parametr klíč-hodnota. Tuto funkci použijte pro vstupní parametr, který chcete protokolovat.
  • mlflow.log_metric(): Zaznamená metriku s jednou hodnotou klíče. Hodnota musí být číslo. Tuto funkci použijte pro všechny výstupy, které chcete uložit se spuštěním.
  • mlflow.log_artifact(): Zaznamená soubor. Tuto funkci použijte pro libovolný graf, který chcete protokolovat, nejprve uložte jako soubor obrázku.
  • mlflow.log_model(): Zaznamená model. Pomocí této funkce můžete vytvořit model MLflow, který může obsahovat vlastní podpis, prostředí a vstupní příklady.

Tip

Další informace o sledování modelů pomocí MLflow najdete v oficiální dokumentaci k MLflow nebo dokumentaci ke službě Azure Machine Učení

Pokud chcete použít vlastní protokolování v poznámkovém bloku, spusťte spuštění a zapište požadovanou metriku:

from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score

with mlflow.start_run():
    model = XGBClassifier(use_label_encoder=False, eval_metric="logloss")
    model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)
    y_pred = model.predict(X_test)

    accuracy = accuracy_score(y_test, y_pred)
    mlflow.log_metric("accuracy", accuracy)

Vlastní protokolování poskytuje větší flexibilitu, ale také vytváří větší práci, protože budete muset definovat libovolný parametr, metriku nebo artefakt, který chcete protokolovat.

Po dokončení úlohy můžete zkontrolovat všechny protokolované metriky v sadě Studio.

Screenshot overview page of MLflow experiment run with only custom logging in Azure Machine Learning studio.