MLOps: Modelbeheer, implementatie en bewaking met Azure Machine Learning

VAN TOEPASSING OP:Azure CLI ml-extensie v2 (huidig)Python SDK azure-ai-ml v2 (huidig)

In dit artikel leert u hoe Machine Learning Operations (MLOps) in Azure Machine Learning de levenscyclus van uw modellen beheert. MLOps verbetert de kwaliteit en consistentie van uw machine learning-oplossingen.

Wat is MLOps?

MLOps is gebaseerd op DevOps-principes en -procedures die de efficiëntie van werkstromen verhogen. Voorbeelden zijn 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.
  • Kwaliteitsbewaking en end-to-end herkomsttracering.

MLOps in Machine Learning

Machine Learning biedt de volgende MLOps-mogelijkheden:

  • Reproduceerbare machine learning-pijplijnen maken. Gebruik machine learning-pijplijnen om herhaalbare en herbruikbare stappen te definiëren voor uw gegevensvoorbereiding, training en scoreprocessen.
  • Herbruikbare softwareomgevingen maken. Gebruik deze omgevingen voor het trainen en implementeren van modellen.
  • Modellen registreren, verpakken en implementeren vanaf elke locatie. U kunt ook de gekoppelde metagegevens bijhouden die nodig zijn om het model te gebruiken.
  • Leg de governancegegevens vast voor de end-to-end levenscyclus van machine learning. De geregistreerde gegevens over herkomst kunnen omvatten wie modellen publiceert en waarom er wijzigingen zijn aangebracht. Het kan ook zijn wanneer modellen zijn geïmplementeerd of gebruikt in productie.
  • Meldingen en waarschuwingen over gebeurtenissen in de levenscyclus van machine learning. Voorbeelden van gebeurtenissen zijn het voltooien van experimenten, modelregistratie, modelimplementatie en detectie van gegevensdrift.
  • Bewaak machine learning-toepassingen voor operationele en machine learning-gerelateerde problemen. Modelinvoer vergelijken tussen training en deductie. Modelspecifieke metrische gegevens verkennen. Geef bewaking en waarschuwingen op voor uw machine learning-infrastructuur.
  • Automatiseer de end-to-end machine learning-levenscyclus met Machine Learning en Azure Pipelines. Met behulp van pijplijnen kunt u modellen regelmatig bijwerken. U kunt ook nieuwe modellen testen. U kunt voortdurend nieuwe machine learning-modellen implementeren naast uw andere toepassingen en services.

Zie Machine learning DevOps voor meer informatie over MLOps.

Reproduceerbare machine learning-pijplijnen maken

Gebruik machine learning-pijplijnen van Machine Learning om alle stappen in het trainingsproces van uw model samen te voegen.

Een machine learning-pijplijn kan stappen bevatten van gegevensvoorbereiding tot functie-extractie tot hyperparameterafstemming tot modelevaluatie. Zie Machine learning-pijplijnen voor meer informatie.

Als u de ontwerpfunctie gebruikt om uw machine learning-pijplijnen te maken, kunt u op elk gewenst moment het pictogram ... selecteren in de rechterbovenhoek van de ontwerpfunctiepagina. Selecteer vervolgens Klonen. Wanneer u uw pijplijn kloont, kunt u het pijplijnontwerp herhalen zonder dat uw oude versies verloren gaan.

Herbruikbare softwareomgevingen maken

Met behulp van Machine Learning-omgevingen kunt u de softwareafhankelijkheden van uw projecten bijhouden en reproduceren naarmate deze zich ontwikkelen. U kunt omgevingen gebruiken om ervoor te zorgen dat builds reproduceerbaar zijn zonder handmatige softwareconfiguraties.

Omgevingen beschrijven de pip- en conda-afhankelijkheden voor uw projecten. U kunt ze gebruiken voor het trainen en implementeren van modellen. Zie Wat zijn Machine Learning-omgevingen? voor meer informatie.

Modellen registreren, verpakken en implementeren vanaf elke locatie

In de volgende secties wordt besproken hoe u modellen registreert, verpakt en implementeert.

Machine Learning-modellen registreren en bijhouden

Met modelregistratie kunt u uw modellen opslaan en versiebeheer uitvoeren in de Azure-cloud, in uw werkruimte. Met het modelregister kunt u uw getrainde modellen eenvoudig organiseren 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 deze als één model registreren in uw 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. Tijdens de registratie kunnen meer metagegevenstags worden opgegeven. Deze tags worden vervolgens gebruikt wanneer u naar een model zoekt. Machine Learning ondersteunt elk model dat kan worden geladen met python 3.5.2 of hoger.

Tip

U kunt ook modellen registreren die buiten Machine Learning zijn getraind.

Belangrijk

  • Wanneer u de optie FilterenTags op gebruikt op de pagina Modellen van Azure Machine Learning Studio, in plaats van te gebruiken TagName : TagValue, gebruikt u TagName=TagValue zonder spaties.
  • U kunt een geregistreerd model dat wordt gebruikt in een actieve implementatie niet verwijderen.

Zie Werken met modellen in Azure Machine Learning voor meer informatie.

Modellen verpakken en fouten opsporen

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

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

Zie Problemen met online-eindpunten oplossen voor meer informatie.

Modellen converteren en optimaliseren

Het converteren van uw model naar Open Neural Network Exchange (ONNX) kan de prestaties verbeteren. Gemiddeld kunnen de prestaties worden verdubbeld door te converteren naar ONNX.

Zie Machine Learning-modellen maken en versnellen voor meer informatie over ONNX met Machine Learning.

Modellen gebruiken

Getrainde machine learning-modellen worden geïmplementeerd als eindpunten in de cloud of lokaal. Implementaties maken gebruik van CPU, GPU voor deductie.

Wanneer u een model als eindpunt implementeert, geeft u de volgende items op:

  • De modellen die worden gebruikt om gegevens te beoordelen die zijn verzonden naar de service of het apparaat.
  • Een invoerscript. Dit script accepteert aanvragen, gebruikt de modellen om de gegevens te scoren en retourneert een antwoord.
  • Een Machine Learning-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 de modellen en het invoerscript.

U geeft ook de configuratie van het doelimplementatieplatform op. Bijvoorbeeld het type VM-familie, het beschikbare geheugen en het aantal kernen. 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

Batch scoring wordt ondersteund via batch-eindpunten. Zie eindpunten voor meer informatie.

Online-eindpunten

U kunt uw modellen gebruiken met een online-eindpunt. Online-eindpunten kunnen gebruikmaken van de volgende rekendoelen:

  • Beheerde online-eindpunten
  • Azure Kubernetes Service
  • Lokale ontwikkelomgeving

Als u het model wilt implementeren op een eindpunt, moet u de volgende items opgeven:

  • Het model of het ensemble van modellen.
  • Afhankelijkheden die vereist zijn voor het gebruik van het model. Voorbeelden zijn een script dat aanvragen accepteert en het model en conda-afhankelijkheden aanroept.
  • Implementatieconfiguratie waarin wordt beschreven hoe en waar het model moet worden geïmplementeerd.

Zie Online-eindpunten implementeren voor meer informatie.

Gecontroleerde implementatie

Wanneer u implementeert op een online-eindpunt, kunt u gecontroleerde implementatie gebruiken om de volgende scenario's in te schakelen:

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

Zie Gecontroleerde implementatie van machine learning-modellen voor meer informatie.

Analyse

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

De governancegegevens vastleggen die vereist zijn voor MLOps

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. Bijvoorbeeld:

  • Machine Learning-gegevenssets helpen u bij het bijhouden, profileren en versiegegevens.
  • Met interpreteerbaarheid kunt u uw modellen uitleggen, voldoen aan de naleving van regelgeving en begrijpen hoe modellen tot een resultaat komen voor specifieke invoer.
  • In de machine learning-taakgeschiedenis wordt een momentopname opgeslagen van de code, gegevens en berekeningen die worden gebruikt om een model te trainen.
  • Het machine learning-modelregister legt alle metagegevens vast die aan uw model zijn gekoppeld. Metagegevens bevatten bijvoorbeeld welk experiment het heeft getraind, waar het wordt geïmplementeerd en of de implementaties in orde zijn.
  • Dankzij de integratie met Azure kunt u reageren op gebeurtenissen in de machine learning-levenscyclus. Voorbeelden zijn modelregistratie, implementatie, gegevensdrift en trainings-gebeurtenissen (taak).

Tip

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

Gebeurtenissen in de machine learning-levenscyclus melden, automatiseren en waarschuwen

Machine Learning publiceert belangrijke gebeurtenissen naar Azure Event Grid, die kunnen worden gebruikt voor het melden en automatiseren van gebeurtenissen in de machine learning-levenscyclus. Zie Event Grid gebruiken voor meer informatie.

De levenscyclus van machine learning 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 data scientist een wijziging controleert in de Git-opslagplaats voor een project, start Azure Pipelines een trainingstaak. De resultaten van de taak kunnen vervolgens worden geïnspecteerd om de prestatiekenmerken van het getrainde model te zien. U kunt ook een pijplijn maken waarmee het model als een webservice wordt geïmplementeerd.

Met de Machine Learning-extensie kunt u eenvoudiger werken met Azure Pipelines. Het biedt de volgende verbeteringen in Azure Pipelines:

  • Hiermee schakelt u selectie van werkruimten in wanneer u een serviceverbinding definieert.
  • Hiermee kunnen release-pijplijnen worden geactiveerd door getrainde modellen die zijn gemaakt in een trainingspijplijn.

Zie voor meer informatie over het gebruik van Azure Pipelines met Machine Learning:

Volgende stappen

Lees en verken de volgende bronnen voor meer informatie: