MLOps-modelbeheer met Azure Machine Learning
VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
In dit artikel wordt beschreven hoe Azure Machine Learning machine learning-bewerkingen (MLOps) gebruikt om de levenscyclus van uw modellen te beheren. Het toepassen van MLOps-procedures kan de kwaliteit en consistentie van uw machine learning-oplossingen verbeteren.
MLOps is gebaseerd op DevOps-principes en -procedures die de efficiëntie van werkstromen verhogen, zoals continue integratie, continue implementatie en continue levering. Het toepassen van deze principes op de levenscyclus van machine learning resulteert in:
- Snellere experimenten en modelontwikkeling.
- Snellere implementatie van modellen in productie.
- Betere kwaliteitscontrole en end-to-end herkomsttracering.
MLOps-mogelijkheden
MLOps biedt de volgende mogelijkheden voor het machine learning-proces:
- Maak reproduceerbare machine learning-pijplijnen om herhaalbare en herbruikbare stappen te definiëren voor gegevensvoorbereiding, training en scoreprocessen.
- Maak herbruikbare softwareomgevingen voor het trainen en implementeren van modellen.
- Registreer, verpakt en implementeer modellen vanaf elke locatie en volg de bijbehorende metagegevens die vereist zijn voor het gebruik van een model.
- Logboekherkomstgegevens voor levenscyclusbeheer van machine learning, zoals wie modellen heeft gepubliceerd, waarom er wijzigingen zijn aangebracht en wanneer modellen zijn geïmplementeerd of gebruikt in productie.
- Informeer en waarschuw bij gebeurtenissen voor de levenscyclus van machine learning, zoals het voltooien van experimenten, modelregistratie, modelimplementatie en detectie van gegevensdrift.
- Bewaak operationele en machine learning-gerelateerde problemen door modelinvoer te vergelijken, modelspecifieke metrische gegevens te verkennen en bewaking en waarschuwingen voor machine learning-infrastructuur weer te geven.
- Automatiseer de end-to-end levenscyclus van machine learning met behulp van machine learning-pijplijnen en Azure Pipelines om voortdurend nieuwe machine learning-modellen te testen, bij te werken en uit te rollen.
Zie Machine Learning-bewerkingen voor meer informatie over MLOps.
Reproduceerbare machine learning-pijplijnen
Gebruik Azure Machine Learning-pijplijnen om alle stappen in uw modeltrainingsproces samen te voegen. Machine learning-pijplijnstappen kunnen gegevensvoorbereiding, functieextractie, afstemming van hyperparameters en modelevaluatie omvatten.
In de Azure Machine Learning-studio Designer kunt u een pijplijn klonen om het ontwerp ervan te herhalen zonder dat uw oude versies verloren gaan. Als u een pijplijn op elk gewenst moment wilt klonen in de ontwerpfunctie, selecteert u Klonen in de bovenste menubalk.
Zie Machine Learning-pijplijnen voor meer informatie over Azure Machine Learning-pijplijnen.
Herbruikbare softwareomgevingen
Azure Machine Learning-omgevingen zorgen ervoor dat builds reproduceerbaar zijn zonder handmatige softwareconfiguraties te gebruiken. Omgevingen kunnen de pip- en conda-softwareafhankelijkheden voor uw projecten bijhouden en reproduceren.
U kunt omgevingen gebruiken voor modeltraining en implementatie. Zie Azure Machine Learning-omgevingen voor meer informatie over omgevingen.
Modelregistratie, verpakking en implementatie
Azure Machine Learning kan MLOps overal gebruiken om modellen te registreren, te verpakken en te implementeren.
Modellen registreren en bijhouden
Modelregistratie slaat uw modellen op en versies in uw Azure Machine Learning-werkruimte in de Azure-cloud. Met het modelregister kunt u uw getrainde modellen eenvoudig ordenen en bijhouden.
Een geregistreerd model is een logische container voor een of meer bestanden waaruit uw model bestaat. Als uw model bijvoorbeeld in meerdere bestanden is opgeslagen, kunt u de bestanden registreren als één model in uw Azure Machine Learning-werkruimte. Na de registratie kunt u het geregistreerde model downloaden of implementeren en alle onderdeelbestanden ontvangen.
U kunt ook modellen registreren die buiten Azure Machine Learning zijn getraind. Azure Machine Learning ondersteunt elk model dat kan worden geladen met behulp van Python 3.5.2 of hoger.
U identificeert geregistreerde modellen op naam en versie. Wanneer u een model registreert met dezelfde naam als een bestaand model, wordt het versienummer verhoogd.
U kunt tijdens de registratie metagegevenstags opgeven en deze tags gebruiken om naar een model te zoeken.
Belangrijk
U kunt een geregistreerd model dat wordt gebruikt in een actieve implementatie niet verwijderen.
Modellen verpakken en fouten opsporen
Als u een model in productie wilt implementeren, moet u het eerst verpakken in een Docker-installatiekopieën. In de meeste gevallen gebeurt het maken van installatiekopieën automatisch op de achtergrond tijdens de implementatie. U kunt de afbeelding echter handmatig opgeven.
Het is handig om eerst in uw lokale ontwikkelomgeving te implementeren, zodat u problemen kunt oplossen en fouten kunt opsporen voordat u in de cloud implementeert. Met deze procedure kunt u voorkomen dat u problemen ondervindt met uw implementatie in Azure Machine Learning. Zie Online-eindpunten oplossen voor meer informatie over het oplossen van veelvoorkomende implementatieproblemen.
Modellen converteren en optimaliseren
U kunt uw model converteren naar Open Neural Network Exchange (ONNX) om de prestaties te verbeteren. Het converteren naar ONNX kan doorgaans dubbele prestaties leveren.
Zie Machine Learning-modellen maken en versnellen voor meer informatie over ONNX met Azure Machine Learning.
Modellen implementeren als eindpunten
U kunt getrainde machine learning-modellen lokaal of in de cloud implementeren als eindpunten . Implementaties gebruiken CPU's en GPU's voor deductie.
Als u een model als eindpunt wilt implementeren, moet u de volgende informatie opgeven:
- Het model dat wordt gebruikt om gegevens te scoren die zijn verzonden naar de service of het apparaat.
- Een invoerscript, ook wel scorescript genoemd, dat aanvragen accepteert, de modellen gebruikt om de gegevens te beoordelen en een antwoord retourneert.
- Een omgeving waarin de pip- en conda-afhankelijkheden worden beschreven die vereist zijn voor de modellen en het invoerscript.
- Alle andere assets, zoals tekst en gegevens, die vereist zijn voor het model en invoerscript.
Belangrijk
Wanneer u een MLflow-model implementeert, hoeft u geen invoerscript of een omgeving voor de implementatie op te geven. Zie Richtlijnen voor het implementeren van MLflow-modellen voor meer informatie over het implementeren van MLflow-modellen.
U geeft ook de configuratie van het doelimplementatieplatform op, zoals het type VM-serie (virtuele machine), het beschikbare geheugen en het aantal kernen. Wanneer Azure Machine Learning de installatiekopieën maakt, worden ook alle benodigde onderdelen toegevoegd, zoals assets die nodig zijn om de webservice uit te voeren.
Batchgewijs scoren met batch-eindpunten
Batchgewijs scoren wordt ondersteund via batch-eindpunten. Zie Batch-eindpunten voor meer informatie over batchscores.
Realtime scoren met online-eindpunten
U kunt uw modellen gebruiken met online-eindpunten voor realtime scoren. Rekendoelen voor online-eindpunten kunnen lokale ontwikkelomgevingen, beheerde online-eindpunten of Azure Kubernetes Service (AKS) zijn.
Als u een model wilt implementeren op een online-eindpunt, moet u de volgende informatie opgeven:
- Het model of ensemble van modellen.
- Afhankelijkheden die vereist zijn voor het gebruik van het model, bijvoorbeeld een script dat aanvragen accepteert en het model en conda-afhankelijkheden aanroept.
- Implementatieconfiguratie die beschrijft hoe en waar het model moet worden geïmplementeerd.
Zie Online-eindpunten implementeren voor meer informatie over implementatie voor realtime scoren.
Gecontroleerde implementatie voor online-eindpunten
Wanneer u implementeert op een online-eindpunt, kunt u beheerde implementatie gebruiken om de volgende scenario's in te schakelen:
- Maak meerdere versies van een eindpunt voor een implementatie.
- A/B-tests uitvoeren door verkeer naar verschillende implementaties binnen het eindpunt te routeren.
- Schakelen tussen eindpuntimplementaties door het verkeerspercentage in de eindpuntconfiguratie bij te werken.
Zie Veilige implementatie van nieuwe implementaties uitvoeren voor realtime deductie voor meer informatie over implementatie met behulp van een gecontroleerde implementatie.
Metagegevens voor levenscyclusbeheer van machine learning
Azure Machine Learning biedt u de mogelijkheid om het end-to-end audittrail van al uw machine learning-assets bij te houden met behulp van metagegevens. Voorbeeld:
- Met Azure Machine Learning-gegevensassets kunt u gegevens bijhouden, profileren en versiegegevens.
- Met modelinterpreteerbaarheid kunt u uw modellen uitleggen, voldoen aan naleving van regelgeving en begrijpen hoe modellen een resultaat opleveren voor een bepaalde invoer.
- In de Azure Machine Learning-taakgeschiedenis wordt een momentopname opgeslagen van de code, gegevens en berekeningen die worden gebruikt om een model te trainen.
- Met azure Machine Learning-modelregistratie worden alle metagegevens vastgelegd die aan uw model zijn gekoppeld. Bijvoorbeeld, welk experiment het model heeft getraind, waar het model wordt geïmplementeerd en of de modelimplementaties in orde zijn.
- Met integratie met Azure kunt u reageren op gebeurtenissen in de machine learning-levenscyclus, zoals modelregistratie, implementatie, gegevensdrift en trainingstaakevenementen.
Sommige informatie over modellen en gegevensassets wordt automatisch vastgelegd, maar u kunt meer informatie toevoegen met behulp van tags. Wanneer u naar geregistreerde modellen en gegevensassets in uw werkruimte zoekt, kunt u tags gebruiken als filters.
Notitie
Wanneer u de tags in de optie Filteren op gebruikt op de pagina Modellen van Azure Machine Learning-studio, moet u ervoor zorgen dat u TagName=TagValue
zonder spaties gebruikt in plaats TagName : TagValue
van .
Melding en waarschuwingen voor de levenscyclus van Machine Learning
Azure Machine Learning publiceert belangrijke gebeurtenissen naar Azure Event Grid, die kunnen worden gebruikt om gebeurtenissen in de levenscyclus van machine learning op de hoogte te stellen en te automatiseren. Zie Aangepaste CI/CD- en gebeurtenisgestuurde werkstromen voor meer informatie over het instellen van gebeurtenisgestuurde processen op basis van Azure Machine Learning-gebeurtenissen.
Automatisering van de levenscyclus van Machine Learning
U kunt Git en Azure Pipelines gebruiken om een doorlopend integratieproces te maken waarmee een machine learning-model wordt getraind. In een typisch scenario, wanneer een data scientist een wijziging in de Git-opslagplaats van een project controleert, start Azure Pipelines de trainingstaak.
U kunt de taakresultaten controleren om de prestatiekenmerken van het getrainde model te bekijken. U kunt ook een pijplijn maken waarmee het model als een webservice wordt geïmplementeerd.
Met de Machine Learning-extensie kunt u eenvoudiger met Azure Pipelines werken. De extensie biedt de volgende verbeteringen in Azure Pipelines:
- Hiermee schakelt u selectie van Azure Machine Learning-werkruimten in wanneer u een serviceverbinding definieert.
- Hiermee kunt u getrainde modellen maken in een trainingspijplijn om een implementatie in Azure Pipelines te activeren.
Analyse
Microsoft Power BI ondersteunt het gebruik van machine learning-modellen voor gegevensanalyse. Zie AI met gegevensstromen voor meer informatie.