Testowanie na potrzeby wdrażania modeli systemów uczących się

Wszystko jest gotowe do wdrożenia. Do wdrożenia modelu wystarczyło nacisnąć duży czerwony przycisk. Po wdrożeniu chcesz uruchomić potok, aktualizować go i obsługiwać bez problemów. Te wymagania prowadzą do wymagań i rozwiązań omówionych na tej stronie.

Testowanie aktualizacji modelu za pomocą powtarzalnego szkolenia

Nie ma wątpliwości, że chcesz nadal ulepszać przewidywaną wygląd jednorożca. Załóżmy, że zmieniasz kod inżynierii cech pod kątem funkcji „pora dnia”. Jak sprawdzić, czy kod jest prawidłowy? Ponownie trenujesz model i zobaczysz, czy uzyskasz ten sam wynik. Okazało się, że nie można odtworzyć modelu. Zdeterminowana, aby dalej przewidywać wygląd jednorożców, dokładniej badasz sprawę. Aby odtworzyć, wykonaj następujące czynności:

  • Określenie generatora liczb losowych. Więcej informacji znajdziesz w sekcji Ranking w generowaniu danych w kursie dotyczącym przygotowania danych i funkcji w systemie uczących się.

  • Inicjuj komponenty modelu w ustalonej kolejności, aby mieć pewność, że przy każdym uruchomieniu otrzymują tę samą liczbę losową z RNG. Biblioteki ML zwykle automatycznie obsługują ten wymóg.

  • Średnie kilku uruchomień modelu.

  • Kontroluj wersje, nawet w przypadku iteracji wstępnych, aby przypiąć kod i parametry podczas badania modelu lub potoku.

Nawet po wykonaniu tych czynności możesz mieć dostęp do innych źródeł niedeterminizmu.

Testowanie aktualizacji modelu do specyfikacji i wywołań interfejsu API

Po uaktualnieniu modelu do standardu Unicorn Predictor 2.0 musisz przetestować nowy model pod kątem poprawności algorytmu, a także zmian w wywołaniach interfejsu API. Porozmawiajmy o tym.

Testowanie wywołań interfejsu API

Jak testujesz aktualizacje wywołań interfejsu API? Oczywiście możesz wytrenować model, ale to zajęło dużo czasu. Zamiast tego utwórz test jednostkowy, aby wygenerować losowe dane wejściowe i przeprowadzić jeden etap spadku gradientu. Ten krok musi zostać ukończony bez błędów środowiska wykonawczego.

Testowanie poprawności algorytmu

Model musi nie tylko działać prawidłowo, ale również dlatego, że jest algorytmiczny, a nie szczęśliwy. Jeśli na przykład 99% e-maili nie jest spamem, to klasyfikacja wszystkich e-maili jako spam nie będzie miała 99% dokładności. Dlatego musisz sprawdzić model pod kątem poprawności algorytmu. Wykonaj te czynności:

  • Wytrenuj model przez kilka iteracji i sprawdź, czy strata maleje.
  • Trenuj swój algorytm bez regularyzacji. Jeśli model jest dostatecznie złożony, będzie pamiętać dane treningowe, a strata trenowania będzie bliska 0.
  • Testowanie określonych poddziałów algorytmu. Możesz na przykład sprawdzić, że część numeru RNN jest uruchamiana raz na element danych wejściowych.

Pisanie testów integracji komponentów potoku

W potoku ML zmiany w jednym komponencie mogą powodować błędy w innych komponentach. Sprawdź, czy komponenty współgrają ze sobą, tworząc test, który będzie przeprowadzać kompleksowy potok. Test ten nosi nazwę testu integracji.

Oprócz ciągłego testowania integracji należy też przeprowadzać testy integracji po wdrażaniu nowych modeli i nowych wersji oprogramowania. Powolne uruchamianie całego potoku utrudnia ciągłe testowanie integracji. Aby szybciej przeprowadzać testy integracji, wytrenuj podzbiór danych lub użyj prostego modelu. Szczegóły zależą od modelu i danych. Aby uzyskać stały zasięg, dostosuj testy szybsze, tak aby działały z każdą nową wersją modelu lub oprogramowania. W tym czasie wolne testy będą przeprowadzane w tle.

Sprawdzaj jakość modelu przed wyświetleniem

Zanim wypchniesz nową wersję modelu do wersji produkcyjnej, przetestuj te 2 rodzaje pogorszeń jakości:

  • Nagłe pogorszenie: błąd w nowej wersji może spowodować znacznie gorszą jakość. Zweryfikuj nowe wersje, sprawdzając ich jakość w porównaniu z poprzednią wersją.

  • Powolne pogorszenie: test nagłe pogorszenie może nie wykryć powolnego pogorszenia jakości modelu w wielu wersjach. Zamiast tego prognozy prognozy modelu dotyczące zbioru danych do walidacji muszą osiągnąć stały próg. Jeśli zbiór danych weryfikacyjnych odbiega od bieżących danych, zaktualizuj go i upewnij się, że model nadal osiąga ten sam próg jakości.

Weryfikowanie zgodności modelu modelu infrastruktury przed udostępnieniem

Jeśli model zostanie zaktualizowany szybciej niż serwer, będą miały różne zależności oprogramowania od serwera, co może powodować niezgodności. Aby operacje wykonywane przez model były dostępne na serwerze, przechowuj model w wersji piaskownicy w trybie piaskownicy.