Modellen trainen en bijhouden in notebooks

Voltooid

Als data scientist gebruikt u notebooks om modellen te experimenteren en te trainen. Als u resultaten van modeltraining wilt groeperen, gebruikt u experimenten. Als u metrische modelgegevens wilt bijhouden met MLflow bij het trainen van een model in een notebook, kunt u de logboekregistratiemogelijkheden van MLflow gebruiken.

Een MLflow-experiment maken

U kunt een MLflow-experiment maken, waarmee u uitvoeringen kunt groeperen. Als u geen experiment maakt, gaat MLflow uit van het standaardexperiment met de naam Default.

Voer de volgende opdracht uit in een notebook om een experiment te maken:

import mlflow

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

Logboekresultaten met MLflow

Nu bent u klaar om uw model te trainen. Om een uitvoering te starten die wordt bijgehouden door MLflow, gebruikt u start_run(). Vervolgens kunt u het volgende doen om het model bij te houden:

  • Schakel autologgingin.
  • Gebruik aangepaste logboekregistratie.

Automatische logboeken inschakelen

MLflow ondersteunt automatische logboekregistratie voor populaire machine learning-bibliotheken. Als u een bibliotheek gebruikt die wordt ondersteund door autolog, vertelt MLflow het framework dat u gebruikt om alle metrische gegevens, parameters, artefacten en modellen te registreren die relevant zijn voor het framework.

U kunt automatisch aanmelden inschakelen met behulp van de autolog methode voor het framework dat u gebruikt. Als u bijvoorbeeld autologging wilt inschakelen voor XGBoost-modellen, kunt u mlflow.xgboost.autolog()gebruiken.

Een notebookcel die een classificatiemodel traint en bijhoudt met behulp van autologging, kan vergelijkbaar zijn met het volgende codevoorbeeld:

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)

Zodra mlflow.xgboost.autolog() wordt aangeroepen, start MLflow een uitvoering binnen een experiment in Azure Machine Learning om de uitvoering van het experiment bij te houden.

Wanneer de taak is voltooid, kunt u alle vastgelegde metrische gegevens in de studio bekijken.

Schermopname van de overzichtspagina van het MLflow-experiment met automatisch aanmelden in Azure Machine Learning Studio.

Aangepaste logboekregistratie gebruiken

Daarnaast kunt u uw model handmatig registreren met MLflow. Het handmatig loggen van modellen is handig als u aanvullende of aangepaste informatie wilt vastleggen die niet wordt vastgelegd door automatisch loggen.

Notitie

U kunt ervoor kiezen om alleen aangepaste logboekregistratie te gebruiken of aangepaste logboekregistratie te gebruiken in combinatie met autologging.

Algemene functies die worden gebruikt met aangepaste logboekregistratie zijn:

  • mlflow.log_param(): registreert een parameter met één sleutelwaarde. Gebruik deze functie voor een invoerparameter die u wilt registreren.
  • mlflow.log_metric(): registreert één metrische sleutelwaarde. De waarde moet een getal zijn. Gebruik deze functie voor uitvoer die u wilt opslaan tijdens de uitvoering.
  • mlflow.log_artifact(): registreert een bestand. Gebruik deze functie voor elke plot die u wilt vastleggen, sla deze eerst op als afbeeldingsbestand.
  • mlflow.log_model(): registreert een model. Gebruik deze functie om een MLflow-model te maken, dat mogelijk een aangepaste handtekening, omgeving en invoervoorbeelden bevat.

Tip

Kom meer te weten over het volgen van modellen met MLflow door de officiële MLflow-documentatie te verkennen, of de Azure Machine Learning-documentatie te raadplegen.

Als u aangepaste logboekregistratie in een notebook wilt gebruiken, start u een uitvoering en meldt u de gewenste metrische gegevens vast:

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)

Aangepaste logboekregistratie biedt u meer flexibiliteit, maar maakt ook meer werk, omdat u parameters, metrische gegevens of artefacten moet definiëren die u wilt registreren.

Wanneer de taak is voltooid, kunt u alle vastgelegde metrische gegevens in de studio bekijken.

Screenshot van de overzichtspagina van een MLflow-experiment met alleen maatwerk logboekregistratie in Azure Machine Learning Studio.