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

In dit artikel leert u hoe u gebeurtenisgestuurde toepassingen, processen of CI/CD-werkstromen kunt instellen op basis van Azure Machine Learning-gebeurtenissen, zoals e-mails over foutmeldingen of ML-pijplijn-runs, wanneer bepaalde voorwaarden worden gedetecteerd door Azure Event Grid.

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

Wanneer gebruikt u Event Grid voor gebeurtenisgestuurde acties:

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

Vereisten

Als u Event Grid wilt gebruiken, hebt u inzender- of eigenaarstoegang nodig tot Azure Machine Learning werkruimte voor wie u gebeurtenissen maakt.

Het gebeurtenismodel & 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. Het volgende diagram toont hoe Event Grid bronnen en handlers verbindt, maar is geen uitgebreide lijst met ondersteunde integraties.

Azure Event Grid functioneel 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 machine learning levenscyclus:

Gebeurtenistype Beschrijving
Microsoft.MachineLearningServices.RunCompleted Wordt verhoogd wanneer een machine learning experiment is voltooid
Microsoft.MachineLearningServices.ModelRegistered Wordt gemeld wanneer een machine learning model wordt geregistreerd in de werkruimte
Microsoft.MachineLearningServices.ModelDeployed Wordt verhoogd wanneer een implementatie van de deference-service met een of meer modellen is voltooid
Microsoft.MachineLearningServices.DatasetDriftDetected Wordt aangemaakt wanneer een taak voor gegevensdriftdetectie voor twee gegevenssets is voltooid
Microsoft.MachineLearningServices.RunStatusChanged Wordt verhoogd wanneer de status van een run is gewijzigd, momenteel alleen verhoogd wanneer de status van een run 'mislukt' is

Filteren & abonneren op gebeurtenissen

Deze gebeurtenissen worden gepubliceerd via Azure Event Grid. Met Azure Portal, PowerShell of Azure CLI kunnen klanten zich eenvoudig abonneren op gebeurtenissen door een of meer gebeurtenistypen en filtervoorwaarden op te geven.

Bij het instellen van uw gebeurtenissen kunt u filters toepassen om alleen te activeren op specifieke gebeurtenisgegevens. In het onderstaande voorbeeld kunt u voor gewijzigde gebeurtenissen van de runstatus filteren op run types. De gebeurtenis wordt alleen triggers wanneer aan de criteria wordt voldaan. Raadpleeg het event grid Azure Machine Learning schema voor meer informatie over gebeurtenisgegevens die u kunt filteren.

Abonnementen voor Azure Machine Learning worden beveiligd door op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC). Alleen inzenders of eigenaren van een werkruimte kunnen 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 de Azure Portal selecteer een nieuw abonnement of een bestaand abonnement.

  2. Selecteer het tabblad Filters en schuif omlaag naar Geavanceerde filters. Geef voor De sleutel en waarde de eigenschapstypen op die u wilt filteren. Hier ziet u dat de gebeurtenis alleen wordt getypt wanneer het runtype een pijplijn-run of pijplijnstap is.

    gebeurtenissen filteren

  • Filteren op gebeurtenistype: Een gebeurtenisabonnement kan een of meer typen Azure Machine Learning 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 hebben een andere onderwerpindeling.

    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.DatasetDriftDetected 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 ook geavanceerde filters op basis van het gepubliceerde gebeurtenisschema. Azure Machine Learning gebeurtenisschemadetails vindt u in Azure Event Grid gebeurtenisschema voor Azure Machine Learning. Enkele voorbeelden van geavanceerde filters die u kunt uitvoeren, zijn:

    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 Event Grid.

Gebeurtenissen Machine Learning verbruiken

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

  • Omdat meerdere abonnementen kunnen worden geconfigureerd om gebeurtenissen naar dezelfde gebeurtenis-handler te sturen, is het belangrijk om niet ervan uit te gaan dat gebeurtenissen afkomstig zijn van 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 het type is dat u wilt verwerken en ga er niet van uit dat alle gebeurtenissen die u ontvangt de typen zijn die u verwacht.
  • Als berichten niet in de volgorde en na enige vertraging kunnen binnenkomen, gebruikt u de etag-velden om te begrijpen of uw informatie over objecten nog steeds up-to-date is. Gebruik ook de sequencervelden om de volgorde van gebeurtenissen op een bepaald object te begrijpen.
  • Negeer velden die u niet begrijpt. Deze praktijk helpt u bestand te houden tegen nieuwe functies die in de toekomst kunnen worden toegevoegd.
  • Mislukt of geannuleerd 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 inzicht te krijgen in de gedetailleerde oorzaken van fouten.

Azure Event Grid kunnen klanten ontkoppelde berichten-handlers bouwen, die kunnen worden geactiveerd door Azure Machine Learning gebeurtenissen. Enkele belangrijke voorbeelden van berichten-handlers zijn:

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

Instellen in Azure Portal

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

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

    select-events-in-workspace.png

  3. Selecteer het gebeurtenistype dat u wilt gebruiken. In de volgende schermopname zijn bijvoorbeeld Geregistreerd model, Model geĆÆmplementeerd, Voltooid uitvoeren en Gegevenssetdrift gedetecteerd:

    add-event-type

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

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

Nadat u uw selectie hebt bevestigd, klikt u op Maken. Na de configuratie worden deze gebeurtenissen naar uw eindpunt ge pusht.

Instellen met de CLI

U kunt de nieuwste Versie van Azure CLIinstalleren of de Azure Cloud Shell die is opgegeven als onderdeel van uw Azure-abonnement.

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

az add extension --name eventgrid

In het volgende voorbeeld wordt gedemonstreerd 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 te configureren voor al uw gebeurtenissen. Pas aan met voorwaarden en geef ontvangers op om samenwerking en bewustzijn mogelijk te maken tussen teams die samenwerken.

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

    Schermopname toont een Machine Learning werkruimte Gebeurtenissen met Logic Apps.

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

    Schermopname van het dialoogvenster Wanneer een resourcegebeurtenis plaatsvindt, machine learning geselecteerd als een resourcetype.

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

    Schermopname van het dialoogvenster Wanneer een resourcegebeurtenis plaatsvindt, met een gebeurtenistype geselecteerd.

  4. U kunt de filtermethode in de bovenstaande sectie gebruiken of filters toevoegen om de logische app alleen te activeren voor een subset van gebeurtenistypen. In de volgende schermopname wordt een voorvoegselfilter /datadriftID/runs/ gebruikt.

    filtergebeurtenissen

  5. Voeg vervolgens een stap toe om deze gebeurtenis te gebruiken en te zoeken 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 ingevoerd in de zoekregel.

  6. Selecteer Een e-mail verzenden en vul de parameters in. In het onderwerp kunt u het gebeurtenistype en onderwerp opnemen om gebeurtenissen te filteren. U kunt ook een koppeling naar de werkruimtepagina opnemen voor de runs in de hoofd bericht.

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

  7. Als u deze actie wilt opslaan, selecteert u Opslaan als in de linkerhoek van de pagina. Bevestig in de rechterbalk die wordt weergegeven dat deze actie is gemaakt.

    Schermopname van de knoppen Opslaan als en Maken in Logic Apps Designer.

Voorbeeld: Gegevensdrifttriggers opnieuw trainen

Modellen gaan in de loop van de tijd verouderd en blijven niet nuttig in de context waarin ze worden 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. Het voorbeeld activeert een Azure Data Factory pijplijn wanneer gegevensdrift plaatsvindt tussen de trainings- en gegevenssets van een model.

Voordat u begint, moet u de volgende acties uitvoeren:

In dit voorbeeld wordt een eenvoudige Data Factory gebruikt om bestanden te kopiƫren naar een blob-archief en een gepubliceerde Machine Learning uitvoeren. Zie Voor meer informatie over dit scenario een Machine Learning instellen in Azure Data Factory

Schermopname van de trainingspijplijn in Factory-resources met Copy data1 en M L Execute Pipeline1.

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

    search-logic-app

  2. Vul de gevraagde gegevens in. Om de ervaring te vereenvoudigen, gebruikt u hetzelfde abonnement en dezelfde resourcegroep als uw Azure Data Factory Pipeline en Azure Machine Learning werkruimte.

    Schermopname van het deelvenster Maken van logische app.

  3. Nadat u de logische app hebt gemaakt, selecteert u Wanneer een Event Grid resourcegebeurtenis plaatsvindt.

    Schermopname toont de Logic Apps Designer met Start with a common trigger options,inclusief Wanneer een Event Grid resourcegebeurtenis optreedt.

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

    Schermopname toont wanneer een resourcegebeurtenis plaatsvindt met een gebeurtenistype-item geselecteerd.

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

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

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

    Schermopname van het deelvenster Een pijplijnuitleiding 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 klikt u op Gebeurtenissen.

    Schermopname van gebeurtenissen met de logische app gemarkeerd.

Nu wordt data factory pijplijn geactiveerd wanneer er drift optreedt. Bekijk details over uw gegevensdrift-run en machine learning pijplijn in de nieuwe werkruimteportal.

Schermopname van pijplijn-eindpunten.

Voorbeeld: Een model implementeren op basis van tags

Een Azure Machine Learning-modelobject bevat parameters waar u implementaties op kunt draaien, zoals modelnaam, versie, tag en eigenschap. De modelregistratiegebeurtenis kan een eindpunt activeren en u kunt een Azure-functie gebruiken om een model te implementeren op basis van de waarde van deze parameters.

Zie de opslagplaats voor een voorbeeld https://github.com/Azure-Samples/MachineLearningSamples-NoCodeDeploymentTriggeredByEventGrid en volg de stappen in het leesmij-bestand.

Volgende stappen

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