Databricks Autologging
Op deze pagina wordt beschreven hoe u Autologging van Databricks kunt aanpassen, waarmee automatisch modelparameters, metrische gegevens, bestanden en herkomstgegevens worden vastgelegd wanneer u modellen traint uit verschillende populaire machine learning-bibliotheken. Trainingssessies worden vastgelegd als MLflow-traceringsuitvoeringen. Modelbestanden worden ook bijgehouden, zodat u ze eenvoudig kunt registreren bij het MLflow-modelregister.
Notitie
Om traceringslogboeken in te schakelen voor generatieve AI-workloads, ondersteunt MLflow automatische logboekregistratie van OpenAI.
De volgende video toont Databricks Autologging met een scikit-learn-modeltrainingssessie in een interactief Python-notebook. Traceringsgegevens worden automatisch vastgelegd en weergegeven in de zijbalk experimentuitvoeringen en in de MLflow-gebruikersinterface.
Vereisten
- Databricks Autologging is algemeen beschikbaar in alle regio's met Databricks Runtime 10.4 LTS ML of hoger.
- Databricks Autologging is beschikbaar in bepaalde preview-regio's met Databricks Runtime 9.1 LTS ML of hoger.
Hoe het werkt
Wanneer u een interactief Python-notebook koppelt aan een Azure Databricks-cluster, roept Databricks Autologging mlflow.autolog() aan om tracering in te stellen voor uw modeltrainingssessies. Wanneer u modellen traint in het notebook, wordt modeltrainingsgegevens automatisch bijgehouden met MLflow Tracking. Zie Beveiliging en gegevensbeheer voor informatie over hoe deze modeltrainingsgegevens worden beveiligd en beheerd.
De standaardconfiguratie voor de aanroep mlflow.autolog() is:
mlflow.autolog(
log_input_examples=False,
log_model_signatures=True,
log_models=True,
disable=False,
exclusive=False,
disable_for_unsupported_versions=True,
silent=False
)
U kunt de configuratie voor automatische aanmelding aanpassen.
Gebruik
Als u Autologging van Databricks wilt gebruiken, traint u een machine learning-model in een ondersteund framework met behulp van een interactief Azure Databricks Python-notebook. Databricks Autologging registreert automatisch gegevens, parameters en metrische gegevens van modellen voor MLflow Tracking. U kunt ook het gedrag van Autologging van Databricks aanpassen.
Notitie
Databricks Autologging wordt niet toegepast op uitvoeringen die zijn gemaakt met behulp van de fluent-API van MLflow met mlflow.start_run()
. In dergelijke gevallen moet u aanroepen mlflow.autolog()
om automatisch vastgelegde inhoud op te slaan in de MLflow-uitvoering. Zie Aanvullende inhoud bijhouden.
Gedrag van logboekregistratie aanpassen
Als u logboekregistratie wilt aanpassen, gebruikt u mlflow.autolog().
Deze functie biedt configuratieparameters voor het inschakelen van modellogboekregistratie (log_models
), logboekgegevenssets (log_datasets
), het verzamelen van invoervoorbeelden (log_input_examples
), logboekmodelhandtekeningen (log_model_signatures
), het configureren van waarschuwingen (silent
) en meer.
Aanvullende inhoud bijhouden
Als u aanvullende metrische gegevens, parameters, bestanden en metagegevens wilt bijhouden met MLflow-uitvoeringen die door Databricks Autologging zijn gemaakt, volgt u deze stappen in een interactief Python-notebook van Azure Databricks:
- Roep mlflow.autolog() aan met
exclusive=False
. - Start een MLflow-uitvoering met behulp van mlflow.start_run().
U kunt deze aanroep inpakken
with mlflow.start_run()
. Wanneer u dit doet, wordt de uitvoering automatisch beëindigd nadat deze is voltooid. - Gebruik MLflow Tracking-methoden, zoals mlflow.log_param(), om inhoud van de pretraining bij te houden.
- Train een of meer machine learning-modellen in een framework dat wordt ondersteund door Databricks Autologging.
- Gebruik MLflow Tracking-methoden, zoals mlflow.log_metric(), om inhoud na de training bij te houden.
- Als u in stap 2 niet hebt gebruikt
with mlflow.start_run()
, beëindigt u de MLflow-uitvoering met behulp van mlflow.end_run().
Voorbeeld:
import mlflow
mlflow.autolog(exclusive=False)
with mlflow.start_run():
mlflow.log_param("example_param", "example_value")
# <your model training code here>
mlflow.log_metric("example_metric", 5)
Autologging van Databricks uitschakelen
Als u Automatische aanmelding van Databricks wilt uitschakelen in een interactief Python-notebook van Azure Databricks, roept u mlflow.autolog() aan met disable=True
:
import mlflow
mlflow.autolog(disable=True)
Beheerders kunnen autologging van Databricks ook uitschakelen voor alle clusters in een werkruimte vanaf het tabblad Geavanceerd van de pagina met beheerdersinstellingen. Clusters moeten opnieuw worden gestart om deze wijziging van kracht te laten worden.
Ondersteunde omgevingen en frameworks
Databricks Autologging wordt ondersteund in interactieve Python-notebooks en is beschikbaar voor de volgende ML-frameworks:
- scikit-learn
- Apache Spark MLlib
- TensorFlow
- Keras
- PyTorch Lightning
- XGBoost
- LightGBM
- Gluon
- Fast.ai
- statsmodels
- PaddlePaddle
- OpenAI
- LangChain
Zie automatische logboekregistratie van MLflow voor meer informatie over elk van de ondersteunde frameworks.
MLflow-tracering inschakelen
MLflow Tracing maakt gebruik van de autolog
functie binnen respectieve modelframeworkintegraties om het in- of uitschakelen van traceringsondersteuning te beheren voor integraties die tracering ondersteunen.
Als u bijvoorbeeld tracering wilt inschakelen wanneer u een LlamaIndex-model gebruikt, gebruikt u mlflow.llama_index.autolog() met log_traces=True
:
import mlflow
mlflow.llama_index.autolog(log_traces=True)
De ondersteunde integraties met traceringsinschakeling binnen hun autolog-implementaties zijn:
Beveiliging en gegevensbeheer
Alle modeltrainingsgegevens die worden bijgehouden met Databricks Autologging, worden opgeslagen in MLflow Tracking en worden beveiligd door MLflow Experiment-machtigingen. U kunt modeltrainingsgegevens delen, wijzigen of verwijderen met behulp van de MLflow Tracking-API of gebruikersinterface.
Beheer
Beheerders kunnen Automatische aanmelding van Databricks in- of uitschakelen voor alle interactieve notebooksessies in hun werkruimte op het tabblad Geavanceerd van de pagina met beheerdersinstellingen. Wijzigingen worden pas van kracht nadat het cluster opnieuw is opgestart.
Beperkingen
- Autologging van Databricks wordt niet ondersteund in Azure Databricks-taken. Als u automatisch afmelden wilt gebruiken vanuit taken, kunt u mlflow.autolog()expliciet aanroepen.
- Databricks Autologging is alleen ingeschakeld op het stuurprogrammaknooppunt van uw Azure Databricks-cluster. Als u automatisch afmelden wilt gebruiken vanuit werkknooppunten, moet u mlflow.autolog() expliciet aanroepen vanuit de code die op elke werkrol wordt uitgevoerd.
- De XGBoost scikit-learn-integratie wordt niet ondersteund.
Apache Spark MLlib, Hyperopt en geautomatiseerde MLflow-tracering
Databricks Autologging wijzigt niet het gedrag van bestaande geautomatiseerde MLflow-traceringsintegraties voor Apache Spark MLlib en Hyperopt.
Notitie
In Databricks Runtime 10.1 ML schakelt u de geautomatiseerde MLflow-traceringsintegratie voor Apache Spark MLlib uit en TrainValidationSplit
met modellen wordt ook de functie Voor automatisch aanmelden van Databricks uitgeschakeld voor alle Apache Spark MLlib-modellenCrossValidator
.