Wyzwalanie aplikacji, procesów lub przepływów pracy ciągłej integracji/ciągłego wdrażania na podstawie zdarzeń usługi Azure Machine Learning
Z tego artykułu dowiesz się, jak skonfigurować aplikacje, procesy lub przepływy pracy ciągłej integracji/ciągłego wdrażania na podstawie zdarzeń usługi Azure Machine Learning. Na przykład wiadomości e-mail z powiadomieniem o niepowodzeniu lub uruchomienia potoku uczenia maszynowego, gdy zostaną wykryte określone warunki przy użyciu usługi Azure Event Grid.
Usługa Azure Machine Learning zarządza całym cyklem życia procesu uczenia maszynowego, w tym trenowanie modeli, wdrażanie modelu i monitorowanie. Za pomocą usługi Event Grid można reagować na zdarzenia usługi Azure Machine Learning, takie jak ukończenie przebiegów trenowania, rejestracja i wdrażanie modeli oraz wykrywanie dryfu danych przy użyciu nowoczesnych architektur bezserwerowych. Następnie można subskrybować i wykorzystywać zdarzenia, takie jak zmiana stanu przebiegu, uzupełnianie przebiegu, rejestracja modelu, wdrażanie modelu i wykrywanie dryfu danych w obszarze roboczym.
Kiedy należy używać usługi Event Grid dla akcji sterowanych zdarzeniami:
- Wysyłanie wiadomości e-mail w przypadku niepowodzenia uruchomienia i ukończenia przebiegu
- Używanie funkcji platformy Azure po zarejestrowaniu modelu
- Przesyłanie strumieniowe zdarzeń z usługi Azure Machine Learning do różnych punktów końcowych
- Wyzwalanie potoku uczenia maszynowego po wykryciu dryfu
Ważne
Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Wymagania wstępne
Aby korzystać z usługi Event Grid, musisz mieć dostęp współautora lub właściciela do obszaru roboczego usługi Azure Machine Learning, dla którego tworzysz zdarzenia.
Model i typy zdarzeń
Usługa Azure Event Grid odczytuje zdarzenia ze źródeł, takich jak usługa Azure Machine Learning i inne usługi platformy Azure. Te zdarzenia są następnie wysyłane do programów obsługi zdarzeń, takich jak Azure Event Hubs, Azure Functions, Logic Apps i inne. Na poniższym diagramie pokazano, jak usługa Event Grid łączy źródła i programy obsługi, ale nie jest kompleksową listą obsługiwanych integracji.
Aby uzyskać więcej informacji na temat źródeł zdarzeń i procedur obsługi zdarzeń, zobacz Co to jest usługa Event Grid?
Typy zdarzeń dla usługi Azure Machine Learning
Usługa Azure Machine Learning udostępnia zdarzenia w różnych punktach cyklu życia uczenia maszynowego:
Typ zdarzenia | Opis |
---|---|
Microsoft.MachineLearningServices.RunCompleted |
Wywoływane po zakończeniu przebiegu eksperymentu uczenia maszynowego |
Microsoft.MachineLearningServices.ModelRegistered (wersja zapoznawcza) |
Wywoływane po zarejestrowaniu modelu uczenia maszynowego w obszarze roboczym |
Microsoft.MachineLearningServices.ModelDeployed (wersja zapoznawcza) |
Wywoływane po zakończeniu wdrażania usługi wnioskowania z co najmniej jednym modelem |
Microsoft.MachineLearningServices.DatasetDriftDetected (wersja zapoznawcza) |
Wywoływane po zakończeniu zadania wykrywania dryfu danych dla dwóch zestawów danych |
Microsoft.MachineLearningServices.RunStatusChanged |
Zgłaszane po zmianie stanu uruchomienia |
Filtrowanie i subskrybowanie zdarzeń
Te zdarzenia są publikowane za pośrednictwem usługi Azure Event Grid. W witrynie Azure Portal, programie PowerShell lub interfejsie wiersza polecenia platformy Azure można łatwo subskrybować zdarzenia, określając co najmniej jeden typ zdarzenia i warunki filtrowania.
Podczas konfigurowania zdarzeń można zastosować filtry, aby wyzwalać tylko określone dane zdarzenia. W poniższym przykładzie w przypadku zdarzeń zmienionych stanu przebiegu można filtrować według typów przebiegów. Zdarzenie jest wyzwalane tylko po spełnieniu kryteriów. Aby uzyskać więcej informacji na temat danych zdarzeń, na których można filtrować, zobacz schemat usługi Azure Machine Learning Event Grid.
Subskrypcje zdarzeń usługi Azure Machine Learning są chronione przez kontrolę dostępu opartą na rolach platformy Azure (Azure RBAC). Tylko współautor lub właściciel obszaru roboczego mogą tworzyć, aktualizować i usuwać subskrypcje zdarzeń. Filtry można stosować do subskrypcji zdarzeń podczas tworzenia subskrypcji zdarzeń lub w późniejszym czasie.
Przejdź do witryny Azure Portal, wybierz nową subskrypcję lub istniejącą.
Wybierz pozycję Zdarzenia w obszarze nawigacji po lewej stronie, a następnie wybierz pozycję + Subskrypcja zdarzeń.
Wybierz kartę Filtry i przewiń w dół do pozycji Filtry zaawansowane. W polu Klucz i Wartość podaj typy właściwości, według których chcesz filtrować. W tym miejscu można zobaczyć wyzwalacze zdarzenia, gdy typ uruchomienia to uruchomienie potoku lub uruchomienie kroku potoku.
Filtruj według typu zdarzenia: subskrypcja zdarzeń może określać co najmniej jeden typ zdarzeń usługi Azure Machine Learning.
Filtruj według tematu zdarzenia: usługa Azure Event Grid obsługuje filtry tematów na podstawie początku i kończy się dopasowaniami , dzięki czemu zdarzenia z pasującym tematem są dostarczane do subskrybenta. Różne zdarzenia uczenia maszynowego mają inny format tematu.
Typ zdarzenia Format tematu Przykładowy temat Microsoft.MachineLearningServices.RunCompleted
experiments/{ExperimentId}/runs/{RunId}
experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
Microsoft.MachineLearningServices.ModelRegistered
(wersja zapoznawcza)models/{modelName}:{modelVersion}
models/sklearn_regression_model:3
Microsoft.MachineLearningServices.ModelDeployed
(wersja zapoznawcza)endpoints/{serviceId}
endpoints/my_sklearn_aks
Microsoft.MachineLearningServices.DatasetDriftDetected
(wersja zapoznawcza)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
Zaawansowane filtrowanie: usługa Azure Event Grid obsługuje również zaawansowane filtrowanie na podstawie opublikowanego schematu zdarzeń. Szczegóły schematu zdarzeń usługi Azure Machine Learning można znaleźć w schemacie zdarzeń usługi Azure Event Grid dla usługi Azure Machine Learning. W przypadku
Microsoft.MachineLearningServices.ModelRegistered
zdarzenia, aby filtrować wartość tagu modelu:--advanced-filter data.ModelTags.key1 StringIn ('value1')
Aby dowiedzieć się więcej o sposobie stosowania filtrów, zobacz Filtrowanie zdarzeń dla usługi Event Grid.
Korzystanie ze zdarzeń usługi Machine Learning
Aplikacje obsługujące zdarzenia usługi Machine Learning powinny postępować zgodnie z kilkoma zalecanymi rozwiązaniami:
- Ponieważ wiele subskrypcji można skonfigurować pod kątem kierowania zdarzeń do tej samej procedury obsługi zdarzeń, ważne jest, aby nie zakładać, że zdarzenia pochodzą z określonego źródła, ale aby sprawdzić temat komunikatu, aby upewnić się, że pochodzi z oczekiwanego obszaru roboczego uczenia maszynowego.
- Podobnie sprawdź, czy typ zdarzenia jest gotowy do przetworzenia i nie zakładaj, że wszystkie otrzymane zdarzenia będą typami, których oczekujesz.
- Ponieważ komunikaty mogą pochodzić z zamówienia i po pewnym opóźnieniu, użyj pól etag, aby dowiedzieć się, czy informacje o obiektach są nadal aktualne. Ponadto użyj pól programu Sequencer, aby zrozumieć kolejność zdarzeń dla dowolnego określonego obiektu.
- Ignoruj pola, których nie rozumiesz. Ta praktyka pomoże zapewnić odporność na nowe funkcje, które mogą zostać dodane w przyszłości.
- Nieudane lub anulowane operacje usługi Azure Machine Learning nie spowodują wyzwolenia zdarzenia. Jeśli na przykład wdrożenie modelu nie powiedzie się Microsoft.MachineLearningServices.ModelDeployed, nie zostanie wyzwolone. Podczas projektowania aplikacji należy wziąć pod uwagę taki tryb awarii. Zawsze możesz użyć zestawu AZURE Machine Learning SDK, interfejsu wiersza polecenia lub portalu, aby sprawdzić stan operacji i zrozumieć szczegółowe przyczyny niepowodzenia.
Usługa Azure Event Grid umożliwia klientom tworzenie oddzielonych programów obsługi komunikatów, które mogą być wyzwalane przez zdarzenia usługi Azure Machine Learning. Oto kilka godnych uwagi przykładów programów obsługi komunikatów:
- Azure Functions
- Azure Logic Apps
- Azure Event Hubs
- Potok usługi Azure Data Factory
- Ogólne elementy webhook, które mogą być hostowane na platformie Azure lub w innym miejscu
Konfigurowanie w witrynie Azure Portal
Otwórz witrynę Azure Portal i przejdź do obszaru roboczego usługi Azure Machine Learning.
Na pasku po lewej stronie wybierz pozycję Zdarzenia , a następnie wybierz pozycję Subskrypcje zdarzeń.
Wybierz typ zdarzenia do zużycia.
Wybierz punkt końcowy, aby opublikować zdarzenie. Na poniższym zrzucie ekranu centrum zdarzeń jest wybranym punktem końcowym:
Po potwierdzeniu wyboru wybierz pozycję Utwórz. Po skonfigurowaniu te zdarzenia zostaną wypchnięte do punktu końcowego.
Konfigurowanie przy użyciu interfejsu wiersza polecenia
Możesz zainstalować najnowszy interfejs wiersza polecenia platformy Azure lub użyć usługi Azure Cloud Shell udostępnionej w ramach subskrypcji platformy Azure.
Aby zainstalować rozszerzenie usługi Event Grid, użyj następującego polecenia w interfejsie wiersza polecenia:
az extension add --name eventgrid
W poniższym przykładzie pokazano, jak wybrać subskrypcję platformy Azure i utworzyć nową subskrypcję zdarzeń dla usługi 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"
Przykłady
Przykład: Wysyłanie alertów e-mail
Konfigurowanie wiadomości e-mail dla wszystkich zdarzeń przy użyciu usługi Azure Logic Apps . Dostosuj przy użyciu warunków i określ adresatów, aby umożliwić współpracę i świadomość między zespołami pracującymi razem.
W witrynie Azure Portal przejdź do obszaru roboczego usługi Azure Machine Learning i wybierz kartę Zdarzenia na pasku po lewej stronie. W tym miejscu wybierz pozycję Aplikacje logiki.
Zaloguj się do interfejsu użytkownika aplikacji logiki i wybierz pozycję Machine Learning Service jako typ tematu.
Wybierz zdarzenie, dla którego chcesz otrzymywać powiadomienia. Na przykład poniższy zrzut ekranu RunCompleted.
Następnie dodaj krok umożliwiający korzystanie z tego zdarzenia i wyszukiwanie wiadomości e-mail. Istnieje kilka różnych kont poczty, których można użyć do odbierania zdarzeń. Możesz również skonfigurować warunki wysyłania alertu e-mail.
Wybierz pozycję Wyślij wiadomość e-mail i wypełnij parametry. W temacie można uwzględnić typ zdarzenia i temat , aby ułatwić filtrowanie zdarzeń. Możesz również dołączyć link do strony obszaru roboczego dla przebiegów w treści wiadomości.
Aby zapisać tę akcję, wybierz pozycję Zapisz jako w lewym rogu strony.
Przykład: Wyzwalacze dryfu danych — ponowne trenowanie
Ważne
W tym przykładzie jest używana funkcja (dryf danych), która jest dostępna tylko w przypadku korzystania z zestawu Azure Machine Learning SDK w wersji 1 lub rozszerzenia interfejsu wiersza polecenia platformy Azure w wersji 1 dla usługi Azure Machine Learning. Aby uzyskać więcej informacji, zobacz Co to jest interfejs wiersza polecenia usługi Azure Machine Learning i zestaw SDK w wersji 2.
Modele przestaną działać w czasie i nie pozostają przydatne w kontekście, w którym działa. Jednym ze sposobów na sprawdzenie, czy nadszedł czas na ponowne trenowanie modelu, jest wykrywanie dryfu danych.
W tym przykładzie pokazano, jak używać usługi Event Grid z aplikacją logiki platformy Azure do wyzwalania ponownego trenowania. Przykład wyzwala potok usługi Azure Data Factory, gdy dane dryfują między trenowanie modelu a obsługą zestawów danych.
Przed rozpoczęciem wykonaj następujące czynności:
- Konfigurowanie monitora zestawu danych w celu wykrywania dryfu danych (zestaw SDK/interfejs wiersza polecenia w wersji 1) w obszarze roboczym
- Utwórz opublikowany potok usługi Azure Data Factory.
W tym przykładzie prosty potok usługi Data Factory służy do kopiowania plików do magazynu obiektów blob i uruchamiania opublikowanego potoku usługi Machine Learning. Aby uzyskać więcej informacji na temat tego scenariusza, zobacz konfigurowanie kroku uczenia maszynowego w usłudze Azure Data Factory.
Zacznij od utworzenia aplikacji logiki. Przejdź do witryny Azure Portal, wyszukaj pozycję Logic Apps i wybierz pozycję Utwórz.
Wypełnij żądane informacje. Aby uprościć środowisko, użyj tej samej subskrypcji i grupy zasobów co potok usługi Azure Data Factory i obszar roboczy usługi Azure Machine Learning.
Po utworzeniu aplikacji logiki wybierz pozycję Po wystąpieniu zdarzenia zasobu usługi Event Grid.
Zaloguj się i wypełnij szczegóły zdarzenia. Ustaw nazwę zasobu na nazwę obszaru roboczego. Ustaw typ zdarzenia na DatasetDriftDetected.
Dodaj nowy krok i wyszukaj usługę Azure Data Factory. Wybierz pozycję Utwórz przebieg potoku.
Zaloguj się i określ opublikowany potok usługi Azure Data Factory do uruchomienia.
Zapisz i utwórz aplikację logiki przy użyciu przycisku Zapisz w lewym górnym rogu strony. Aby wyświetlić aplikację, przejdź do obszaru roboczego w witrynie Azure Portal i wybierz pozycję Zdarzenia.
Teraz potok fabryki danych jest wyzwalany po wystąpieniu dryfu. Wyświetl szczegółowe informacje na temat przebiegu dryfu danych i potoku uczenia maszynowego w usłudze Azure Machine Learning Studio.
Następne kroki
Dowiedz się więcej o usłudze Event Grid i udostępniaj zdarzenia usługi Azure Machine Learning za próbę: