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. U kunt bijvoorbeeld e-mailberichten met foutmeldingen of ML-pijplijn instellen 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. Met Event Grid kunt u reageren op Azure Machine Learning gebeurtenissen, zoals het voltooien van trainingsuitvoeringen en de registratie en implementatie van modellen, met behulp van moderne serverloze architecturen. U kunt zich vervolgens abonneren op en gebeurtenissen verwerken, zoals wijziging van de uitvoeringsstatus, voltooiing van een uitvoering, modelregistratie en modelimplementatie, binnen een werkruimte.

Event Grid gebruiken voor gebeurtenisgestuurde acties:

  • E-mails verzenden bij een mislukte run en na voltooiing van een run
  • Een Azure-functie gebruiken nadat een model is geregistreerd
  • Gebeurtenissen streamen van Azure Machine Learning naar verschillende eindpunten

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.

  • Registreer de Microsoft.EventGrid-resourceprovider in uw Azure-abonnement. Deze registratie is vereist voordat u gebeurtenisabonnementen kunt maken.

    az provider register --namespace Microsoft.EventGrid --wait
    
  • Als u van plan bent om het Logic Apps-voorbeeld te gebruiken, moet u ook de Microsoft.Logic provider registreren.

    az provider register --namespace Microsoft.Logic --wait
    
  • Als u van plan bent om het CLI-voorbeeld te volgen, installeert u de eventgrid Azure CLI-extensie.

    az extension add --name eventgrid
    
  • Als u van plan bent om het CLI-voorbeeld met Event Hub als bestemming te volgen, hebt u een bestaande Event Hub-naamruimte en hub nodig. Zie Een Event Hub maken als u er een wilt maken.

Het gebeurtenismodel en -typen

Azure Event Grid leest gebeurtenissen uit bronnen, zoals Azure Machine Learning en andere Azure-services. Deze gebeurtenissen worden 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 dit is geen uitgebreide lijst met ondersteunde integraties.

Diagram waarin wordt getoond hoe Azure Event Grid bronnen zoals Azure Machine Learning verbindt met gebeurtenis-handlers zoals Azure Functions en Logic Apps.

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

Gebeurtenistypen voor Azure Machine Learning

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

Gebeurtenistype Beschrijving
Microsoft.MachineLearningServices.RunCompleted Gegenereerd wanneer de uitvoering van een machine learning-experiment is voltooid
Microsoft.MachineLearningServices.ModelRegistered Gegenereerd wanneer een nieuw model of modelversie succesvol is geregistreerd
Microsoft.MachineLearningServices.ModelDeployed Wordt geactiveerd wanneer een of meer modellen succesvol op een eindpunt zijn geïmplementeerd
Microsoft.MachineLearningServices.RunStatusChanged Geactiveerd wanneer de runstatus verandert

Filteren en abonneren op gebeurtenissen

Azure Event Grid deze gebeurtenissen publiceert. 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.

Pas bij het instellen van uw gebeurtenissen filters toe om alleen te worden geactiveerd door 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.

Azure op rollen gebaseerd toegangsbeheer (Azure RBAC) beveiligt abonnementen voor Azure Machine Learning gebeurtenissen. Alleen inzender of eigenaar van een werkruimte kan gebeurtenisabonnementen maken, bijwerken en verwijderen. U kunt filters toepassen 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 linkerdeelvenster en selecteer vervolgens + Abonnement op gebeurtenis.

  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 triggers voor gebeurtenissen wanneer het uitvoeringstype een pijplijnuitvoering of een uitvoering van een 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 models/{modelName}:{modelVersion} models/sklearn_regression_model:3
    Microsoft.MachineLearningServices.ModelDeployed endpoints/{serviceId} endpoints/my_sklearn_aks
    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:

  • Omdat meerdere abonnementen gebeurtenissen naar dezelfde gebeurtenis-handler kunnen routeren, wordt ervan uitgegaan dat gebeurtenissen niet afkomstig zijn van een bepaalde bron. Controleer het onderwerp van het bericht 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 die u kunt verwerken. Stel niet dat alle gebeurtenissen die u ontvangt de typen zijn die u verwacht.
  • Omdat berichten niet op volgorde en met enige vertraging kunnen binnenkomen, gebruikt u de etag-velden om te bepalen of uw informatie over objecten nog actueel 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. Deze procedure helpt u bestand te 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, Microsoft. MachineLearningServices.ModelDeployed wordt 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.

Azure Event Grid kunt u losgekoppelde berichthandlers bouwen, die Azure Machine Learning gebeurtenissen kunnen activeren. Enkele belangrijke voorbeelden van berichthandlers zijn:

  • Azure Functions (serverloze computerdiensten van Azure)
  • Azure Logic Apps
  • Azure Event Hubs
  • Azure Data Factory-pijplijn
  • Algemene webhooks, die u kunt hosten op het Azure-platform of elders

Instellen in Azure portal

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

  2. Selecteer in de linkerbalk Gebeurtenissen en selecteer vervolgens Abonnementen op gebeurtenissen.

    Schermopname van de selectie Gebeurtenisabonnement.

  3. Selecteer het gebeurtenistype dat u wilt gebruiken.

    Schermafbeelding van het formulier Een abonnement op gebeurtenis 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.

Wanneer u uw selectie bevestigt, selecteert u Maken. Na de configuratie worden deze gebeurtenissen naar uw eindpunt gepusht.

Als u wilt bevestigen dat het abonnement is gemaakt, selecteert uGebeurtenisabonnementen> in uw werkruimte en controleert u of uw nieuwe abonnement wordt weergegeven in de lijst.

Configureren met de CLI

U kunt de meest recente Azure CLI installeren of de Azure Cloud Shell gebruiken die is opgegeven als onderdeel van uw Azure-abonnement. Zorg ervoor dat u de eventgrid extensie installeert, zoals beschreven in Vereisten.

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"

Voer het volgende uit om te bevestigen dat het abonnement is gemaakt:

az eventgrid event-subscription show \
  --name {eventGridFilterName} \
  --source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName}

Voorbeelden

Voorbeeld: e-mailwaarschuwingen verzenden

Gebruik Azure Logic Apps om e-mailberichten voor al uw gebeurtenissen te configureren. Pas aan met voorwaarden en geef ontvangers op om samenwerking en inzicht voor teams die samenwerken mogelijk te maken.

  1. Ga in Azure Portal naar uw Azure Machine Learning-werkruimte en selecteer het tabblad Gebeurtenissen in de linkerbalk. Selecteer hier Logic 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 de gebeurtenis waarvoor u een melding wilt ontvangen. In de volgende schermopname ziet u Bijvoorbeeld RunCompleted.

    Schermopname van de Machine Learning-service als het resourcetype.

  4. Voeg vervolgens een stap toe om deze gebeurtenis te verwerken en naar e-mailberichten te zoeken. 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.

    De schermopname toont het dialoogvenster Een actie kiezen, waarbij 'e-mail' is ingevoerd in de zoekbalk.

  5. Selecteer Een e-mailbericht verzenden en vul de parameters in. Neem in het onderwerp het gebeurtenistype en het onderwerp op om gebeurtenissen te filteren. U kunt ook een koppeling naar de werkruimtepagina voor runs opnemen 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.

  6. Als u wilt controleren of de waarschuwing werkt, activeert u een in aanmerking komende gebeurtenis, bijvoorbeeld een trainingsuitvoering, en bevestigt u dat de e-mail bij de opgegeven geadresseerden aankomt.

Volgende stappen

Zie voor meer informatie over Event Grid en om gebeurtenissen van Azure Machine Learning uit te proberen: