Delen via


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:

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: