MLOps: Modelbeheer, implementatie, lineage en bewaking met Azure Machine Learning

In dit artikel leert u meer over het gebruik van Azure Machine Learning levenscyclus van uw modellen te beheren. Azure Machine Learning maakt gebruik van een MACHINE LEARNING Operations-benadering (MLOps). MLOps verbetert de kwaliteit en consistentie van uw machine learning oplossingen.

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 machine learning proces, met het doel:

  • Snellere experimenten en ontwikkeling van modellen
  • Snellere implementatie van modellen in productie
  • Kwaliteitscontrole en end-to-end tracering van gegevens

Azure Machine Learning biedt de volgende MLOps-mogelijkheden:

  • Reproduceerbare ML-pijplijnen maken. Machine Learning pijplijnen kunt u herhaalbare en herbruikbare stappen definiëren voor uw gegevensvoorbereidings-, trainings- en scoreprocessen.
  • Herbruikbare softwareomgevingen maken voor het trainen en implementeren van modellen.
  • Registreer, verpakken en implementeer modellen vanaf elke locatie. U kunt ook gekoppelde metagegevens bijhouden die zijn vereist voor het gebruik van het model.
  • Leg de governancegegevens vast voor de end-to-end ML-levenscyclus. De vastgelegde gegevens over gegevens over gegevens van gegevens over gegevens van gegevens die modellen publiceren, waarom er wijzigingen zijn aangebracht en wanneer modellen zijn geïmplementeerd of gebruikt in productie.
  • Waarschuwen en waarschuwen over gebeurtenissen in de ML-levenscyclus. Bijvoorbeeld experiment voltooiing, modelregistratie, modelimplementatie en detectie van gegevensdrift.
  • Bemonitor ML-toepassingen op operationele en ML-gerelateerde problemen. Vergelijk modelinvoer tussen training en de deferie, verken modelspecifieke metrische gegevens en geef bewaking en waarschuwingen voor 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 doorlopend nieuwe ML-modellen naast uw andere toepassingen en services uitrollen.

Reproduceerbare ML-pijplijnen maken

Gebruik ML-pijplijnen van Azure Machine Learning om alle stappen samen te brengen die bij het modeltrainingsproces komen kijken.

Een ML-pijplijn kan stappen bevatten van gegevensvoorbereiding tot functieextractie tot hyperparameterafstemming tot modelevaluatie. Zie ML-pijplijnen voor meer informatie.

Als u de ontwerpfunctie gebruikt om uw ML-pijplijnen te maken, kunt u op elk moment op de '...' rechtsboven op de pagina Designer klikken en vervolgens Klonen selecteren. Als u uw pijplijn kloont, kunt u het ontwerp van uw pijplijn itereren zonder dat uw oude versies verloren gaan.

Herbruikbare softwareomgevingen maken

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 training als implementatie van modellen. Zie What are Azure Machine Learning environments (Wat zijn Azure Machine Learning omgevingen) voor meer informatie.

Modellen vanaf elke locatie registreren, verpakken en implementeren

ML-modellen registreren en volgen

Met modelregistratie kunt u uw modellen opslaan en versien in de Azure-cloud, in uw werkruimte. Met het modelregister kunt u eenvoudig uw getrainde modellen organiseren en bijhouden.

Tip

Een geregistreerd model is een logische container voor een of meer bestanden waar uw model uit bestaat. Als u bijvoorbeeld een model hebt dat is opgeslagen in meerdere bestanden, kunt u dit als één model registreren in uw Azure Machine Learning werkruimte. Na de registratie kunt u het geregistreerde model downloaden of implementeren en alle geregistreerde bestanden ontvangen.

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. Aanvullende metagegevenstags kunnen 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 Python 3.5.2 of hoger.

Tip

U kunt ook modellen registreren die buiten de Azure Machine Learning.

U kunt een geregistreerd model dat wordt gebruikt in een actieve implementatie niet verwijderen. Zie de sectie Model registreren van Modellen implementeren voor meer informatie.

Belangrijk

Wanneer u de optie Filteren op gebruikt op de pagina Modellen van Azure Machine Learning Studio, moet u in plaats van klanten gebruiken Tags TagName : TagValue TagName=TagValue (zonder ruimte)

Profielmodellen

Azure Machine Learning kunt u inzicht krijgen in de CPU- en geheugenvereisten van de service die wordt gemaakt wanneer u uw model implementeert. Profilering test de service die uw model wordt uitgevoerd en retourneert informatie zoals het CPU-gebruik, geheugengebruik en reactielatentie. Het biedt ook een aanbeveling voor CPU en geheugen op basis van het resourcegebruik. Zie de sectie Profilering van Modellen implementeren voor meer informatie.

Modellen verpakken en fouten opsporen

Voordat u een model in productie implementeert, wordt het verpakt in een Docker-afbeelding. In de meeste gevallen wordt het maken van afbeeldingen automatisch op de achtergrond uitgevoerd tijdens de implementatie. U kunt de afbeelding handmatig opgeven.

Als u problemen hebt met de implementatie, kunt u implementeren in uw lokale ontwikkelomgeving voor probleemoplossing en foutopsporing.

Zie Modellen implementeren en Problemen met implementaties oplossen voor meer informatie.

Modellen converteren en optimaliseren

Het converteren van uw model Open Neural Network Exchange (ONNX) kan de prestaties verbeteren. Conversie naar ONNX kan gemiddeld een prestatieverhoging van twee keer opleveren.

Zie het artikel ML-modellen maken Azure Machine Learning versnellen voor meer informatie over ONNX met on-Azure Machine Learning.

Modellen gebruiken

Getrainde machine learning modellen worden geïmplementeerd als webservices in de cloud of lokaal. U kunt ook modellen implementeren op Azure IoT Edge apparaten. Implementaties gebruiken CPU, GPU of field-programmable gate-matrices (FPGA) voor de deferencing. U kunt ook modellen van Power BI.

Wanneer u een model als een webservice of IoT Edge-apparaat gebruikt, geeft u de volgende items op:

  • De model(s) die worden gebruikt om gegevens te scoren die naar de service/het apparaat worden verzonden.
  • Een invoerscript. Dit script accepteert aanvragen, gebruikt de model(s) om de gegevens te scoren en retourneert een antwoord.
  • Een Azure Machine Learning omgeving waarin de PIP- en Conda-afhankelijkheden worden beschreven die vereist zijn voor de model(s) en het invoerscript.
  • Aanvullende assets, zoals tekst, gegevens, enzovoort, die vereist zijn voor de model(s) en het invoerscript.

U geeft ook de configuratie van het doelimplementatieplatform op. Bijvoorbeeld het type VM-familie, het beschikbare geheugen en het aantal kernen bij het implementeren naar 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 en te communiceren met IoT Edge.

Batchscore

Batchscores worden ondersteund via ML-pijplijnen. Zie Batch-voorspellingen op de big data voor meer big data.

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 wilt implementeren als een webservice, moet u de volgende items verstrekken:

  • Het model of ensemble van modellen.
  • Afhankelijkheden die vereist zijn om het model te gebruiken. Bijvoorbeeld een script dat aanvragen accepteert en het model aanroept, Conda-afhankelijkheden, enzovoort.
  • Implementatieconfiguratie waarin wordt beschreven hoe en waar het model moet worden geïmplementeerd.

Zie Modellen implementeren voor meer informatie.

Beheerde implementatie

Wanneer u implementeert in Azure Kubernetes Service, kunt u beheerde implementatie gebruiken om de volgende scenario's mogelijk te maken:

  • Meerdere versies van een eindpunt voor een implementatie maken
  • Voer A/B-tests uit door verkeer naar verschillende versies van het eindpunt te routeren.
  • Schakel tussen eindpuntversies door het verkeerspercentage in de eindpuntconfiguratie bij te werken.

Zie Beheerde implementatie van ML-modellen voor meer informatie.

IoT Edge apparaten

U kunt modellen met IoT-apparaten gebruiken via Azure IoT Edge modules. IoT Edge-modules worden geïmplementeerd op een hardwareapparaat, waardoor deferentie of modelscore op het apparaat mogelijk is.

Zie Modellen implementeren voor meer informatie.

Analyse

Microsoft Power BI het gebruik van machine learning modellen voor gegevensanalyse. Zie integratie van Azure Machine Learning in Power BI (preview) voor meer informatie.

De governancegegevens vastleggen die vereist zijn voor het vastleggen van de end-to-end ML-levenscyclus

Azure ML biedt u de mogelijkheid om het end-to-end audittrail van al uw ML-assets bij te houden met behulp van metagegevens.

  • Azure ML kan worden geïntegreerd met Git om informatie bij te houden over de opslagplaats/vertakking/door te voeren waarvan uw code afkomstig is.
  • Met Azure ML-gegevenssets kunt u gegevens bijhouden, profileren en versien.
  • Met interpreteerbaarheid kunt u uw modellen uitleggen, voldoen aan wettelijke naleving en begrijpen hoe modellen tot een resultaat voor bepaalde invoer komen.
  • Azure ML-uitvoeringsgeschiedenis slaat een momentopname op van de code, gegevens en berekeningen die worden gebruikt om een model te trainen.
  • Het Azure ML-modelregister legt alle metagegevens vast die aan uw model zijn gekoppeld (welk experiment het model heeft 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. Bijvoorbeeld modelregistratie, implementatie, gegevensdrift en trainingsgebeurtenissen (uitvoeren).

Tip

Hoewel bepaalde informatie over modellen en gegevenssets automatisch wordt vastgelegd, kunt u aanvullende informatie toevoegen met behulp van tags. Wanneer u op zoek bent naar geregistreerde modellen en gegevenssets in uw werkruimte, kunt u tags als filter gebruiken.

Het koppelen van een gegevensset aan een geregistreerd model is een optionele stap. Zie modelklasseverwijzing voor meer informatie over het verwijzen naar een gegevensset bij het registreren van een model.

Gebeurtenissen in de ML-levenscyclus waarschuwen, automatiseren en waarschuwen

Azure ML publiceert belangrijke gebeurtenissen naar Azure EventGrid, dat kan worden gebruikt om gebeurtenissen in de ML-levenscyclus op de hoogte te brengen en te automatiseren. Raadpleeg dit document voor meer informatie.

Controleren op problemen met & ML

Met bewaking kunt u begrijpen welke gegevens naar uw model worden verzonden en welke voorspellingen worden retourneert.

Aan de hand van deze informatie begrijpt u hoe uw model wordt gebruikt. De verzamelde invoergegevens kunnen ook nuttig zijn bij het trainen van toekomstige versies van het model.

Zie How to enable model data collection (Het verzamelen van modelgegevens inschakelen) voor meer informatie.

Uw model opnieuw trainen op nieuwe gegevens

Vaak wilt u uw model valideren, bijwerken of zelfs opnieuw trainen wanneer u nieuwe informatie ontvangt. Soms is het ontvangen van nieuwe gegevens een verwacht onderdeel van het domein. Andere tijden, zoals besproken in Gegevensdrift detecteren (preview)voor gegevenssets, kunnen de modelprestaties verslechteren ten opzichte van andere kenmerken, zoals wijzigingen in een bepaalde sensor, natuurlijke gegevenswijzigingen, zoals seizoensgebonden effecten of kenmerken die in relatie tot andere functies veranderen.

Er is geen universeel antwoord op 'Hoe kan ik weten of ik opnieuw moet trainen?' Maar azure ML-hulpprogramma's voor gebeurtenissen en bewaking die eerder zijn besproken, zijn goede uitgangspunten voor automatisering. Nadat u hebt besloten om opnieuw te trainen, moet u het volgende doen:

  • Verwerkt uw gegevens voor met behulp van een herhaalbaar, geautomatiseerd proces
  • Uw nieuwe model trainen
  • De uitvoer van uw nieuwe model vergelijken met die 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 designer passen in een scenario voor opnieuw trainen.

De ML-levenscyclus automatiseren

U kunt GitHub en Azure Pipelines gebruiken om een continu integratieproces te maken dat een model traint. In een typisch scenario, wanneer een Datawetenschapper een wijziging in de Git-repo voor een project controleert, start de Azure Pipeline een trainingsuitleiding. De resultaten van de uitvoering kunnen vervolgens worden geïnspecteerd om de prestatiekenmerken van het getrainde model te bekijken. U kunt ook een pijplijn maken die het model als een webservice implementeert.

De Azure Machine Learning-extensie maakt het gemakkelijker om met Azure Pipelines te werken. Het biedt de volgende verbeteringen in Azure Pipelines:

  • Hiermee schakelt u werkruimteselectie in bij het definiëren van een serviceverbinding.
  • Hiermee kunnen release-pijplijnen 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 ook Azure Data Factory om een pijplijn voor gegevens opname te maken die gegevens voorbereidt voor gebruik met de training. Zie Pijplijn voor gegevens opname voor meer informatie.

Volgende stappen

Lees en verken de volgende bronnen voor meer informatie: