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

In dit artikel vindt u informatie over hoe u MLOps (Machine Learning Operations) gebruikt in Azure Machine Learning levenscyclus van uw modellen te beheren. MLOps verbetert de kwaliteit en consistentie van uw machine learning oplossingen.

Wat is MLOps?

Machine Learning Bewerkingen (MLOps) zijn 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

MLOps in Azure Machine Learning

Azure Machine Learning biedt de volgende MLOps-mogelijkheden:

  • Maak reproduceerbare ML pijplijnen. 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.
  • Modellen vanaf elke locatie registreren, verpakken en implementeren. 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.
  • Be ML toepassingen controleren op operationele en ML-gerelateerde problemen. Vergelijk modelinvoer tussen training en de deferentie, verken modelspecifieke metrische gegevens en geef bewaking en waarschuwingen op uw ML infrastructuur.
  • Automatiseer de end-to-end levenscyclus ML met Azure Machine Learning en Azure Pipelines. Met behulp van pijplijnen kunt u vaak modellen bijwerken, nieuwe modellen testen en continu nieuwe ML naast uw andere toepassingen en services.

Zie voor meer informatie over MLOps Machine Learning DevOps (MLOps).

Reproduceerbare pijplijnen ML 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 functie-extractie tot hyperparameterafstemming tot modelevaluatie. Zie voor meer informatie ML pijplijnen.

Als u de ontwerpfunctie gebruikt om uw ML-pijplijnen te maken, kunt u op elk moment op de '...' rechtsboven op de pagina Ontwerper 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

Modellen registreren en ML 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 ze 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 Tags TagName : TagValue klanten gebruiken 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 naar Open Neural Network Exchange (ONNX) kan de prestaties verbeteren. Conversie naar ONNX kan gemiddeld een prestatieverhoging van twee keer opleveren.

Zie voor meer informatie over ONNX Azure Machine Learning het artikel Create and accelerate ML models (Modellen maken ML versnellen).

Modellen gebruiken

Getrainde machine learning worden geïmplementeerd als webservices in de cloud of lokaal. Voor implementaties worden CPU-, GPU- of field-programmable gate-matrices (FPGA) gebruikt voor de deferencing. U kunt ook modellen van Power BI.

Wanneer u een model als webservice gebruikt, geeft u de volgende items op:

  • De model(s) die worden gebruikt voor het scoren van gegevens 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 het model(s) en 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.

Batchscore

Batchscores worden ondersteund via ML pijplijnen. Zie Batch-voorspellingen over de 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.

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 MLOps

Azure ML biedt u de mogelijkheid om het end-to-end audittrail van al uw ML te volgen 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.
  • Azure ML-gegevenssets helpen u bij het bijhouden, profileren en versiegegevens.
  • Met interpreteerbaarheid kunt u uw modellen uitleggen, voldoen aan regelgeving en begrijpen hoe modellen tot een resultaat voor bepaalde invoer komen.
  • Azure ML Run History 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 zijn gekoppeld aan uw model (welk experiment het 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 levenscyclus van de ML waarschuwen, automatiseren ML waarschuwing

Azure ML belangrijke gebeurtenissen naar Azure EventGrid, dat kan worden gebruikt om gebeurtenissen in de levenscyclus van de ML melden en automatiseren. Raadpleeg 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 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 (Modelgegevensverzameling 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 functies, 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 en bewakingshulpprogramma's 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 levenscyclus van ML 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 gegevensingestie voor meer informatie.

Volgende stappen

Lees en verken de volgende bronnen voor meer informatie: