Produkcyjne systemy ML: testowanie wdrożenia

Możesz już wdrożyć model jednorożca, który przewiduje pojawienie się jednorożców. Podczas wdrażania potok systemów uczących się powinien uruchamiać, aktualizować wyświetlają się bez problemu. Gdyby wdrożenie modelu było tak proste, jakby to było duży przycisk Wdróż. Niestety kompleksowy system uczący się wymaga testów:

  • Weryfikuję dane wejściowe.
  • Sprawdzam inżynierię funkcji.
  • Sprawdzanie jakości nowych wersji modelu.
  • Weryfikuję infrastrukturę obsługującą.
  • Testowanie integracji między komponentami potoku.

Wielu programistów preferuje programowanie oparte na testach (TDD). W programie TDD oprogramowanie inżynierowie piszą testy przed napisaniem „prawdziwych” kodu źródłowego. Jednak TDD może być trudny do zastosowania w uczeniu maszynowym. Na przykład przed wytrenowaniem modelu nie możesz napisać testu potwierdzającego do straty. Zamiast tego musisz najpierw wykryć możliwą do osiągnięcia stratę podczas modelowania a następnie testować nowe wersje modelu pod kątem możliwej do osiągnięcia straty.

Informacje o modelu jednorożca

Ta sekcja dotyczy modelu jednorożca. Oto, co musisz wiedzieć na ten temat:

Korzystasz z systemów uczących się do utworzenia modelu klasyfikacji, który prognozuje, z jednorożcami. Twój zbiór danych zawiera informacje o 10 tys. występów jednorożców 10 000 jednorożców,które się nie pojawiają. Zbiór danych zawiera lokalizację, pora dnia, wysokość, temperatura, wilgotność, zagęszczenie drzew, obecność tęcza i kilka innych funkcji.

Testowanie aktualizacji modelu za pomocą powtarzalnego trenowania

Może chcesz dalej ulepszać swój model jednorożca? Załóżmy na przykład, że: projektujesz jakąś cechę, i ponownie wytrenować model w nadziei na uzyskanie lepszych (lub przynajmniej takich samych) wyników. Niestety czasem trudno jest odtworzyć trenowanie modelu. Aby poprawić odtwarzalność, zastosuj się do tych zaleceń:

  • Wykrywanie generatora liczb losowych w określony sposób. Więcej informacji można znaleźć w artykule na temat losowania danych. generacja

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

  • Oblicz średnią z kilku uruchomień modelu.

  • Korzystaj z kontroli wersji, nawet w przypadku wstępnych iteracji, aby wskazać kod i parametry podczas badania modelu lub potoku.

Nawet po zastosowaniu się do tych wytycznych inne źródła niedeterminizmu mogą które wciąż istnieją.

Testowanie wywołań interfejsu Machine Learning API

Jak testujesz aktualizacje wywołań interfejsu API? Możesz wytrenować model, ale czasochłonność. Zamiast tego napisz test jednostkowy, aby wygenerować losowe dane wejściowe i wykonaj jeden krok opadania gradientem. Jeśli ten krok zakończy się bez błędów, to wszelkie aktualizacje interfejsu API prawdopodobnie nie zniszczą modelu.

Pisanie testów integracji komponentów potoku

W potoku ML zmiany w jednym komponencie mogą powodować błędy w innym Sprawdź, czy komponenty współdziałają ze sobą, pisząc test integracji, który kompleksowo uruchamia cały potok.

Oprócz ciągłego testowania integracji należy przeprowadzać testy integracji przy wdrażaniu nowych modeli i nowych wersji oprogramowania. Powolne działanie cały potok utrudnia testowanie ciągłej integracji. Aby przeprowadzić integrację pozwala szybciej przeprowadzać testy, trenować na podzbiorze danych lub przy użyciu prostszego modelu. Szczegóły zależą od modelu i danych. Aby mieć stały zasięg, dostosuj aby można było je uruchamiać z każdą nową wersją modelu lub oprogramowania. W tym czasie Twoje powolne testy będą działać w tle.

Zweryfikuj jakość modelu przed wyświetleniem

Przed przekazaniem nowej wersji modelu do środowiska produkcyjnego przetestuj te 2 rodzaje pogorszenia jakości:

  • Nagłe pogorszenie stanu. Błąd w nowej wersji może znacznie niższej jakości. Weryfikuj nowe wersje, sprawdzając ich jakość w porównaniu z poprzednią wersją.

  • Powolne pogorszenie. Test pod kątem nagłego pogorszenia może nie wykryć powolnego działania pogorszenie jakości modelu w wielu wersjach. Zamiast tego upewnij się, że atrybuty prognozy modelu w zbiorze danych do weryfikacji osiągają stały próg. Jeśli zbiór danych do weryfikacji odbiega od bieżących danych, zaktualizuj weryfikację w zbiorze danych i sprawdź, czy model nadal osiąga ten sam próg jakości.

Przed udostępnieniem sprawdź zgodność modelu z infrastrukturą

Jeśli model jest aktualizowany szybciej niż serwer, model może mieć różne zależności oprogramowania od serwera, potencjalnie powodując kompatybilności. Sprawdź, czy operacje używane przez model są obecne w na serwerze, udostępniając model na serwerze w trybie piaskownicy.