Monitorowanie modelu usługi Azure Machine Learning
Monitorowanie modelu to ostatni krok w całym cyklu życia uczenia maszynowego. Ten krok śledzi wydajność modelu w środowisku produkcyjnym i analizuje wydajność zarówno z perspektywy nauki o danych, jak i operacyjnej. W tym artykule dowiesz się więcej o monitorowaniu modeli w usłudze Azure Machine Learning, sygnałach i metrykach, które można monitorować i zalecanych rozwiązaniach dotyczących monitorowania modeli.
W przeciwieństwie do tradycyjnych systemów oprogramowania zachowanie systemu uczenia maszynowego nie zależy tylko od reguł określonych w kodzie, ale także uczy się na podstawie danych. Zmiany dystrybucji danych, niesymetryczność obsługi szkoleń, problemy z jakością danych, zmiany w środowiskach i zmiany zachowania konsumentów mogą spowodować, że model stanie się nieaktualny.
Gdy model staje się nieaktualny, jego wydajność może obniżyć się do tego stopnia, że nie dodaje wartości biznesowej lub zaczyna powodować poważne problemy ze zgodnością w środowiskach o wysokim poziomie regulacji. Dlatego ważne jest monitorowanie wydajności modelu.
Jak działa monitorowanie modelu usługi Azure Machine Learning
Aby zaimplementować monitorowanie, usługa Azure Machine Learning uzyskuje sygnały monitorowania, wykonując obliczenia statystyczne na strumieniowych danych wnioskowania produkcyjnego i danych referencyjnych. Dane wnioskowania produkcyjnego odnoszą się do danych wejściowych i wyjściowych modelu zebranych w środowisku produkcyjnym. Dane referencyjne mogą być danymi historycznymi trenowania, walidacji lub danych podstawowych.
Ważne
Monitorowanie modelu usługi Azure Machine Learning obsługuje tylko uwierzytelnianie oparte na poświadczeniach, takie jak token sygnatury dostępu współdzielonego (SAS) w celu uzyskania dostępu do danych zawartych w magazynach danych. Aby dowiedzieć się więcej na temat magazynów danych i trybów uwierzytelniania, zobacz Administrowanie danymi.
Każdy sygnał monitorowania ma co najmniej jedną metrykę. Możesz ustawić progi dla tych metryk, aby wyzwalać alerty dotyczące anomalii modelu lub danych za pośrednictwem usługi Azure Machine Learning lub Azure Event Grid. Po otrzymaniu alertów możesz użyć usługi Azure Machine Learning Studio do analizowania lub rozwiązywania problemów z sygnałami monitorowania w celu ciągłego ulepszania jakości modelu.
Usługa Azure Machine Learning używa następującego procesu do obsługi wbudowanego sygnału monitorowania, takiego jak dryf danych, dla modelu w środowisku produkcyjnym:
Najpierw usługa Azure Machine Learning oblicza statystyczny rozkład wartości funkcji w danych treningowych. Ta dystrybucja jest rozkładem bazowym dla tej funkcji.
Następnie usługa Azure Machine Learning oblicza statystyczny rozkład najnowszych wartości funkcji zarejestrowanych w środowisku produkcyjnym.
Usługa Azure Machine Learning wykonuje następnie test statystyczny lub oblicza wynik odległości w celu porównania rozkładu najnowszych wartości funkcji w środowisku produkcyjnym z rozkładem bazowym. Jeśli statystyka testowa lub ocena odległości między dwoma rozkładami przekroczy próg określony przez użytkownika, usługa Azure Machine Learning zidentyfikuje anomalię i powiadomi użytkownika.
Konfigurowanie i używanie monitorowania modelu
Aby użyć monitorowania modelu w usłudze Azure Machine Learning:
Najpierw włącz zbieranie danych wnioskowania produkcyjnego.
- Jeśli wdrożysz model w punkcie końcowym online usługi Azure Machine Learning, możesz włączyć zbieranie danych wnioskowania produkcyjnego przy użyciu zbierania danych modelu usługi Azure Machine Learning.
- Jeśli wdrażasz model poza usługą Azure Machine Learning lub w punkcie końcowym wsadowym usługi Azure Machine Learning, odpowiadasz za zbieranie danych wnioskowania produkcyjnego, których można następnie użyć do monitorowania modelu usługi Azure Machine Learning.
Następnie skonfiguruj monitorowanie modelu. Do łatwego konfigurowania monitorowania modelu można użyć zestawu AZURE Machine Learning SDK/interfejsu wiersza polecenia 2.0 lub interfejsu użytkownika programu Studio. Podczas instalacji można określić preferowane sygnały monitorowania i dostosować metryki i progi dla każdego sygnału.
Na koniec wyświetl i przeanalizuj wyniki monitorowania modelu. Po skonfigurowaniu monitorowania modelu usługa Azure Machine Learning uruchamia zadanie monitorowania zgodnie z określonym harmonogramem. Każdy przebieg oblicza i ocenia metryki dla wszystkich wybranych sygnałów monitorowania i wyzwala powiadomienia o alertach po przekroczeniu określonego progu. Możesz skorzystać z linku w powiadomieniu o alercie, aby wyświetlić i przeanalizować wyniki monitorowania w obszarze roboczym usługi Azure Machine Learning.
Możliwości monitorowania modelu
Usługa Azure Machine Learning oferuje następujące możliwości monitorowania ciągłego modelu:
- Wbudowane sygnały monitorowania danych tabelarycznych, w tym dryf danych, dryf przewidywania, jakość danych, dryf autorstwa funkcji i wydajność modelu.
- Gotowe monitorowanie modelu dla punktów końcowych online. W przypadku wdrożenia modelu w środowisku produkcyjnym w punkcie końcowym online usługa Azure Machine Learning automatycznie zbiera dane wnioskowania produkcyjnego i używa go do ciągłego monitorowania.
- Wiele sygnałów monitorowania w jednej konfiguracji monitorowania. Dla każdego sygnału monitorowania możesz wybrać preferowane metryki i próg alertu.
- Wybór danych referencyjnych do porównania. W przypadku sygnałów monitorowania można ustawić dane referencyjne przy użyciu danych treningowych lub ostatnich danych produkcyjnych.
- Najważniejsze N funkcji do monitorowania dryfu danych lub jakości danych. Jeśli używasz danych treningowych jako danych referencyjnych, możesz zdefiniować dryf danych lub sygnały dotyczące jakości danych warstwowe nad znaczeniem funkcji.
- Możliwość definiowania niestandardowych sygnałów monitorowania. Jeśli wbudowane sygnały monitorowania nie są odpowiednie dla danego scenariusza biznesowego, możesz zdefiniować własny sygnał monitorowania za pomocą niestandardowego składnika sygnału monitorowania.
- Elastyczność korzystania z danych wnioskowania produkcyjnego z dowolnego źródła. Jeśli wdrażasz modele poza usługą Azure Machine Learning lub wdrażasz modele w punktach końcowych wsadowych, nadal możesz zbierać dane wnioskowania produkcyjnego do użycia w ramach monitorowania modelu usługi Azure Machine Learning.
Najlepsze rozwiązania dotyczące monitorowania modelu
Każdy model uczenia maszynowego i jego przypadki użycia są unikatowe. W związku z tym monitorowanie modelu jest unikatowe dla każdej sytuacji. Poniższa lista zawiera opis zalecanych najlepszych rozwiązań dotyczących monitorowania modelu.
- Rozpocznij monitorowanie modelu natychmiast po wdrożeniu modelu w środowisku produkcyjnym.
- Skontaktuj się z analitykami danych, którzy znają model, aby skonfigurować monitorowanie. Analitycy danych, którzy mają wgląd w model i jego przypadki użycia, mogą zalecić monitorowanie sygnałów i metryk oraz ustawić odpowiednie progi alertów dla każdej metryki, aby uniknąć zmęczenia alertów.
- Uwzględnij wiele sygnałów monitorowania w konfiguracji. Dzięki wielu sygnałom monitorowania można uzyskać zarówno szerokie, jak i szczegółowe widoki monitorowania. Na przykład można połączyć dryf danych i sygnały dryfu autorstwa funkcji, aby uzyskać wczesne ostrzeżenia dotyczące problemów z wydajnością modelu.
- Użyj odpowiednich danych referencyjnych jako punktu odniesienia porównania. W przypadku danych referencyjnych używanych jako punkt odniesienia porównania można użyć ostatnich danych produkcyjnych lub danych historycznych, takich jak dane treningowe lub weryfikacyjne. Aby uzyskać bardziej znaczące porównanie, użyj danych treningowych jako punktu odniesienia porównania dla dryfu danych i jakości danych. Użyj danych walidacji jako punktu odniesienia porównania dla dryfu przewidywania.
- Określ częstotliwość monitorowania na podstawie wzrostu danych produkcyjnych w czasie. Jeśli na przykład model produkcyjny ma duży dzienny ruch, a codzienne gromadzenie danych jest wystarczające, ustaw częstotliwość monitorowania na codziennie. W przeciwnym razie rozważ częstotliwość monitorowania tygodniowego lub miesięcznego na podstawie wzrostu danych produkcyjnych w czasie.
- Monitorowanie najważniejszych N funkcji lub podzestawu funkcji. Jeśli używasz danych treningowych jako punktu odniesienia porównania, możesz łatwo skonfigurować monitorowanie dryfu danych lub monitorowanie jakości danych dla najważniejszych N ważnych funkcji. W przypadku modeli, które mają dużą liczbę funkcji, rozważ monitorowanie podzestawu tych funkcji w celu zmniejszenia kosztów obliczeń i monitorowania szumu.
- Użyj sygnału wydajności modelu, gdy masz dostęp do danych podstawowych. Jeśli masz dostęp do danych podstawowych prawdy, nazywanych również wartościami rzeczywistymi w oparciu o aplikację uczenia maszynowego, użyj sygnału wydajności modelu, aby porównać dane podstawowe prawdy z danymi wyjściowymi modelu. To porównanie zapewnia obiektywny widok wydajności modelu w środowisku produkcyjnym.
Rozmiar i przesunięcie okna odnośnika
Rozmiar okna wyszukiwania to czas trwania w formacie ISO 8601 dla okna danych produkcyjnych lub referencyjnych. Przesunięcie okna wyszukiwania to czas trwania przesunięcia końca okna danych od daty uruchomienia monitorowania.
Na przykład model w środowisku produkcyjnym ma monitor ustawiony na uruchomienie 31 stycznia o 15:15 czasu UTC. Rozmiar okna wyszukiwania danych produkcyjnych równy P7D
lub siedem dni, a przesunięcie okna P0D
wyszukiwania danych o wartości lub zero dni oznacza, że monitor używa danych produkcyjnych od 24 stycznia o godzinie 15:15 UTC do 31 stycznia o 15:15 czasu UTC, czasu uruchomienia monitora.
W przypadku danych referencyjnych, jeśli ustawisz przesunięcie P7D
okna wyszukiwania na lub siedem dni, okno danych referencyjnych kończy się bezpośrednio przed uruchomieniem okna danych produkcyjnych, aby nie nakładało się. Następnie możesz ustawić rozmiar okna wyszukiwania wstecznego danych referencyjnych na tak duży, jak chcesz.
Jeśli na przykład ustawisz rozmiar okna wyszukiwania danych referencyjnych na P24D
lub 24 dni, okno danych referencyjnych zawiera dane od 1 stycznia o 13:15 czasu UTC do 24 stycznia o 15:15 czasu UTC. Na poniższym diagramie przedstawiono ten przykład.
W niektórych przypadkach może być przydatne ustawienie przesunięcia okna wyszukiwania dla danych produkcyjnych na liczbę większą niż zero dni. Jeśli na przykład monitor ma być uruchamiany co tydzień o godzinie 15:15 czasu UTC, ale nie chcesz używać danych z weekendu w przebiegu monitorowania, możesz użyć rozmiaru P5D
okna wyszukiwania lub pięciu dni oraz przesunięcia P2D
okna wyszukiwania lub dwóch dni. Okno danych rozpocznie się w poprzedni poniedziałek o 15:15 czasu UTC i kończy się w piątek o godzinie 15:15 czasu UTC.
W praktyce należy upewnić się, że okno danych referencyjnych i okno danych produkcyjnych nie nakładają się na siebie. Jak pokazano na poniższej ilustracji, możesz upewnić się, że przesunięcie P10D
okna wyszukiwania danych referencyjnych lub 10 dni w tym przykładzie jest większe lub równe sumie rozmiaru okna wyszukiwania danych produkcyjnych i przesunięcia okna odnośnika, siedem dni w tym przykładzie.
Dzięki monitorowaniu modelu usługi Azure Machine Learning można użyć inteligentnych wartości domyślnych dla rozmiaru okna wyszukiwania i przesunięcia okna wyszukiwania lub dostosować je do własnych potrzeb. Obsługiwane są okna stopniowe i stałe okna.
Dostosowywanie rozmiaru okna odnośnika
Masz elastyczność wybierania rozmiaru okna wyszukiwania zarówno dla danych produkcyjnych, jak i danych referencyjnych.
Domyślnie rozmiar okna wyszukiwania dla danych produkcyjnych to częstotliwość monitorowania. Wszystkie dane zebrane w okresie monitorowania przed uruchomieniem zadania monitorowania zostaną uwzględnione w oknie wyszukiwania. Za pomocą
production_data.data_window.lookback_window_size
właściwości można dostosować okno danych rolowych dla danych produkcyjnych.Domyślnie okno wyszukiwania danych referencyjnych jest pełnym zestawem danych. Za pomocą
reference_data.data_window.lookback_window_size
właściwości można dostosować rozmiar okna odnośnika odwołania.
Aby określić stałe okno danych dla danych referencyjnych, użyj właściwości reference_data.data_window.window_start_date
i reference_data.data_window.window_end_date
.
Dostosowywanie przesunięcia okna odnośnika
Masz elastyczność wybierania przesunięcia okna wyszukiwania dla okna danych zarówno dla danych produkcyjnych, jak i danych referencyjnych. Przesunięcie można użyć do szczegółowej kontroli nad danymi używanymi przez monitor. Przesunięcie dotyczy tylko okien danych kroczenia.
Domyślnie przesunięcie danych produkcyjnych wynosi
P0D
lub zero dni. To przesunięcie można zmodyfikować zaproduction_data.data_window.lookback_window_offset
pomocą właściwości .Domyślnie przesunięcie danych referencyjnych to dwa razy
production_data.data_window.lookback_window_size
więcej niż . To ustawienie zapewnia wystarczającą ilość danych referencyjnych dla statystycznie znaczących wyników monitorowania. To przesunięcie można zmodyfikować zareference_data.data_window.lookback_window_offset
pomocą właściwości .
Monitorowanie sygnałów i metryk
Monitorowanie modelu usługi Azure Machine Learning obsługuje następujące sygnały i metryki monitorowania.
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.
Sygnał monitorowania | opis | Metryki | Zadania modelu lub obsługiwany format danych | Dane produkcyjne | Dane referencyjne |
---|---|---|---|---|---|
Dryf danych | Śledzi zmiany w dystrybucji danych wejściowych modelu, porównując rozkład z danymi treningowymi modelu lub ostatnimi danymi produkcyjnymi. | Jensen-Shannon Distance, Wskaźnik stabilności populacji, Znormalizowana odległość Wassersteina, dwu próbka Kolmogorov-Smirnov Test, Chi-Squared Test Pearsona | Klasyfikacja (dane tabelaryczne), regresja (dane tabelaryczne) | Dane produkcyjne: dane wejściowe modelu | Ostatnie dane produkcyjne lub dane szkoleniowe |
Dryf przewidywania | Śledzi zmiany w dystrybucji przewidywanych danych wyjściowych modelu, porównując rozkład z danymi walidacji, oznaczonymi etykietami danych testowych lub najnowszymi danymi produkcyjnymi. | Jensen-Shannon Distance, Population Stability Index, Normalized Wasserstein Distance, Chebyszew Distance, Two-Sample Kolmogorov-Smirnov Test, Chi-Squared Test Pearsona | Klasyfikacja (dane tabelaryczne), regresja (dane tabelaryczne) | Dane produkcyjne: dane wyjściowe modelu | Ostatnie dane produkcyjne lub dane weryfikacji |
Jakość danych | Śledzi integralność danych wejściowych modelu, porównując je z danymi treningowymi modelu lub najnowszymi danymi produkcyjnymi. Kontrole jakości danych obejmują sprawdzanie wartości null, niezgodności typów lub wartości poza granicami. | Szybkość wartości null, współczynnik błędów typu danych, szybkość braku granic | Klasyfikacja (dane tabelaryczne), regresja (dane tabelaryczne) | Dane produkcyjne: dane wejściowe modelu | Ostatnie dane produkcyjne lub dane szkoleniowe |
Dryf autorstwa funkcji (wersja zapoznawcza) | Na podstawie udziału funkcji w przewidywaniach, znanej również jako znaczenie cech. Funkcja dryfu autorstwa śledzi znaczenie funkcji podczas produkcji, porównując ją z ważnością cech podczas trenowania. | Znormalizowany zysk skumulowany z rabatem | Klasyfikacja (dane tabelaryczne), regresja (dane tabelaryczne) | Dane produkcyjne: dane wejściowe i wyjściowe modelu | Dane szkoleniowe (wymagane) |
Wydajność modelu: klasyfikacja (wersja zapoznawcza) | Śledzi obiektywną wydajność danych wyjściowych modelu w środowisku produkcyjnym, porównując je z zebranymi danymi podstawowymi. | Dokładność, precyzja i kompletność | Klasyfikacja (dane tabelaryczne) | Dane produkcyjne: dane wyjściowe modelu | Podstawowe dane prawdy (wymagane) |
Wydajność modelu: regresja (wersja zapoznawcza) | Śledzi obiektywną wydajność danych wyjściowych modelu w środowisku produkcyjnym, porównując je z zebranymi danymi podstawowymi. | Błąd bezwzględny średniej (MAE), błąd średniokwadratowy (MSE), błąd średniokwadratowy (RMSE) | Regresja (dane tabelaryczne) | Dane produkcyjne: dane wyjściowe modelu | Podstawowe dane prawdy (wymagane) |
Generowanie sztucznej inteligencji: bezpieczeństwo i jakość generowania (wersja zapoznawcza) | Ocenia generowanie aplikacji sztucznej inteligencji pod kątem bezpieczeństwa i jakości przy użyciu metryk wspomaganych przez GPT. | Uziemienie, istotność, płynność, podobieństwo, spójność | Pytania i odpowiedzi | Szablon monitu, uzupełniania, kontekstu i adnotacji | Nie dotyczy |
Metryki jakości danych
Sygnał monitorowania jakości danych śledzi integralność danych wejściowych modelu, obliczając następujące trzy metryki:
- Współczynnik wartości null
- Szybkość błędów typu danych
- Szybkość braku granic
Monitorowanie modelu usługi Azure Machine Learning obsługuje maksymalnie 0,00001 precyzji dla obliczeń współczynnika wartości null, współczynnika błędów typu danych i współczynnika błędów poza granicami.
Współczynnik wartości null
Współczynnik wartości null to szybkość wartości null w danych wejściowych modelu dla każdej funkcji. Jeśli na przykład okno monitorowania danych produkcyjnych zawiera 100 wierszy, a wartość temperature
funkcji ma wartość null dla 10 z tych wierszy, wartość null wynosi temperature
10%.
Usługa Azure Machine Learning obsługuje obliczanie współczynnika wartości null dla wszystkich typów danych funkcji.
Szybkość błędów typu danych
Podczas każdego przebiegu monitorowania monitorowanie modelu usługi Azure Machine Learning wywnioskuje typ danych dla każdej funkcji z danych referencyjnych. Współczynnik błędów typu danych to szybkość różnic typu danych między bieżącym oknem danych produkcyjnych a danymi referencyjnymi.
Jeśli na przykład typ danych funkcji temperature
zostanie wywnioskowany IntegerType
z danych referencyjnych, ale w oknie danych produkcyjnych 10 na 100 wartości dla temperature
funkcji nie IntegerType
są ciągami, współczynnik błędów typu danych wynosi temperature
10%.
Usługa Azure Machine Learning obsługuje obliczanie współczynnika błędów typu danych dla następujących typów danych dostępnych w programie PySpark: ShortType
, BooleanType
StringType
TimestampType
DoubleType
BinaryType
FloatType
ByteType
IntegerType
, LongType
, i .DateType
Jeśli typ danych funkcji nie znajduje się na tej liście, monitorowanie modelu usługi Azure Machine Learning nadal działa, ale nie oblicza współczynnika błędów typu danych dla tej funkcji.
Szybkość braku granic
Podczas każdego przebiegu monitorowania monitorowanie modelu usługi Azure Machine Learning określa akceptowalny zakres lub zestaw dla każdej funkcji na podstawie danych referencyjnych. Szybkość poza granicami to szybkość wartości dla każdej funkcji, która znajduje się poza odpowiednim zakresem lub ustawiona na podstawie danych referencyjnych.
- W przypadku cech liczbowych odpowiedni zakres to interwał liczbowy między minimalnymi i maksymalnymi wartościami w zestawie danych referencyjnych, na przykład
[0, 100]
. - W przypadku funkcji kategorii, takich jak
color
, odpowiedni zakres jest zestawem wszystkich wartości zawartych w zestawie danych referencyjnych, takich jak[red, yellow, green]
.
Jeśli na przykład masz funkcję liczbową temperature
, w której wszystkie wartości w zestawie danych referencyjnych mieszczą się w zakresie [37, 77]
, ale 10 z 100 wartości dla temperature
w oknie danych produkcyjnych wykracza poza zakres , współczynnik poza granicami [37, 77]
wynosi temperature
10%.
Usługa Azure Machine Learning obsługuje obliczanie współczynnika braku ograniczeń dla następujących typów danych, które są dostępne w programie PySpark: StringType
, , DoubleType
IntegerType
, ByteType
, LongType
i FloatType
. Jeśli typ danych dla funkcji nie znajduje się na tej liście, monitorowanie modelu usługi Azure Machine Learning nadal działa, ale nie oblicza współczynnika braku ograniczeń dla tej funkcji.
Integracja monitorowania modelu z usługą Azure Event Grid
Zdarzenia generowane przez przebiegi monitorowania modelu usługi Azure Machine Learning umożliwiają konfigurowanie aplikacji, procesów lub przepływów pracy ciągłej integracji/ciągłego dostarczania (CI/CD) za pomocą usługi Azure Event Grid. Gdy monitor modelu wykryje dryf, problemy z jakością danych lub obniżenie wydajności modelu, możesz śledzić te zdarzenia za pomocą usługi Event Grid i podjąć działania programowo.
Jeśli na przykład dokładność modelu klasyfikacji w środowisku produkcyjnym spadnie poniżej określonego progu, możesz użyć usługi Event Grid, aby rozpocząć zadanie ponownego trenowania, które używa zebranych danych podstawowych danych prawdy. Aby dowiedzieć się, jak zintegrować usługę Azure Machine Learning z usługą Event Grid, zobacz Monitorowanie wydajności modeli wdrożonych w środowisku produkcyjnym.