Utlös program, processer eller CI/CD-arbetsflöden baserat på Azure Machine Learning-händelser
I den här artikeln får du lära dig hur du konfigurerar händelsedrivna program, processer eller CI/CD-arbetsflöden baserat på Azure Mašinsko učenje händelser. Till exempel körs e-postmeddelanden om misslyckade meddelanden eller ML-pipelinekörningar när vissa villkor identifieras med Hjälp av Azure Event Grid.
Azure Mašinsko učenje hanterar hela livscykeln för maskininlärningsprocessen, inklusive modellträning, modelldistribution och övervakning. Du kan använda Event Grid för att reagera på Händelser i Azure Mašinsko učenje, till exempel slutförande av träningskörningar, registrering och distribution av modeller och identifiering av dataavvikelser med hjälp av moderna serverlösa arkitekturer. Du kan sedan prenumerera på och använda händelser som ändrad körningsstatus, slutförande av körning, modellregistrering, modelldistribution och identifiering av dataavvikelser på en arbetsyta.
När du ska använda Event Grid för händelsedrivna åtgärder:
- Skicka e-postmeddelanden vid körningsfel och slutföra körning
- Använda en Azure-funktion när en modell har registrerats
- Strömma händelser från Azure Mašinsko učenje till olika slutpunkter
- Utlösa en ML-pipeline när drift identifieras
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Förhandsversionen tillhandahålls utan ett serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Förutsättningar
Om du vill använda Event Grid behöver du deltagar- eller ägaråtkomst till den Azure-Mašinsko učenje arbetsyta som du skapar händelser för.
Händelsemodellen och typerna
Azure Event Grid läser händelser från källor, till exempel Azure Mašinsko učenje och andra Azure-tjänster. Dessa händelser skickas sedan till händelsehanterare som Azure Event Hubs, Azure Functions, Logic Apps och andra. Följande diagram visar hur Event Grid ansluter källor och hanterare, men inte är en omfattande lista över integreringar som stöds.
Mer information om händelsekällor och händelsehanterare finns i Vad är Event Grid?
Händelsetyper för Azure Machine Learning
Azure Machine Learning aktiverar händelser vid olika punkter i livscykeln för maskininlärning:
Händelsetyp | Beskrivning |
---|---|
Microsoft.MachineLearningServices.RunCompleted |
Aktiveras när en maskininlärningsexperimentkörning har slutförts |
Microsoft.MachineLearningServices.ModelRegistered (förhandsgranskning) |
Aktiveras när en maskininlärningsmodell registreras på arbetsytan |
Microsoft.MachineLearningServices.ModelDeployed (förhandsgranskning) |
Aktiveras när distributionen av en inferenstjänst med en eller flera modeller har slutförts |
Microsoft.MachineLearningServices.DatasetDriftDetected (förhandsgranskning) |
Aktiveras när ett jobb för identifiering av dataavvikelser för två datauppsättningar har slutförts |
Microsoft.MachineLearningServices.RunStatusChanged |
Utlöses när en körningsstatus ändras |
Filtrera och prenumerera på händelser
Dessa händelser publiceras via Azure Event Grid. Från Azure-portalen, PowerShell eller Azure CLI kan du enkelt prenumerera på händelser genom att ange en eller flera händelsetyper och filtreringsvillkor.
När du konfigurerar dina händelser kan du använda filter för att endast utlösa specifika händelsedata. I följande exempel kan du filtrera efter körningstyper för ändrade körningsstatushändelser. Händelsen utlöses bara när kriterierna uppfylls. Mer information om de händelsedata som du kan filtrera på finns i Azure Mašinsko učenje Event Grid-schemat.
Prenumerationer för Azure Mašinsko učenje-händelser skyddas av rollbaserad åtkomstkontroll i Azure (Azure RBAC). Endast deltagare eller ägare av en arbetsyta kan skapa, uppdatera och ta bort händelseprenumerationer. Filter kan tillämpas på händelseprenumerationer antingen när händelseprenumerationen skapas eller vid ett senare tillfälle.
Gå till Azure-portalen och välj en ny prenumeration eller en befintlig.
Välj posten Händelser i det vänstra navigeringsområdet och välj sedan + Händelseprenumeration.
Välj fliken Filter och rulla ned till Avancerade filter. Ange de egenskapstyper som du vill filtrera efter för nyckel och värde. Här kan du se händelseutlösare när körningstypen är en pipelinekörning eller pipelinestegkörning.
Filtrera efter händelsetyp: En händelseprenumeration kan ange en eller flera Azure-Mašinsko učenje händelsetyper.
Filtrera efter händelseämne: Azure Event Grid stöder ämnesfilter baserat på börjar med och slutar med matchningar, så att händelser med ett matchande ämne levereras till prenumeranten. Olika maskininlärningshändelser har olika ämnesformat.
Händelsetyp Ämnesformat Exempelämne Microsoft.MachineLearningServices.RunCompleted
experiments/{ExperimentId}/runs/{RunId}
experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
Microsoft.MachineLearningServices.ModelRegistered
(förhandsgranskning)models/{modelName}:{modelVersion}
models/sklearn_regression_model:3
Microsoft.MachineLearningServices.ModelDeployed
(förhandsgranskning)endpoints/{serviceId}
endpoints/my_sklearn_aks
Microsoft.MachineLearningServices.DatasetDriftDetected
(förhandsgranskning)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
Avancerad filtrering: Azure Event Grid stöder även avancerad filtrering baserat på publicerat händelseschema. Information om Azure Mašinsko učenje händelseschema finns i Azure Event Grid-händelseschemat för Azure Mašinsko učenje. För
Microsoft.MachineLearningServices.ModelRegistered
händelse, för att filtrera modellens taggvärde:--advanced-filter data.ModelTags.key1 StringIn ('value1')
Mer information om hur du använder filter finns i Filtrera händelser för Event Grid.
Använda Mašinsko učenje händelser
Program som hanterar Mašinsko učenje händelser bör följa några rekommenderade metoder:
- Eftersom flera prenumerationer kan konfigureras för att dirigera händelser till samma händelsehanterare är det viktigt att inte anta att händelser kommer från en viss källa, utan att kontrollera meddelandets ämne för att säkerställa att det kommer från den maskininlärningsarbetsyta som du förväntar dig.
- På samma sätt kontrollerar du att eventType är en som du är beredd att bearbeta och anta inte att alla händelser som du får är de typer du förväntar dig.
- Eftersom meddelanden kan komma i fel ordning och efter en viss fördröjning använder du etag-fälten för att förstå om din information om objekt fortfarande är uppdaterad. Använd också sekvenseringsfälten för att förstå ordningen på händelser på ett visst objekt.
- Ignorera fält som du inte förstår. Den här metoden hjälper dig att hålla dig motståndskraftig mot nya funktioner som kan läggas till i framtiden.
- Misslyckade eller avbrutna Azure-Mašinsko učenje-åtgärder utlöser inte en händelse. Om en modelldistribution till exempel misslyckas utlöses inte Microsoft.MachineLearningServices.ModelDeployed. Överväg sådant felläge när du utformar dina program. Du kan alltid använda Azure Mašinsko učenje SDK, CLI eller portalen för att kontrollera statusen för en åtgärd och förstå de detaljerade felorsakerna.
Med Azure Event Grid kan kunder skapa frikopplade meddelandehanterare, som kan utlösas av Azure Mašinsko učenje händelser. Några exempel på meddelandehanterare är:
- Azure Functions
- Azure Logic Program-program
- Azure Event Hubs
- Azure Data Factory-pipeline
- Generiska webhooks, som kan finnas på Azure-plattformen eller någon annanstans
Konfigurera i Azure-portalen
Öppna Azure-portalen och gå till din Azure Mašinsko učenje-arbetsyta.
I det vänstra fältet väljer du Händelser och sedan Händelseprenumerationer.
Välj den händelsetyp som ska användas.
Välj den slutpunkt som händelsen ska publiceras till. I följande skärmbild är Händelsehubb den valda slutpunkten:
När du har bekräftat ditt val väljer du Skapa. Efter konfigurationen skickas dessa händelser till slutpunkten.
Konfigurera med CLI
Du kan antingen installera den senaste Azure CLI eller använda Azure Cloud Shell som tillhandahålls som en del av din Azure-prenumeration.
Om du vill installera Event Grid-tillägget använder du följande kommando från CLI:
az extension add --name eventgrid
I följande exempel visas hur du väljer en Azure-prenumeration och skapar en ny händelseprenumeration för Azure Mašinsko učenje:
# 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"
Exempel
Exempel: Skicka e-postaviseringar
Använd Azure Logic Apps för att konfigurera e-postmeddelanden för alla dina händelser. Anpassa med villkor och ange mottagare för att möjliggöra samarbete och medvetenhet mellan team som arbetar tillsammans.
I Azure-portalen går du till din Azure-Mašinsko učenje-arbetsyta och väljer fliken händelser i det vänstra fältet. Härifrån väljer du Logikappar.
Logga in på logikappens användargränssnitt och välj Mašinsko učenje tjänst som ämnestyp.
Välj vilken händelse som ska meddelas för. Till exempel följande skärmbild RunCompleted.
Lägg sedan till ett steg för att använda den här händelsen och söka efter e-post. Det finns flera olika e-postkonton som du kan använda för att ta emot händelser. Du kan också konfigurera villkor för när en e-postavisering ska skickas.
Välj Skicka ett e-postmeddelande och fyll i parametrarna. I ämnet kan du inkludera händelsetypen och ämnet för att filtrera händelser. Du kan också inkludera en länk till arbetsytans sida för körningar i meddelandetexten.
Spara den här åtgärden genom att välja Spara som i det vänstra hörnet på sidan.
Exempel: Omträning av dataavvikelseutlösare
Viktigt!
Det här exemplet förlitar sig på en funktion (dataavvikelse) som endast är tillgänglig när du använder Azure Mašinsko učenje SDK v1 eller Azure CLI-tillägget v1 för Azure Mašinsko učenje. Mer information finns i Vad är Azure Mašinsko učenje CLI och SDK v2.
Modeller blir inaktuella över tid och är inte användbara i den kontext som körs i. Ett sätt att se om det är dags att träna om modellen är att identifiera dataavvikelser.
Det här exemplet visar hur du använder Event Grid med en Azure Logic App för att utlösa omträning. Exemplet utlöser en Azure Data Factory-pipeline när dataavvikelse inträffar mellan en modells träning och servering av datamängder.
Innan du börjar utför du följande åtgärder:
- Konfigurera en datamängdsövervakare för att identifiera dataavvikelse (SDK/CLI v1) på en arbetsyta
- Skapa en publicerad Azure Data Factory-pipeline.
I det här exemplet används en enkel Data Factory-pipeline för att kopiera filer till ett bloblager och köra en publicerad Mašinsko učenje pipeline. Mer information om det här scenariot finns i hur du konfigurerar ett Mašinsko učenje steg i Azure Data Factory.
Börja med att skapa logikappen. Gå till Azure-portalen, sök efter Logic Apps och välj skapa.
Fyll i den begärda informationen. För att förenkla upplevelsen använder du samma prenumeration och resursgrupp som din Azure Data Factory Pipeline och Azure Mašinsko učenje-arbetsyta.
När du har skapat logikappen väljer du När en Event Grid-resurshändelse inträffar.
Logga in och fyll i informationen för händelsen. Ange resursnamnet till arbetsytans namn. Ange Händelsetyp till DatasetDriftDetected.
Lägg till ett nytt steg och sök efter Azure Data Factory. Välj Skapa en pipelinekörning.
Logga in och ange den publicerade Azure Data Factory-pipelinen som ska köras.
Spara och skapa logikappen med hjälp av knappen Spara längst upp till vänster på sidan. Om du vill visa din app går du till din arbetsyta i Azure-portalen och väljer Händelser.
Nu utlöses datafabrikspipelinen när driften inträffar. Visa information om din dataavvikelsekörning och maskininlärningspipeline i Azure Mašinsko učenje studio.
Nästa steg
Lär dig mer om Event Grid och ge Azure Mašinsko učenje händelser ett försök: