Trénování a sledování modelů v poznámkových blocích
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()
.
Tip
Seznam všech podporovaných architektur pro automatické protokolování najdete v oficiální dokumentaci k MLflow.
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.
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.