Testowanie potoków w środowisku produkcyjnym

Gratulacje! Masz wdrożony globalny prognozator wyglądu jednorożca. Chcesz, aby prognozator działał przez całą dobę 7 dni w tygodniu bez problemów. Szybko zorientujesz się, że musisz monitorować potok ML. Monitorowanie wszystkich komponentów może wydawać się zniechęcające, ale przyjrzyjmy się wymaganiom i rozwiązaniom.

Sprawdź zniekształcenie między trenowaniem a zastosowaniem praktycznym

Zniekształcenie między trenowaniem a zastosowaniem praktycznym oznacza, że dane wejściowe różnią się między trenowaniem a wyświetlaniem. W tej tabeli opisano 2 ważne typy zniekształceń:

Typ Definicja Przykład Rozwiązanie
Zniekształcenie schematu Dane wejściowe trenowania i udostępniania nie są zgodne z tym samym schematem. Format lub rozkład danych o wyświetlaniu ulega zmianie, gdy model uczy się na podstawie starych danych. Użyj tego samego schematu, aby zweryfikować dane treningowe i wyświetlające. Pamiętaj, aby oddzielnie sprawdzać statystyki, których nie sprawdza schemat, na przykład odsetek brakujących wartości
Zniekształcenie cech Inżynierskie dane różnią się między trenowaniem a wyświetlaniem. Kody używane do inżynierii cech różnią się między trenowaniem a udostępnianiem, co powoduje utworzenie różnych danych inżynierskich. Podobnie jak zniekształcenie między schematami, zastosuj te same reguły statystyczne do treningowych i udostępnianych danych. Monitoruj liczbę zniekształconych funkcji i współczynnik zniekształconych przykładów na cechę.

Monitorowanie wieku modelu przez potok

Jeśli dane do udostępniania zmieniają się w czasie, ale model nie jest regularnie trenowany, zaobserwujesz spadek jakości modelu. Śledź czas od nowa wytrenowanego modelu na nowych danych i ustaw próg alertu dla alertów. Oprócz monitorowania wieku modelu przy wyświetlaniu należy monitorować wiek modelu w potoku, aby wychwycić stojaki potoku.

Sprawdzanie, czy wagi i dane wyjściowe modelu są stabilne numerycznie

Podczas trenowania modelu Twoje wagi i dane wyjściowe w warstwie nie powinny być ustawione jako NaN lub Inf. Napisz testy, aby sprawdzić wartości NaN i Inf swoich wag i wyników warstwy. Sprawdź też, czy ponad połowa danych wyjściowych warstwy ma wartość zero.

Monitorowanie skuteczności modelu

Twoja prognoza jednorożca zyskała większą popularność niż oczekiwano! Otrzymujesz wiele żądań prognozowania, a jeszcze więcej danych treningowych. Myślisz, że to świetny wynik, dopóki nie zrozumiesz, że Twój model wymaga coraz więcej pamięci i czasu na trenowanie. Możesz monitorować wydajność modelu, wykonując te czynności:

  • Śledź skuteczność modelu według wersji kodu, modelu i danych. Dzięki takim śledzeniu możesz określić dokładną przyczynę spadku wydajności.
  • Przetestuj kroki trenowania na sekundę w nowej wersji modelu w stosunku do poprzedniej i stałym progu.
  • Złap wycieki pamięci, ustawiając próg wykorzystania pamięci.
  • Śledź czas odpowiedzi interfejsu API i monitoruj ich percentyle. Czasy odpowiedzi interfejsu API mogą być poza kontrolą, ale wolne odpowiedzi mogą prowadzić do słabych wskaźników w rzeczywistości.
  • Monitoruj liczbę zapytań, na które można uzyskać odpowiedzi w ciągu sekundy.

Testowanie jakości opublikowanej wersji modelu na podstawie wyświetlanych danych

Model został zweryfikowany. Ale co jeśli w rzeczywistości zmieni się po zarejestrowaniu danych? Gdy to zrobisz, jakość udostępnianego modelu się pogorszy. Testowanie jakości wyświetlania jest jednak trudne, ponieważ dane rzeczywiste nie zawsze są oznaczone etykietami. Jeśli Twoje dane wyświetlania nie są oznaczone etykietą, rozważ te testy:

  • Generowanie etykiet przy użyciu weryfikatorów

  • Przeanalizuj modele, które wykazują znaczące odchylenia statystyczne w prognozach. Zobacz Klasyfikacja: odchylenie prognozy.

  • Obserwuj rzeczywiste dane dotyczące modelu. Jeśli na przykład klasyfikujesz spam, porównaj swoje prognozy z spamem zgłoszonym przez użytkowników.

  • Aby ograniczyć potencjalny rozbieżność między danymi z trenowania i udostępniania, nowa wersja modelu powinna być dostępna w części zapytań. W trakcie weryfikowania nowego modelu udostępniania stopniowo przełączaj wszystkie zapytania na nową wersję.

Korzystając z tych testów, pamiętaj, aby monitorować zarówno nagłe, jak i powolne pogorszenie jakości prognoz.