MLflow en Azure Machine Learning
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
MLflow is een opensource-framework dat is ontworpen om de volledige levenscyclus van machine learning te beheren. Met de mogelijkheid om modellen op verschillende platforms te trainen en te bedienen, kunt u een consistente set hulpprogramma's gebruiken, ongeacht waar uw experimenten worden uitgevoerd: lokaal op uw computer, op een extern rekendoel, op een virtuele machine of op een Azure Machine Learning-rekenproces.
Azure Machine Learning-werkruimten zijn compatibel met MLflow, wat betekent dat u Azure Machine Learning-werkruimten op dezelfde manier kunt gebruiken als u een MLflow-server zou gebruiken. Deze compatibiliteit heeft de volgende voordelen:
- Azure Machine Learning host geen MLflow-serverexemplaren onder de schermen; In plaats daarvan kan de werkruimte de MLflow-API-taal spreken.
- U kunt Azure Machine Learning-werkruimten gebruiken als uw traceringsserver voor elke MLflow-code, ongeacht of deze wordt uitgevoerd op Azure Machine Learning of niet. 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 enige wijziging.
Tip
In tegenstelling tot de Azure Machine Learning SDK v1 is er geen functionaliteit voor logboekregistratie in de SDK v2. U wordt aangeraden MLflow te gebruiken voor logboekregistratie, zodat uw trainingsroutines cloudagnostisch en draagbaar zijn, waardoor alle afhankelijkheid van uw code in Azure Machine Learning wordt verwijderd.
Bijhouden met MLflow
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, wordt alle tracering die wordt uitgevoerd met MLflow gerealiseerd in de werkruimte waaraan u werkt. Voor meer informatie over het instellen van uw experimenten voor het gebruik van MLflow voor het bijhouden van experimenten en trainingsroutines, raadpleegt u metrische logboekgegevens, parameters en bestanden met MLflow. U kunt MLflow ook gebruiken om experimenten en uitvoeringen op te vragen en te vergelijken.
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 werkruimte biedt een gecentraliseerde, veilige en schaalbare locatie voor het opslaan van metrische trainingsgegevens en -modellen.
Het gebruik van MLflow in Azure Machine Learning bevat de mogelijkheden voor:
- 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.
Voorbeeldnotebooks
- Een XGBoost-classificatie trainen en bijhouden met MLflow: Demonstreert hoe u experimenten kunt bijhouden met behulp van MLflow, logboekmodellen en meerdere smaken kunt combineren in pijplijnen.
- Een XGBoost-classificatie trainen en bijhouden met MLflow met behulp van service-principalverificatie: laat zien hoe u experimenten kunt bijhouden met behulp van MLflow vanuit een rekenproces dat 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: demonstreert hoe u onderliggende uitvoeringen in MLflow gebruikt om hyperparameteroptimalisatie voor modellen uit te voeren met behulp van de populaire bibliotheek
Hyperopt
. In het voorbeeld ziet u hoe u metrische gegevens, parameters en artefacten overbrengt van onderliggende uitvoeringen naar bovenliggende uitvoeringen. - Modellen vastleggen met MLflow: demonstreert 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 query's uitvoert op experimenten, uitvoeringen, metrische gegevens, parameters en artefacten van Azure Machine Learning met behulp van MLflow.
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 met behulp van de MLflow R SDK. Gebruik in plaats daarvan de Azure Machine Learning CLI of Azure Machine Learning-studio voor modelregistratie en -beheer.
Bekijk de voorbeelden in Train R-modellen met behulp van de Azure Machine Learning CLI (v2) voor meer informatie over het gebruik van de MLflow-traceringsclient met 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 met behulp van de MLflow Java SDK. Gebruik in plaats daarvan de
Outputs
map in taken, samen met demlflow.save_model
methode om modellen (of artefacten) op te slaan die u wilt vastleggen.
Bekijk het Java-voorbeeld dat gebruikmaakt van de MLflow-traceringsclient met Azure Machine Learning voor meer informatie over het gebruik van de MLflow-traceringsclient met Azure Machine Learning.
Modelregisters met MLflow
Azure Machine Learning ondersteunt MLflow voor modelbeheer. Deze ondersteuning is een handige manier om de volledige levenscyclus van het model te ondersteunen voor gebruikers die bekend zijn met de MLflow-client.
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.
Voorbeeld van notebook
- Modelregisters beheren met MLflow: demonstreert hoe u modellen in registers beheert met behulp van MLflow.
Modelimplementatie met MLflow
U kunt MLflow-modellen implementeren in Azure Machine Learning en profiteren van de verbeterde ervaring wanneer u MLflow-modellen gebruikt. 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. Implementatie wordt ondersteund met behulp van de MLflow SDK, Azure Machine Learning CLI, Azure Machine Learning SDK voor Python of de Azure Machine Learning-studio.
Zie Richtlijnen voor het implementeren van MLflow-modellen voor zowel realtime als batchdeductie voor meer informatie over het implementeren van MLflow-modellen in Azure Machine Learning.
Voorbeeldnotebooks
- MLflow implementeren op online-eindpunten: demonstreert hoe u modellen in MLflow-indeling implementeert op online-eindpunten met behulp van de MLflow SDK.
- MLflow implementeren in online-eindpunten met veilige implementatie: demonstreert hoe u modellen in MLflow-indeling implementeert op online-eindpunten met behulp van de MLflow-SDK met een progressieve implementatie van modellen. In het voorbeeld ziet u ook de implementatie van meerdere versies van een model naar hetzelfde eindpunt.
- MLflow implementeren in webservices (V1):demonstreert hoe u modellen in MLflow-indeling implementeert in webservices (ACI/AKS v1) met behulp van de MLflow SDK.
- Modellen implementeren die zijn getraind in Azure Databricks naar Azure Machine Learning met MLflow: Laat zien hoe u modellen traint in Azure Databricks en implementeert in Azure Machine Learning. In het voorbeeld wordt ook beschreven hoe u cases kunt afhandelen waarin u ook de experimenten wilt bijhouden met het MLflow-exemplaar in Azure Databricks.
Training met MLflow-projecten (preview)
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. De preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen 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-projecten (preview). U kunt taken lokaal verzenden met Azure Machine Learning-tracering of uw taken migreren naar de cloud via Azure Machine Learning Compute.
Voorbeeldnotebooks
- Een MLflow-project bijhouden in Azure Machine Learning-werkruimten.
- Train en voer een MLflow-project uit op Azure Machine Learning-taken.
MLflow SDK, Azure Machine Learning v2 en Azure Machine Learning-studio mogelijkheden
In de volgende tabel ziet u de bewerkingen die mogelijk zijn, met behulp van elk van de clienthulpprogramma's die beschikbaar zijn in de levenscyclus van machine learning.
Functie | MLflow SDK | Azure Machine Learning CLI/SDK | Azure Machine Learning Studio |
---|---|---|---|
Metrische gegevens, parameters en modellen bijhouden en registreren | ✓ | ||
Metrische gegevens, parameters en modellen ophalen | ✓ | 1 | ✓ |
Trainingstaken verzenden | ✓2 | ✓ | ✓ |
Trainingstaken verzenden met Azure Machine Learning-gegevensassets | ✓ | ✓ | |
Trainingstaken verzenden met machine learning-pijplijnen | ✓ | ✓ | |
Experimenten en uitvoeringen beheren | ✓ | ✓ | ✓ |
MLflow-modellen beheren | ✓3 | ✓ | ✓ |
Niet-MLflow-modellen beheren | ✓ | ✓ | |
MLflow-modellen implementeren in Azure Machine Learning (Online & Batch) | ✓4 | ✓ | ✓ |
Niet-MLflow-modellen implementeren in Azure Machine Learning | ✓ | ✓ |
Notitie
- 1 Alleen artefacten en modellen kunnen worden gedownload.
- 2 Mogelijk met behulp van MLflow-projecten (preview).
- 3 Sommige bewerkingen worden mogelijk niet ondersteund. Bekijk modelregisters beheren in Azure Machine Learning met MLflow voor meer informatie.
- 4 Implementatie van MLflow-modellen voor batchdeductie met behulp van de MLflow SDK is momenteel niet mogelijk. Zie MLflow-modellen implementeren en uitvoeren in Spark-taken als alternatief.