Utlös program, processer eller CI/CD-arbetsflöden baserat på Azure Machine Learning-händelser
Artikel
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 Machine Learning-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 Machine Learning hanterar hela livscykeln för maskininlärningsprocessen, inklusive modellträning, modelldistribution och övervakning. Du kan använda Event Grid för att reagera på Azure Machine Learning-händelser, 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 Machine Learning 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 deltagare eller ägare åtkomst till den Azure Machine Learning-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 Machine Learning 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
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 Machine Learning Event Grid-schemat.
Prenumerationer för Azure Machine Learning-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 Portal, 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 Machine Learning-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.
Avancerad filtrering: Azure Event Grid stöder även avancerad filtrering baserat på publicerat händelseschema. Information om Azure Machine Learning-händelseschema finns i Azure Event Grid-händelseschemat för Azure Machine Learning. För Microsoft.MachineLearningServices.ModelRegistered händelse, för att filtrera modellens taggvärde:
Program som hanterar Machine Learning-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 Machine Learning-å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 Machine Learning 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 Machine Learning-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
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:
Azure 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 Machine Learning:
Azure CLI
# Select the Azure subscription that contains the workspaceaz 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 Portal går du till din Azure Machine Learning-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 Machine Learning Service 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 Machine Learning SDK v1 eller Azure CLI-tillägget v1 för Azure Machine Learning. Mer information finns i Vad är Azure Machine Learning 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.
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 Machine Learning-pipeline. Mer information om det här scenariot finns i hur du konfigurerar ett Machine Learning-steg i Azure Data Factory.
Börja med att skapa logikappen. Gå till Azure Portal, 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 Machine Learning-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 arbetsytan i Azure Portal 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 Machine Learning-studio.
Nästa steg
Lär dig mer om Event Grid och ge Azure Machine Learning-händelser ett försök:
Hantera datainmatning och förberedelse, modellträning och distribution samt övervakning av maskininlärningslösningar med Python, Azure Machine Learning och MLflow.