Udostępnij za pośrednictwem


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.

Model funkcjonalny usługi Azure Event Grid

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.

  1. Przejdź do witryny Azure Portal, wybierz nową subskrypcję lub istniejącą.

  2. Wybierz pozycję Zdarzenia w obszarze nawigacji po lewej stronie, a następnie wybierz pozycję + Subskrypcja zdarzeń.

  3. 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.

    filtrowanie zdarzeń

  • 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

  1. Otwórz witrynę Azure Portal i przejdź do obszaru roboczego usługi Azure Machine Learning.

  2. Na pasku po lewej stronie wybierz pozycję Zdarzenia , a następnie wybierz pozycję Subskrypcje zdarzeń.

    Zrzut ekranu przedstawiający wybór subskrypcji zdarzeń.

  3. Wybierz typ zdarzenia do zużycia.

    Zrzut ekranu przedstawiający formularz Tworzenie subskrypcji zdarzeń.

  4. Wybierz punkt końcowy, aby opublikować zdarzenie. Na poniższym zrzucie ekranu centrum zdarzeń jest wybranym punktem końcowym:

    Zrzut ekranu przedstawiający okienko Tworzenie subskrypcji zdarzeń z otwartą pozycją Wybierz centrum zdarzeń.

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.

  1. 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.

    Zrzut ekranu przedstawiający wybór usługi Logic Apps.

  2. Zaloguj się do interfejsu użytkownika aplikacji logiki i wybierz pozycję Machine Learning Service jako typ tematu.

    Zrzut ekranu przedstawia okno dialogowe Po wystąpieniu zdarzenia zasobu z uczeniem maszynowym wybranym jako typ zasobu.

  3. Wybierz zdarzenie, dla którego chcesz otrzymywać powiadomienia. Na przykład poniższy zrzut ekranu RunCompleted.

    Zrzut ekranu przedstawiający usługę Machine Learning Service jako typ zasobu.

  4. 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.

    Zrzut ekranu przedstawia okno dialogowe Wybieranie akcji z wiadomością e-mail wprowadzoną w wierszu wyszukiwania.

  5. 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.

    Zrzut ekranu przedstawia okno dialogowe Wyślij wiadomość e-mail z dodanym tematem i typem zdarzenia do wiersza tematu z listy po prawej stronie.

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:

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.

Zrzut ekranu przedstawiający potok trenowania w usłudze Azure Data Factory.

  1. Zacznij od utworzenia aplikacji logiki. Przejdź do witryny Azure Portal, wyszukaj pozycję Logic Apps i wybierz pozycję Utwórz.

    search-logic-app

  2. 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.

    Zrzut ekranu przedstawiający okienko Tworzenie aplikacji logiki.

  3. Po utworzeniu aplikacji logiki wybierz pozycję Po wystąpieniu zdarzenia zasobu usługi Event Grid.

    Zrzut ekranu przedstawia projektanta usługi Logic Apps z opcją Rozpocznij od typowych opcji wyzwalacza, w tym po wystąpieniu zdarzenia zasobu usługi Event Grid.

  4. Zaloguj się i wypełnij szczegóły zdarzenia. Ustaw nazwę zasobu na nazwę obszaru roboczego. Ustaw typ zdarzenia na DatasetDriftDetected.

    Zrzut ekranu przedstawiający element typu zdarzenia dryfu danych.

  5. Dodaj nowy krok i wyszukaj usługę Azure Data Factory. Wybierz pozycję Utwórz przebieg potoku.

    Zrzut ekranu przedstawiający okienko Wybierz akcję z wybraną pozycją Utwórz przebieg potoku.

  6. Zaloguj się i określ opublikowany potok usługi Azure Data Factory do uruchomienia.

    Zrzut ekranu przedstawiający okienko Tworzenie uruchomienia potoku z różnymi wartościami.

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

    Zrzut ekranu przedstawia zdarzenia z wyróżnioną pozycją Aplikacja logiki.

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.

Zrzut ekranu przedstawiający punkty końcowe potoku.

Następne kroki

Dowiedz się więcej o usłudze Event Grid i udostępniaj zdarzenia usługi Azure Machine Learning za próbę: