Toepassingen, processen of CI/CD-werkstromen activeren op basis van Azure Machine Learning-gebeurtenissen

In dit artikel leert u hoe u gebeurtenisgestuurde toepassingen, processen of CI/CD-werkstromen instelt op basis van Azure Machine Learning-gebeurtenissen. Bijvoorbeeld: e-mailberichten over mislukte meldingen of ML-pijplijnuitvoeringen wanneer bepaalde voorwaarden worden gedetecteerd met behulp van Azure Event Grid.

Azure Machine Learning beheert de volledige levenscyclus van het machine learning-proces, waaronder modeltraining, modelimplementatie en bewaking. U kunt Event Grid gebruiken om te reageren op Azure Machine Learning-gebeurtenissen, zoals het voltooien van trainingsuitvoeringen, de registratie en implementatie van modellen en de detectie van gegevensdrift, met behulp van moderne serverloze architecturen. U kunt vervolgens gebeurtenissen abonneren en gebruiken, zoals de uitvoeringsstatus gewijzigd, voltooiing van uitvoering, modelregistratie, modelimplementatie en detectie van gegevensdrift binnen een werkruimte.

Wanneer u Event Grid gebruikt voor gebeurtenisgestuurde acties:

  • E-mailberichten verzenden bij mislukte uitvoering en voltooiing uitvoeren
  • Een Azure-functie gebruiken nadat een model is geregistreerd
  • Streaming-gebeurtenissen van Azure Machine Learning naar verschillende eindpunten
  • Een ML-pijplijn activeren wanneer drift wordt gedetecteerd

Belangrijk

Items die in dit artikel zijn gemarkeerd (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.

Vereisten

Als u Event Grid wilt gebruiken, hebt u inzender- of eigenaartoegang nodig tot de Azure Machine Learning-werkruimte waarvoor u gebeurtenissen maakt.

Het gebeurtenismodel en typen

Azure Event Grid leest gebeurtenissen uit bronnen, zoals Azure Machine Learning en andere Azure-services. Deze gebeurtenissen worden vervolgens verzonden naar gebeurtenis-handlers zoals Azure Event Hubs, Azure Functions, Logic Apps en andere. In het volgende diagram ziet u hoe Event Grid bronnen en handlers verbindt, maar geen uitgebreide lijst met ondersteunde integraties is.

Functioneel azure Event Grid-model

Zie Wat is Event Grid voor meer informatie over gebeurtenisbronnen en gebeurtenis-handlers?

Gebeurtenistypen voor Azure Machine Learning

Azure Machine Learning biedt gebeurtenissen in de verschillende punten van de machine learning-levenscyclus:

Gebeurtenistype Beschrijving
Microsoft.MachineLearningServices.RunCompleted Wordt aangemaakt wanneer de uitvoering van een machine learning-experiment is voltooid
Microsoft.MachineLearningServices.ModelRegistered (preview) Wordt aangemaakt wanneer een machine learning-model wordt geregistreerd in de werkruimte
Microsoft.MachineLearningServices.ModelDeployed (preview) Wordt aangemaakt wanneer een implementatie van de deductieservice met een of meer modellen is voltooid
Microsoft.MachineLearningServices.DatasetDriftDetected (preview) Wordt aangemaakt wanneer een detectietaak voor gegevensdrift voor twee gegevenssets is voltooid
Microsoft.MachineLearningServices.RunStatusChanged Gegenereerd wanneer de uitvoeringsstatus wordt gewijzigd

Filteren en abonneren op gebeurtenissen

Deze gebeurtenissen worden gepubliceerd via Azure Event Grid. Vanuit Azure Portal, PowerShell of Azure CLI kunt u zich eenvoudig abonneren op gebeurtenissen door een of meer gebeurtenistypen op te geven en voorwaarden te filteren.

Bij het instellen van uw gebeurtenissen kunt u filters toepassen op alleen triggers voor specifieke gebeurtenisgegevens. In het volgende voorbeeld kunt u voor gewijzigde gebeurtenissen van de uitvoeringsstatus filteren op uitvoeringstypen. De gebeurtenis wordt alleen geactiveerd wanneer aan de criteria wordt voldaan. Zie het Azure Machine Learning Event Grid-schema voor meer informatie over de gebeurtenisgegevens waarop u kunt filteren.

Abonnementen voor Azure Machine Learning-gebeurtenissen worden beveiligd door op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC). Alleen inzender of eigenaar van een werkruimte kan gebeurtenisabonnementen maken, bijwerken en verwijderen. Filters kunnen worden toegepast op gebeurtenisabonnementen tijdens het maken van het gebeurtenisabonnement of op een later tijdstip.

  1. Ga naar Azure Portal, selecteer een nieuw abonnement of een bestaand abonnement.

  2. Selecteer de vermelding Gebeurtenissen in het linkernavigatiegebied en selecteer vervolgens + Gebeurtenisabonnement.

  3. Selecteer het tabblad Filters en schuif omlaag naar Geavanceerde filters. Geef voor de sleutel en waarde de eigenschapstypen op waarop u wilt filteren. Hier ziet u de gebeurtenistriggers wanneer het uitvoeringstype een pijplijnuitvoering of pijplijnstap is.

    gebeurtenissen filteren

  • Filteren op gebeurtenistype: Een gebeurtenisabonnement kan een of meer Azure Machine Learning-gebeurtenistypen opgeven.

  • Filteren op gebeurtenisonderwerp: Azure Event Grid ondersteunt onderwerpfilters op basis van begint met en eindigt met overeenkomsten, zodat gebeurtenissen met een overeenkomend onderwerp aan de abonnee worden geleverd. Verschillende machine learning-gebeurtenissen hebben een andere indeling voor onderwerpen.

    Gebeurtenistype Onderwerpindeling Voorbeeldonderwerp
    Microsoft.MachineLearningServices.RunCompleted experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
    Microsoft.MachineLearningServices.ModelRegistered (preview) models/{modelName}:{modelVersion} models/sklearn_regression_model:3
    Microsoft.MachineLearningServices.ModelDeployed (preview) endpoints/{serviceId} endpoints/my_sklearn_aks
    Microsoft.MachineLearningServices.DatasetDriftDetected (preview) datadrift/{data.DataDriftId}/run/{data.RunId} datadrift/4e694bf5-712e-4e40-b06a-d2a2755212d4/run/my_driftrun1_1550564444_fbbcdc0f
    Microsoft.MachineLearningServices.RunStatusChanged experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
  • Geavanceerd filteren: Azure Event Grid biedt ook ondersteuning voor geavanceerd filteren op basis van het gepubliceerde gebeurtenisschema. Azure Machine Learning-gebeurtenisschemagegevens vindt u in het Azure Event Grid-gebeurtenisschema voor Azure Machine Learning. Voor Microsoft.MachineLearningServices.ModelRegistered gebeurtenis: om de tagwaarde van het model te filteren:

    --advanced-filter data.ModelTags.key1 StringIn ('value1')
    

    Zie Gebeurtenissen filteren voor Event Grid voor meer informatie over het toepassen van filters.

Machine Learning-gebeurtenissen gebruiken

Toepassingen die Machine Learning-gebeurtenissen verwerken, moeten een aantal aanbevolen procedures volgen:

  • Aangezien meerdere abonnementen kunnen worden geconfigureerd om gebeurtenissen te routeren naar dezelfde gebeurtenis-handler, is het belangrijk om niet uit te gaan van gebeurtenissen uit een bepaalde bron, maar om het onderwerp van het bericht te controleren om ervoor te zorgen dat het afkomstig is van de machine learning-werkruimte die u verwacht.
  • Controleer op dezelfde manier of het eventType een is dat u wilt verwerken en ga er niet van uit dat alle gebeurtenissen die u ontvangt, de typen zijn die u verwacht.
  • Omdat berichten buiten orde kunnen komen en na enige vertraging, gebruikt u de etag-velden om te begrijpen of uw informatie over objecten nog steeds up-to-date is. Gebruik ook de sequencer-velden om inzicht te krijgen in de volgorde van gebeurtenissen op een bepaald object.
  • Negeer velden die u niet begrijpt. Met deze procedure kunt u bestand blijven tegen nieuwe functies die in de toekomst kunnen worden toegevoegd.
  • Mislukte of geannuleerde Azure Machine Learning-bewerkingen activeren geen gebeurtenis. Als een modelimplementatie bijvoorbeeld mislukt, wordt Microsoft.MachineLearningServices.ModelDeployed niet geactiveerd. Houd rekening met een dergelijke foutmodus bij het ontwerpen van uw toepassingen. U kunt altijd Azure Machine Learning SDK, CLI of portal gebruiken om de status van een bewerking te controleren en de gedetailleerde foutredenen te begrijpen.

