Modellen trainen en bijhouden in notebooks
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.
Fooi
Zoek een lijst met alle ondersteunde frameworks voor automatisch aanmelden in de officiële MLflow-documentatie.
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.
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.