MLOps: Modelbeheer, implementatie, herkomst en bewaking met Azure Machine Learning v1
VAN TOEPASSING OP: Azure CLI ml-extensie v1Python SDK azureml v1
In dit artikel leert u hoe u MLOps-procedures (Machine Learning Operations) in Azure Machine Learning toepast voor het beheren van de levenscyclus van uw modellen. Het toepassen van MLOps-procedures kan de kwaliteit en consistentie van uw machine learning-oplossingen verbeteren.
Belangrijk
Items in dit artikel die zijn gemarkeerd als '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.
Wat is MLOps?
Machine Learning Operations (MLOps) is gebaseerd op DevOps-principes en -procedures die de efficiëntie van werkstromen verhogen. Bijvoorbeeld continue integratie, levering en implementatie. MLOps past deze principes toe op het machine learning-proces, met als doel:
- Snellere experimenten en ontwikkeling van modellen
- Snellere implementatie van modellen in productie
- Kwaliteitscontrole en end-to-end tracering van herkomst
MLOps in Azure Machine Learning
Azure Machine Learning biedt de volgende MLOps-mogelijkheden:
- Reproduceerbare ML-pijplijnen maken. Met Machine Learning-pijplijnen kunt u herhaalbare en herbruikbare stappen definiëren voor uw processen voor gegevensvoorbereiding, training en score.
- Maak herbruikbare softwareomgevingen voor het trainen en implementeren van modellen.
- Registreer, verpakt en implementeer modellen vanaf elke locatie. U kunt ook gekoppelde metagegevens bijhouden die vereist zijn voor het gebruik van het model.
- Leg de governancegegevens vast voor de end-to-end ML-levenscyclus. De vastgelegde herkomstgegevens kunnen omvatten wie modellen publiceert, waarom er wijzigingen zijn aangebracht en wanneer modellen in productie zijn geïmplementeerd of gebruikt.
- Waarschuwen en waarschuwen over gebeurtenissen in de ML-levenscyclus. Experimentvoltooiing, modelregistratie, modelimplementatie en detectie van gegevensdrift.
- ML-toepassingen controleren op operationele en ML-gerelateerde problemen. Vergelijk modelinvoer tussen training en deductie, verken modelspecifieke metrische gegevens en geef bewaking en waarschuwingen op uw ML-infrastructuur.
- Automatiseer de end-to-end ML-levenscyclus met Azure Machine Learning en Azure Pipelines. Met behulp van pijplijnen kunt u regelmatig modellen bijwerken, nieuwe modellen testen en voortdurend nieuwe ML-modellen implementeren naast uw andere toepassingen en services.
Zie Machine Learning DevOps (MLOps) voor meer informatie over MLOps.
Reproduceerbare ML-pijplijnen maken
Gebruik ML-pijplijnen van Azure Machine Learning om alle stappen in uw modeltrainingsproces samen te voegen.
Een ML-pijplijn kan stappen bevatten van gegevensvoorbereiding tot functieextractie tot hyperparameterafstemming naar modelevaluatie. Zie ML-pijplijnen voor meer informatie.
Als u de ontwerpfunctie gebruikt om uw ML-pijplijnen te maken, kunt u op elk gewenst moment op de '...' in de rechterbovenhoek van de ontwerpfunctiepagina klikken en vervolgens Klonen selecteren. Door uw pijplijn te klonen, kunt u uw pijplijnontwerp herhalen zonder dat uw oude versies verloren gaan.
Herbruikbare softwareomgevingen maken
Met Azure Machine Learning-omgevingen kunt u de softwareafhankelijkheden van uw projecten bijhouden en reproduceren naarmate ze zich ontwikkelen. Met omgevingen kunt u ervoor zorgen dat builds reproduceerbaar zijn zonder handmatige softwareconfiguraties.
Omgevingen beschrijven de pip- en Conda-afhankelijkheden voor uw projecten en kunnen worden gebruikt voor zowel het trainen als implementeren van modellen. Zie Wat zijn Azure Machine Learning-omgevingen voor meer informatie.
Modellen registreren, verpakken en implementeren vanaf elke locatie
ML-modellen registreren en bijhouden
Met modelregistratie kunt u uw modellen opslaan en versien in de Azure-cloud, in uw werkruimte. Met het modelregister kunt u uw getrainde modellen eenvoudig ordenen en bijhouden.
Tip
Een geregistreerd model is een logische container voor een of meer bestanden waaruit uw model bestaat. Als u bijvoorbeeld een model hebt dat is opgeslagen in meerdere bestanden, kunt u ze registreren als één model in uw Azure Machine Learning-werkruimte. Na de registratie kunt u het geregistreerde model downloaden of implementeren en alle bestanden ontvangen die zijn geregistreerd.
Geregistreerde modellen worden geïdentificeerd met naam en versie. Telkens wanneer u een model registreert met dezelfde naam als een bestaand model, wordt de versie in het register verhoogd. Er kunnen extra metagegevenstags worden opgegeven tijdens de registratie. Deze tags worden vervolgens gebruikt bij het zoeken naar een model. Azure Machine Learning ondersteunt elk model dat kan worden geladen met Behulp van Python 3.5.2 of hoger.
Tip
U kunt ook modellen registreren die buiten Azure Machine Learning zijn getraind.
U kunt een geregistreerd model dat wordt gebruikt in een actieve implementatie niet verwijderen. Zie de sectie Model registreren van Implementatiemodellen voor meer informatie.
Belangrijk
Wanneer u Filter op Tags
optie gebruikt op de pagina Modellen van Azure Machine Learning Studio, moet u in plaats van TagName : TagValue
klanten gebruiken TagName=TagValue
(zonder ruimte)
Modellen verpakken en fouten opsporen
Voordat u een model in productie implementeert, wordt het verpakt 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 handmatig opgeven.
Als u problemen ondervindt met de implementatie, kunt u implementeren in uw lokale ontwikkelomgeving voor probleemoplossing en foutopsporing.
Zie Modellen implementeren en implementaties voor probleemoplossing voor meer informatie.
Modellen converteren en optimaliseren
Het converteren van uw model naar Open Neural Network Exchange (ONNX) kan de prestaties verbeteren. Gemiddeld kan converteren naar ONNX een prestatieverhoging van 2x opleveren.
Zie het artikel ML-modellen maken en versnellen voor meer informatie over ONNX met Azure Machine Learning.
Modellen gebruiken
Getrainde machine learning-modellen worden geïmplementeerd als webservices in de cloud of lokaal. Implementaties maken gebruik van CPU, GPU of veld programmeerbare poortmatrices (FPGA) voor deductie. U kunt ook modellen uit Power BI gebruiken.
Wanneer u een model als webservice gebruikt, geeft u de volgende items op:
- De modellen die worden gebruikt om gegevens te scoren die naar de service/het apparaat worden verzonden.
- Een invoerscript. Dit script accepteert aanvragen, gebruikt de modellen om de gegevens te beoordelen en een antwoord te retourneren.
- Een Azure Machine Learning-omgeving die de pip- en Conda-afhankelijkheden beschrijft die vereist zijn voor de modellen en het invoerscript.
- Eventuele extra assets, zoals tekst, gegevens, enzovoort, die vereist zijn voor de modellen en het invoerscript.
U geeft ook de configuratie van het doelimplementatieplatform op. Bijvoorbeeld het type VM-serie, het beschikbare geheugen en het aantal kernen bij de implementatie in Azure Kubernetes Service.
Wanneer de installatiekopie is gemaakt, worden ook de onderdelen toegevoegd die worden vereist door Azure Machine Learning. Bijvoorbeeld assets die nodig zijn om de webservice uit te voeren.
Batchscore
Batchgewijs scoren wordt ondersteund via ML-pijplijnen. Zie Batch-voorspellingen over big data voor meer informatie.
Realtime webservices
U kunt uw modellen in webservices gebruiken met de volgende rekendoelen:
- Azure Container Instance
- Azure Kubernetes Service
- Lokale ontwikkelomgeving
Als u het model als een webservice wilt implementeren, moet u de volgende items opgeven:
- Het model of ensemble van modellen.
- Afhankelijkheden die vereist zijn voor het gebruik van het model. Een script dat bijvoorbeeld aanvragen accepteert en het model, conda-afhankelijkheden, enzovoort aanroept.
- Implementatieconfiguratie die beschrijft hoe en waar het model moet worden geïmplementeerd.
Zie Modellen implementeren voor meer informatie.
Analyse
Microsoft Power BI ondersteunt het gebruik van machine learning-modellen voor gegevensanalyse. Zie Azure Machine Learning-integratie in Power BI (preview) voor meer informatie.
De governancegegevens vastleggen die vereist zijn voor MLOps
Azure Machine Learning biedt u de mogelijkheid om het end-to-end audittrail van al uw ML-assets bij te houden met behulp van metagegevens.
- Azure Machine Learning kan worden geïntegreerd met Git om informatie bij te houden over welke opslagplaats/vertakking/doorvoer uw code afkomstig is.
- Met Azure Machine Learning-gegevenssets kunt u gegevens bijhouden, profileren en versiegegevens.
- Met interpreteerbaarheid kunt u uw modellen uitleggen, voldoen aan naleving van regelgeving en begrijpen hoe modellen een resultaat opleveren voor bepaalde invoer.
- In de uitvoeringsgeschiedenis van Azure Machine Learning wordt een momentopname opgeslagen van de code, gegevens en berekeningen die worden gebruikt om een model te trainen.
- Het Azure Machine Learning-modelregister legt alle metagegevens vast die zijn gekoppeld aan uw model (welk experiment is getraind, waar het wordt geïmplementeerd, als de implementaties in orde zijn).
- Dankzij integratie met Azure kunt u reageren op gebeurtenissen in de ML-levenscyclus. Voorbeeld: modelregistratie, implementatie, gegevensdrift en trainings-gebeurtenissen (uitvoering).
Tip
Hoewel bepaalde informatie over modellen en gegevenssets automatisch wordt vastgelegd, kunt u aanvullende informatie toevoegen met behulp van tags. Wanneer u geregistreerde modellen en gegevenssets in uw werkruimte zoekt, kunt u tags gebruiken als filter.
Het koppelen van een gegevensset aan een geregistreerd model is een optionele stap. Zie de verwijzing naar de modelklasse voor informatie over het verwijzen naar een gegevensset bij het registreren van een model.
Gebeurtenissen in de ML-levenscyclus waarschuwen, automatiseren en waarschuwen
Azure Machine Learning publiceert belangrijke gebeurtenissen naar Azure Event Grid, die kunnen worden gebruikt om gebeurtenissen in de ML-levenscyclus op de hoogte te stellen en te automatiseren. Zie dit document voor meer informatie.
Controleren op operationele & ML-problemen
Met bewaking kunt u begrijpen welke gegevens naar uw model worden verzonden en welke voorspellingen worden geretourneerd.
Deze informatie helpt u te begrijpen hoe uw model wordt gebruikt. De verzamelde invoergegevens kunnen ook nuttig zijn bij het trainen van toekomstige versies van het model.
Zie Modelgegevensverzameling inschakelen voor meer informatie.
Uw model opnieuw trainen op nieuwe gegevens
Vaak wilt u uw model valideren, bijwerken of zelfs helemaal opnieuw trainen, terwijl u nieuwe informatie ontvangt. Soms is het ontvangen van nieuwe gegevens een verwacht onderdeel van het domein. In andere gevallen, zoals besproken in Gegevensdrift detecteren (preview) op gegevenssets, kunnen modelprestaties afnemen in het gezicht van zaken zoals wijzigingen in een bepaalde sensor, wijzigingen in natuurlijke gegevens zoals seizoenseffecten of functies die in hun relatie met andere functies veranderen.
Er is geen universeel antwoord op 'Hoe kan ik weten of ik opnieuw moet trainen?', maar azure Machine Learning-gebeurtenis- en bewakingsprogramma's die eerder zijn besproken, zijn goede uitgangspunten voor automatisering. Zodra u hebt besloten om opnieuw te trainen, moet u het volgende doen:
- Uw gegevens vooraf verwerken met behulp van een herhaalbaar, geautomatiseerd proces
- Uw nieuwe model trainen
- De uitvoer van uw nieuwe model vergelijken met de uitvoer van uw oude model
- Vooraf gedefinieerde criteria gebruiken om te kiezen of u uw oude model wilt vervangen
Een thema van de bovenstaande stappen is dat uw hertraining moet worden geautomatiseerd, niet ad hoc. Azure Machine Learning-pijplijnen zijn een goed antwoord voor het maken van werkstromen met betrekking tot gegevensvoorbereiding, training, validatie en implementatie. Lees Modellen opnieuw trainen met Azure Machine Learning Designer om te zien hoe pijplijnen en de Azure Machine Learning-ontwerpfunctie passen in een hertrainingsscenario.
De ML-levenscyclus automatiseren
U kunt GitHub en Azure Pipelines gebruiken om een doorlopend integratieproces te maken waarmee een model wordt getraind. In een typisch scenario, wanneer een Datawetenschapper een wijziging in de Git-opslagplaats voor een project controleert, start de Azure Pipeline een trainingsuitvoering. De resultaten van de uitvoering kunnen vervolgens worden gecontroleerd 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 Azure Machine Learning-extensie kunt u eenvoudiger met Azure Pipelines werken. Het biedt de volgende verbeteringen in Azure Pipelines:
- Hiermee schakelt u werkruimteselectie in bij het definiëren van een serviceverbinding.
- Hiermee kunnen releasepijplijnen worden geactiveerd door getrainde modellen die zijn gemaakt in een trainingspijplijn.
Zie de volgende koppelingen voor meer informatie over het gebruik van Azure Pipelines met Azure Machine Learning:
- Continue integratie en implementatie van ML-modellen met Azure Pipelines
- Azure Machine Learning MLOps-opslagplaats
- Azure Machine Learning MLOpsPython-opslagplaats
U kunt Azure Data Factory ook gebruiken om een pijplijn voor gegevensopname te maken waarmee gegevens worden voorbereid voor gebruik met training. Zie De pijplijn voor gegevensopname voor meer informatie.
Volgende stappen
Lees en verken de volgende bronnen voor meer informatie:
Hoe en waar modellen kunnen worden geïmplementeerd met Azure Machine Learning
Zelfstudie: Een model trainen en implementeren.
Clients maken die een geïmplementeerd model gebruiken
Machine learning at scale (Machine learning op schaal)