Met Azure Event Grid kunnen klanten losgekoppelde berichthandlers bouwen, die kunnen worden geactiveerd door Azure Machine Learning-gebeurtenissen. Enkele belangrijke voorbeelden van berichthandlers zijn:

  • Azure Functions
  • Azure Logic-apps
  • Azure Event Hubs
  • Azure Data Factory-pijplijn
  • Algemene webhooks, die mogelijk worden gehost op het Azure-platform of elders

Instellen in Azure Portal

  1. Open Azure Portal en ga naar uw Azure Machine Learning-werkruimte.

  2. Selecteer gebeurtenissen in de linkerbalk en selecteer vervolgens Gebeurtenisabonnementen.

    Schermopname van de selectie Gebeurtenisabonnement.

  3. Selecteer het gebeurtenistype dat u wilt gebruiken.

    Schermopname van het formulier Gebeurtenisabonnement maken.

  4. Selecteer het eindpunt om de gebeurtenis naar te publiceren. In de volgende schermopname is Event Hub het geselecteerde eindpunt:

    Schermopname van het deelvenster Gebeurtenisabonnement maken met Event Hub selecteren geopend.

Zodra u uw selectie hebt bevestigd, selecteert u Maken. Na de configuratie worden deze gebeurtenissen naar uw eindpunt gepusht.

Instellen met de CLI

U kunt de nieuwste Azure CLI installeren of de Azure Cloud Shell gebruiken die wordt geleverd als onderdeel van uw Azure-abonnement.

Als u de Event Grid-extensie wilt installeren, gebruikt u de volgende opdracht vanuit de CLI:

az extension add --name eventgrid

In het volgende voorbeeld ziet u hoe u een Azure-abonnement selecteert en een nieuw gebeurtenisabonnement maakt voor Azure Machine Learning:

# Select the Azure subscription that contains the workspace
az account set --subscription "<name or ID of the subscription>"

# Subscribe to the machine learning workspace. This example uses EventHub as a destination. 
az eventgrid event-subscription create --name {eventGridFilterName} \
  --source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName} \
  --endpoint-type eventhub \
  --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.EventHub/namespaces/n1/eventhubs/EH1 \
  --included-event-types Microsoft.MachineLearningServices.ModelRegistered \
  --subject-begins-with "models/mymodelname"

Voorbeelden

Voorbeeld: e-mailwaarschuwingen verzenden

Gebruik Azure Logic Apps om e-mailberichten voor al uw gebeurtenissen te configureren. Aanpassen met voorwaarden en geadresseerden opgeven om samenwerking en bewustzijn tussen teams mogelijk te maken.

  1. Ga in Azure Portal naar uw Azure Machine Learning-werkruimte en selecteer het tabblad Gebeurtenissen in de linkerbalk. Selecteer hier Logische apps.

    Schermopname van de Logic Apps-selectie.

  2. Meld u aan bij de gebruikersinterface van de logische app en selecteer Machine Learning Service als onderwerptype.

    Schermopname van het dialoogvenster Wanneer een resource-gebeurtenis plaatsvindt met machine learning geselecteerd als een resourcetype.

  3. Selecteer voor welke gebeurtenis u een melding wilt ontvangen. Bijvoorbeeld de volgende schermopname van RunCompleted.

    Schermopname van de Machine Learning-service als het resourcetype.

  4. Voeg vervolgens een stap toe om deze gebeurtenis te gebruiken en zoek naar e-mail. Er zijn verschillende e-mailaccounts die u kunt gebruiken om gebeurtenissen te ontvangen. U kunt ook voorwaarden configureren voor het verzenden van een e-mailwaarschuwing.

    Schermopname van het dialoogvenster Een actie kiezen met e-mail die is ingevoerd in de zoekregel.

  5. Selecteer Een e-mailbericht verzenden en vul de parameters in. In het onderwerp kunt u het gebeurtenistype en het onderwerp opnemen om gebeurtenissen te filteren. U kunt ook een koppeling naar de werkruimtepagina opnemen voor uitvoeringen in de berichttekst.

    Als u deze actie wilt opslaan, selecteert u Opslaan als in de linkerhoek van de pagina.

    Schermopname van het dialoogvenster Een e-mail verzenden met Onderwerp en Gebeurtenistype toegevoegd aan de onderwerpregel in de lijst aan de rechterkant.

Voorbeeld: Hertraining van gegevensdriftriggers

Belangrijk

Dit voorbeeld is afhankelijk van een functie (gegevensdrift) die alleen beschikbaar is bij het gebruik van azure Machine Learning SDK v1 of Azure CLI-extensie v1 voor Azure Machine Learning. Zie Wat is Azure Machine Learning CLI & SDK v2 voor meer informatie.

Modellen verlopen na verloop van tijd en blijven niet nuttig in de context waarin het wordt uitgevoerd. Een manier om te zien of het tijd is om het model opnieuw te trainen, is het detecteren van gegevensdrift.

In dit voorbeeld ziet u hoe u Event Grid gebruikt met een logische Azure-app om opnieuw trainen te activeren. In het voorbeeld wordt een Azure Data Factory-pijplijn geactiveerd wanneer gegevensdrift plaatsvindt tussen de training en het leveren van gegevenssets van een model.

Voer voordat u begint de volgende acties uit:

In dit voorbeeld wordt een eenvoudige Data Factory-pijplijn gebruikt om bestanden te kopiƫren naar een blobarchief en een gepubliceerde Machine Learning-pijplijn uit te voeren. Zie voor meer informatie over dit scenario hoe u een Machine Learning-stap instelt in Azure Data Factory.

Schermopname van de trainingspijplijn in Azure Data Factory.

  1. Begin met het maken van de logische app. Ga naar Azure Portal, zoek naar Logic Apps en selecteer Maken.

    search-logic-app

  2. Vul de gevraagde gegevens in. Gebruik hetzelfde abonnement en dezelfde resourcegroep als uw Azure Data Factory-pijplijn en Azure Machine Learning-werkruimte om de ervaring te vereenvoudigen.

    Schermopname van het deelvenster Maken van logische app.

  3. Wanneer u de logische app hebt gemaakt, selecteert u Wanneer een Event Grid-resource-gebeurtenis plaatsvindt.

    Schermopname van Logic Apps Designer met Start met een algemene triggeropties, waaronder Wanneer een Event Grid-resource-gebeurtenis plaatsvindt.

  4. Meld u aan en vul de details voor de gebeurtenis in. Stel de resourcenaam in op de naam van de werkruimte. Stel het gebeurtenistype in op DatasetDriftDetected.

    Schermopname van het item gegevensdrift van het gebeurtenistype.

  5. Voeg een nieuwe stap toe en zoek naar Azure Data Factory. Selecteer Een pijplijnuitvoering maken.

    Schermopname van het deelvenster Een actie kiezen met Een pijplijnuitvoering maken geselecteerd.

  6. Meld u aan en geef de gepubliceerde Azure Data Factory-pijplijn op die moet worden uitgevoerd.

    Schermopname van het deelvenster Een pijplijnuitvoering maken met verschillende waarden.

  7. Sla de logische app op en maak deze met behulp van de knop Opslaan linksboven op de pagina. Als u uw app wilt weergeven, gaat u naar uw werkruimte in Azure Portal en selecteert u Gebeurtenissen.

    Schermopname van gebeurtenissen met de logische app gemarkeerd.

De data factory-pijplijn wordt nu geactiveerd wanneer er drift optreedt. Bekijk details over uw gegevensdriftuitvoering en machine learning-pijplijn in Azure Machine Learning-studio.

Schermopname van pijplijneindpunten.

Volgende stappen

Meer informatie over Event Grid en Azure Machine Learning-gebeurtenissen proberen: