MLOps: Modelbeheer, implementatie en bewaking met Azure Machine Learning

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

In dit artikel vindt u meer informatie over machine learning-bewerkingen (MLOps) in Azure Machine Learning 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.

Wat is MLOps?

MLOps is gebaseerd op DevOps-principes en -procedures die de efficiëntie van werkstromen verhogen. Deze principes omvatten continue integratie, levering en implementatie. MLOps past deze principes toe op de levenscyclus van machine learning, met als doel:

  • Snellere experimenten en ontwikkeling van modellen.
  • Snellere implementatie van modellen in productie.
  • Kwaliteitscontrole en end-to-end herkomsttracering.

MLOps biedt de volgende mogelijkheden voor het machine learning-proces:

  • Reproduceerbare machine learning-pijplijnen maken. Gebruik machine learning-pijplijnen om herhaalbare en herbruikbare stappen te definiëren voor het voorbereiden, trainen en scoren van uw gegevens.
  • Herbruikbare softwareomgevingen maken. Gebruik deze omgevingen voor het trainen en implementeren van modellen.
  • Registreer, verpakt en implementeer modellen vanaf elke locatie. Gekoppelde metagegevens bijhouden die vereist zijn voor het gebruik van een model.
  • Beheergegevens vastleggen voor de end-to-end levenscyclus van machine learning. De vastgelegde herkomstgegevens kunnen omvatten wie modellen publiceert en waarom er wijzigingen zijn aangebracht. Het kan ook omvatten wanneer modellen zijn geïmplementeerd of gebruikt in productie.
  • Informeer en waarschuw gebeurtenissen in de levenscyclus van Machine Learning. Gebeurtenissen omvatten voltooiing van experimenten, modelregistratie, modelimplementatie en detectie van gegevensdrift.
  • Machine Learning-toepassingen bewaken voor operationele en machine learning-gerelateerde problemen. Modelinvoer vergelijken tussen training en deductie. Modelspecifieke metrische gegevens verkennen. Zorg voor bewaking en waarschuwingen voor uw machine learning-infrastructuur.
  • Automatiseer de end-to-end levenscyclus van machine learning met machine learning en Azure-pijplijnen. Gebruik pijplijnen om modellen regelmatig te testen en bij te werken. U kunt voortdurend nieuwe machine learning-modellen implementeren naast uw andere toepassingen en services.

Zie Machine Learning-bewerkingen voor meer informatie over MLOps.

Reproduceerbare machine learning-pijplijnen maken

Gebruik Azure Machine Learning-pijplijnen om alle stappen in uw modeltrainingsproces samen te voegen. Een machine learning-pijplijn kan stappen bevatten die gegevensvoorbereiding, functieextractie, afstemming van hyperparameters en modelevaluatie omvatten.

Als u de Azure Machine Learning-ontwerpfunctie gebruikt om een machine learning-pijplijn te maken, kunt u de pijplijn klonen om het ontwerp ervan te herhalen zonder dat uw oude versies verloren gaan. Als u een pijplijn op elk gewenst moment in de ontwerpfunctie wilt klonen, gaat u naar de rechterbovenhoek om ...>Kloon.

Zie Machine Learning-pijplijnen voor meer informatie over Azure Machine Learning-pijplijnen.

Herbruikbare softwareomgevingen maken

Met behulp van Azure Machine Learning-omgevingen kunt u de softwareafhankelijkheden van uw projecten bijhouden en reproduceren zodra ze 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 omgevingen gebruiken voor modeltraining en implementatie. Zie Wat zijn Azure Machine Learning-omgevingen voor meer informatie over omgevingen.

Modellen registreren, verpakken en implementeren vanaf elke locatie

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

Machine Learning-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.

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

U kunt geregistreerde modellen identificeren op naam en versie. Wanneer u een model registreert met dezelfde naam als een bestaand model, wordt het versienummer verhoogd. U kunt metagegevenstags opgeven tijdens de registratie en deze tags gebruiken wanneer u naar een model zoekt. 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.

Belangrijk

  • Wanneer u de optie FilterenTags op gebruikt op de pagina Modellen van Azure Machine Learning-studio, in plaats van te gebruikenTagName : TagValue, gebruikt TagName=TagValue u 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 over het gebruik van modellen in Azure Machine Learning.

Modellen verpakken en fouten opsporen

Voordat u een model in productie implementeert, moet het worden 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 installatiekopieën echter handmatig opgeven.

Het is handig om eerst te implementeren in uw lokale ontwikkelomgeving, zodat u problemen kunt oplossen en fouten kunt opsporen voordat u implementeert in de cloud. Met deze procedure kunt u voorkomen dat u problemen ondervindt met uw implementatie in Azure Machine Learning. Zie Online-eindpunten oplossen voor meer informatie over het oplossen van veelvoorkomende implementatieproblemen.

Modellen converteren en optimaliseren

U kunt uw model converteren naar Open Neural Network Exchange (ONNX) om de prestaties te verbeteren. Het converteren naar ONNX kan doorgaans dubbele prestaties leveren.

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

Modellen implementeren

U kunt getrainde machine learning-modellen implementeren als eindpunten in de cloud of lokaal. Implementaties gebruiken CPU en GPU voor deductie.

Wanneer u een model als eindpunt implementeert, moet u de volgende items opgeven:

  • Het model dat wordt gebruikt om gegevens te beoordelen die zijn verzonden naar de service of het apparaat.
  • Een invoerscript1. Dit script accepteert aanvragen, gebruikt de modellen om de gegevens te beoordelen en retourneert een antwoord.
  • Een omgeving2 die de pip- en conda-afhankelijkheden beschrijft 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 familietype van de virtuele machine (VM), het beschikbare geheugen en het aantal kernen. Wanneer de installatiekopieën worden gemaakt, worden onderdelen die vereist zijn voor Azure Machine Learning, zoals assets die nodig zijn om de webservice uit te voeren, ook toegevoegd.

1,2 Wanneer u een MLflow-model implementeert, hoeft u geen invoerscript op te geven, ook wel een scorescript genoemd. U hoeft ook geen omgeving voor de implementatie op te geven. Zie Richtlijnen voor het implementeren van MLflow-modellen voor meer informatie over het implementeren van MLflow-modellen.

Batchscore

Batchgewijs scoren wordt ondersteund via batch-eindpunten. Zie Batch-eindpunten voor meer informatie over batchscores.

Realtime scoren

U kunt uw modellen gebruiken met een online-eindpunt voor realtime scoren. Online-eindpunten kunnen de volgende rekendoelen gebruiken:

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

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

  • Het model of 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 die beschrijft hoe en waar het model moet worden geïmplementeerd.

Zie Online-eindpunten implementeren voor meer informatie over implementatie voor realtime scoren.

Gecontroleerde implementatie voor online-eindpunten

Wanneer u implementeert op een online-eindpunt, kunt u beheerde implementatie gebruiken om de volgende scenario's mogelijk te maken:

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

Zie Veilige implementatie van nieuwe implementaties uitvoeren voor realtime deductie voor meer informatie over implementatie met behulp van een gecontroleerde implementatie.

Analyses

Microsoft Power BI ondersteunt het gebruik van machine learning-modellen voor gegevensanalyse. Zie Azure Machine Learning-integratie in Power BI 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 machine learning-assets bij te houden met behulp van metagegevens. Voorbeeld:

  • Met Azure Machine Learning-gegevensassets kunt u gegevens bijhouden, profileren en versiegegevens.
  • Met modelinterpreteerbaarheid kunt u uw modellen uitleggen, voldoen aan naleving van regelgeving en begrijpen hoe modellen een resultaat opleveren voor een bepaalde invoer.
  • In de azure Machine Learning-taakgeschiedenis 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 aan uw model zijn gekoppeld. Bijvoorbeeld, welk experiment het model heeft getraind, waar het model wordt geïmplementeerd en of de implementaties van het model in orde zijn.
  • Dankzij integratie met Azure kunt u reageren op gebeurtenissen, zoals modelregistratie, implementatie, gegevensdrift en trainings-gebeurtenissen (taak) in de levenscyclus van machine learning.

Tip

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

Gebeurtenissen in de levenscyclus van Machine Learning melden, automatiseren en waarschuwen

Azure Machine Learning publiceert belangrijke gebeurtenissen naar Azure Event Grid, die kunnen worden gebruikt om gebeurtenissen in de levenscyclus van machine learning op de hoogte te stellen en te automatiseren. Zie Aangepaste CI/CD- en gebeurtenisgestuurde werkstromen voor meer informatie over het instellen van gebeurtenisgestuurde processen op basis van Azure Machine Learning-gebeurtenissen.

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 in de Git-opslagplaats van een project controleert, start Azure Pipelines een trainingstaak. De resultaten van de taak kunnen vervolgens worden geïnspecteerd 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 Machine Learning-extensie kunt u eenvoudiger met Azure Pipelines werken. De extensie biedt de volgende verbeteringen in Azure Pipelines:

  • Hiermee schakelt u werkruimteselectie in wanneer u een serviceverbinding definieert.
  • Hiermee kunnen releasepijplijnen worden geactiveerd door getrainde modellen die zijn gemaakt in een trainingspijplijn.

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