MLflow en Azure Machine Learning
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
In dit artikel worden de mogelijkheden van MLflow beschreven, een opensource-framework dat is ontworpen om de volledige levenscyclus van machine learning te beheren. MLflow maakt gebruik van een consistente set hulpprogramma's voor het trainen en bedienen van modellen op verschillende platforms. U kunt MLflow gebruiken, ongeacht of uw experimenten lokaal of op een extern rekendoel, virtuele machine of Azure Machine Learning-rekenproces worden uitgevoerd.
Azure Machine Learning-werkruimten zijn compatibel met MLflow, wat betekent dat u een Azure Machine Learning-werkruimte op dezelfde manier kunt gebruiken als u een MLflow-server gebruikt. Deze compatibiliteit heeft de volgende voordelen:
- Azure Machine Learning host geen MLflow-serverexemplaren, maar kan de MLflow-API's rechtstreeks gebruiken.
- U kunt een Azure Machine Learning-werkruimte gebruiken als uw traceringsserver voor elke MLflow-code, ongeacht of deze wordt uitgevoerd in Azure Machine Learning. U hoeft MLflow alleen te configureren om te verwijzen naar de werkruimte waar het bijhouden moet plaatsvinden.
- U kunt elke trainingsroutine uitvoeren die gebruikmaakt van MLflow in Azure Machine Learning zonder wijzigingen aan te brengen.
Tip
In tegenstelling tot de Azure Machine Learning SDK v1 is er geen functionaliteit voor logboekregistratie in de Azure Machine Learning v2 SDK. U kunt MLflow-logboekregistratie gebruiken om ervoor te zorgen dat uw trainingsroutines cloudneutraal, draagbaar zijn en geen afhankelijkheid hebben van Azure Machine Learning.
Wat is bijhouden
Wanneer u met taken werkt, wordt in Azure Machine Learning automatisch informatie bijgehouden over experimenten, zoals code, omgeving en invoer- en uitvoergegevens. Modellen, parameters en metrische gegevens zijn echter specifiek voor het scenario, dus modelbouwers moeten hun tracering configureren.
De opgeslagen metagegevens voor bijhouden variëren per experiment en kunnen het volgende omvatten:
- Code
- Omgevingsgegevens zoals versie van het besturingssysteem en Python-pakketten
- Invoergegevens
- Parameterconfiguraties
- Modellen
- Metrische evaluatiegegevens
- Evaluatievisualisaties zoals verwarringsmatrices en belangrijke plots
- Evaluatieresultaten, waaronder enkele evaluatievoorspellingen
Voordelen van traceringsexperimenten
Of u nu modellen traint met taken in Azure Machine Learning of interactief in notebooks, het bijhouden van experimenten helpt u:
- Organiseer al uw machine learning-experimenten op één plek. Vervolgens kunt u experimenten doorzoeken en filteren en inzoomen om details over eerdere experimenten te bekijken.
- Vergelijk eenvoudig experimenten, analyseer resultaten en foutopsporingsmodeltraining.
- Experimenten reproduceren of opnieuw uitvoeren om resultaten te valideren.
- Verbeter de samenwerking, omdat u kunt zien wat andere teamleden doen, experimentresultaten delen en programmatisch toegang krijgen tot experimentgegevens.
Bijhouden met MLflow
Azure Machine Learning-werkruimten zijn compatibel met MLflow. Deze compatibiliteit betekent dat u MLflow kunt gebruiken om uitvoeringen, metrische gegevens, parameters en artefacten in werkruimten bij te houden zonder dat u uw trainingsroutines hoeft te wijzigen of een cloudspecifieke syntaxis hoeft in te voeren. Zie Experimenten en modellen bijhouden met MLflow voor meer informatie over het gebruik van MLflow voor het bijhouden van experimenten en uitvoeringen in Azure Machine Learning-werkruimten.
Azure Machine Learning maakt gebruik van MLflow-tracering om metrische gegevens te registreren en artefacten op te slaan voor uw experimenten. Wanneer u bent verbonden met Azure Machine Learning, worden alle MLflow-tracering gerealiseerd in de werkruimte waarin u werkt.
Zie met MLflow voor meer informatie over het inschakelen van logboekregistratie voor het bewaken van metrische gegevens van realtime uitvoeringen met MLflow. U kunt ook query's uitvoeren op experimenten en uitvoeringen vergelijken met MLflow.
MLflow in Azure Machine Learning biedt een manier om tracering te centraliseren. U kunt MLflow verbinden met Azure Machine Learning-werkruimten, zelfs wanneer u lokaal of in een andere cloud werkt. De Azure Machine Learning-werkruimte biedt een gecentraliseerde, veilige en schaalbare locatie voor het opslaan van metrische gegevens en modellen voor training.
MLflow in Azure Machine Learning kan:
- Volg machine learning-experimenten en -modellen die lokaal of in de cloud worden uitgevoerd.
- Azure Databricks machine learning-experimenten bijhouden.
- Machine learning-experimenten van Azure Synapse Analytics bijhouden.
Bijhouden met MLflow in R
MLflow-ondersteuning in R heeft de volgende beperkingen:
- MLflow-tracering is beperkt tot het bijhouden van metrische experimentgegevens, parameters en modellen in Azure Machine Learning-taken.
- Interactieve training over RStudio, Posit (voorheen RStudio Workbench) of Jupyter-notebooks met R-kernels wordt niet ondersteund.
- Modelbeheer en -registratie worden niet ondersteund. Gebruik de Azure Machine Learning CLI of Azure Machine Learning-studio voor modelregistratie en -beheer.
Zie R-modellen trainen met behulp van de Azure Machine Learning CLI (v2) voor voorbeelden van het gebruik van de MLflow-traceringsclient met R-modellen in Azure Machine Learning.
Bijhouden met MLflow in Java
MLflow-ondersteuning in Java heeft de volgende beperkingen:
- MLflow-tracering is beperkt tot het bijhouden van metrische gegevens en parameters voor experimenten in Azure Machine Learning-taken.
- Artefacten en modellen kunnen niet worden bijgehouden. Gebruik in plaats daarvan de
mlflow.save_model
methode met deoutputs
map in taken om modellen of artefacten op te slaan die u wilt vastleggen.
Zie azuremlflow-java voor een Java-voorbeeld dat gebruikmaakt van de MLflow-traceringsclient met de Azure Machine Learning-traceringsserver.
Voorbeeldnotebooks voor MLflow-tracering
- Het trainen en bijhouden van een XGBoost-classificatie met MLflow laat zien hoe u MLflow gebruikt voor het bijhouden van experimenten, logboekmodellen en het combineren van meerdere smaken in pijplijnen.
- Het trainen en bijhouden van een XGBoost-classificatie met MLflow met behulp van service-principalverificatie laat zien hoe u MLflow gebruikt om experimenten bij te houden van een berekening die buiten Azure Machine Learning wordt uitgevoerd. In het voorbeeld ziet u hoe u zich verifieert bij Azure Machine Learning-services met behulp van een service-principal.
- Hyperparameteroptimalisatie met HyperOpt en geneste uitvoeringen in MLflow laat zien hoe u onderliggende uitvoeringen gebruikt om hyperparameteroptimalisatie voor modellen uit te voeren met behulp van de populaire HyperOpt-bibliotheek. In het voorbeeld ziet u hoe u metrische gegevens, parameters en artefacten overbrengt van onderliggende uitvoeringen naar bovenliggende uitvoeringen.
- Het vastleggen van modellen met MLflow laat zien hoe u het concept van modellen gebruikt in plaats van artefacten met MLflow. In het voorbeeld ziet u ook hoe u aangepaste modellen maakt.
- Uitvoeringen en experimenten beheren met MLflow laat zien hoe u MLflow gebruikt om experimenten, uitvoeringen, metrische gegevens, parameters en artefacten uit Azure Machine Learning op te vragen.
Modelregistratie met MLflow
Azure Machine Learning ondersteunt MLflow voor modelbeheer. Deze ondersteuning is een handige manier voor gebruikers die bekend zijn met de MLflow-client om de volledige levenscyclus van het model te beheren. Zie Modelregisters beheren in Azure Machine Learning met MLflow met MLflow voor meer informatie over het beheren van modellen met behulp van de MLflow-API in Azure Machine Learning.
Voorbeeld van notebook voor MLflow-modelregistratie
Modelbeheer met MLflow laat zien hoe u modellen in registers beheert.
Modelimplementatie met MLflow
U kunt MLflow-modellen implementeren in Azure Machine Learning om te profiteren van een verbeterde ervaring. Azure Machine Learning biedt ondersteuning voor de implementatie van MLflow-modellen voor zowel realtime- als batcheindpunten zonder dat u een omgeving of een scorescript hoeft op te geven.
De MLflow SDK, Azure Machine Learning CLI, Azure Machine Learning SDK voor Python en Azure Machine Learning-studio alle ondersteuning voor de implementatie van MLflow-modellen. Zie Richtlijnen voor het implementeren van MLflow-modellen in Azure Machine Learning voor zowel realtime als batchdeductie voor meer informatie over het implementeren van MLflow-modellen.
Voorbeeldnotebooks voor MLflow-modelimplementatie
- MLflow implementeren in online-eindpunten laat zien hoe u MLflow-modellen implementeert op online-eindpunten met behulp van de MLflow SDK.
- Progressieve implementatie van MLflow-implementaties laat zien hoe u MLflow-modellen implementeert op online-eindpunten met behulp van de MLflow-SDK met de progressieve modelimplementatie. In het voorbeeld ziet u ook de implementatie van meerdere versies van een model naar hetzelfde eindpunt.
- Het implementeren van MLflow-modellen in verouderde webservices laat zien hoe u MLflow-modellen implementeert in verouderde webservices (Azure Container Instances of Azure Kubernetes Service v1) met behulp van de MLflow SDK.
- Modellen trainen in Azure Databricks en deze implementeren in Azure Machine Learning laat zien hoe u modellen traint in Azure Databricks en implementeert in Azure Machine Learning. In het voorbeeld worden ook traceringsexperimenten behandeld met het MLflow-exemplaar in Azure Databricks.
Training met MLflow Projects (preview)
Waarschuwing
Ondersteuning voor MLproject
bestanden (MLflow Projects) in Azure Machine Learning wordt in september 2026 volledig buiten gebruik gesteld. MLflow wordt nog steeds volledig ondersteund en is nog steeds de aanbevolen manier om machine learning-workloads in Azure Machine Learning bij te houden.
Naarmate u MLflow blijft gebruiken, wordt u aangeraden over te stappen van bestanden naar Azure Machine Learning-taken met behulp van MLproject
de Azure CLI of de Azure Machine Learning SDK voor Python (v2). Zie Ml-experimenten en -modellen bijhouden met MLflow voor meer informatie over Azure Machine Learning-taken.
Belangrijk
Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview-versie wordt geleverd zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt.
Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
U kunt trainingstaken verzenden naar Azure Machine Learning met behulp van MLflow Projects. U kunt taken lokaal verzenden met Azure Machine Learning-tracering of uw taken migreren naar de cloud via Azure Machine Learning Compute.
Zie Trainen met MLflow Projects in Azure Machine Learning (preview) voor meer informatie over het verzenden van trainingstaken die gebruikmaken van MLflow Projects naar Azure Machine Learning-werkruimten voor tracering.
Voorbeeldnotebooks voor MLflow Projects
- Train met MLflow Projects op lokale compute.
- Trainen met MLflow Projects op Azure Machine Learning Compute.
Mogelijkheden voor MLflow versus Azure Machine Learning-clienthulpprogramma's
In de volgende tabel ziet u bewerkingen voor de levenscyclus van machine learning die mogelijk zijn met de MLflow SDK en de Azure Machine Learning-clienthulpprogramma's.
Functie | MLflow SDK | Azure Machine Learning CLI/SDK v2 | Azure Machine Learning Studio |
---|---|---|---|
Metrische gegevens, parameters en modellen bijhouden en registreren | ✓ | ||
Metrische gegevens, parameters en modellen ophalen | ✓ | Alleen artefacten en modellen kunnen worden gedownload. | ✓ |
Trainingstaken verzenden | Mogelijk met behulp van MLflow Projects (preview). | ✓ | ✓ |
Trainingstaken verzenden met Azure Machine Learning-gegevensassets | ✓ | ✓ | |
Trainingstaken verzenden met machine learning-pijplijnen | ✓ | ✓ | |
Experimenten en uitvoeringen beheren | ✓ | ✓ | ✓ |
MLflow-modellen beheren | Sommige bewerkingen worden mogelijk niet ondersteund.1 | ✓ | ✓ |
Niet-MLflow-modellen beheren | ✓ | ✓ | |
MLflow-modellen implementeren in Azure Machine Learning (online en batch) | Het implementeren van MLflow-modellen voor batchdeductie wordt momenteel niet ondersteund.2 | ✓ | ✓ |
Niet-MLflow-modellen implementeren in Azure Machine Learning | ✓ | ✓ |
1 Zie Modelregisters beheren in Azure Machine Learning met MLflow voor meer informatie.
2 Zie MLflow-modellen implementeren en uitvoeren in Spark-taken voor een alternatief.