Development2021.09.14 3 min. czytania

Jak MLOps wspomaga budowanie modeli ML?

Mateusz Szczęsny MLOps Engineer

Według badania przeprowadzonego w 2020 roku 36% ankietowanych uznało, że inżynierowie danych spędzają jedną czwartą swojego czasu pracy na wdrażaniu modeli ML (ang. Machine learning). Natomiast kolejne 36% respondentów wskazało, że stosunek ten wynosi nawet 1:1. Jak więc wzbogacić proces implementacji systemów uczenia maszynowego? Co należy zrobić, żeby inżynierowie danych mogli skupić się w pełni na swoich obowiązkach? W niniejszej publikacji odpowiem na powyższe pytania oraz przedstawię przykłady praktyk, wykorzystywanych przez MLOps w celu efektywniejszego wytwarzania systemów ML.

Rysunek 1 przedstawia główne etapy procesu budowania modeli uczenia maszynowego. Taki cykl w swojej surowej postaci posiada wiele słabych punktów

Rysunek 1 Proces implementacji systemów uczenia maszynowego bez MLOps [źródło: opracowanie własne].

Podstawowym problemem jest brak dedykowanych mechanizmów pozwalających sprostać sytuacjom brzegowym, gdyż miarą jakości dobrego procesu jest właśnie przygotowanie na wszelkie niespodziewane zdarzenia. Brak wdrożenia takich rozwiązań jak rejestr modeli (ang. model registry) oraz dedykowana platforma do uruchamiania eksperymentów, uniemożliwi np. przeprowadzenie audytu lub przywrócenie systemu do poprzedniej wersji, w razie nagłej awarii. Projekty również często nie decydują się na automatyzację powtarzanych czynności, powstrzymując tym samym efektywne wdrażanie nowych pracowników do zespołu. Praca, która mogłaby zostać zastąpiona odpowiednim automatem, musi być wykonywana manualnie, czego efekty widać w wynikach ankiety wspomnianej na początku niniejszego artykułu. 

Wdrożenie MLOps 

Jak więc sprostać tym trudnościom i wzbogacić proces, w taki sposób, żeby zwiększyć efektywność pracy? Z rozwiązaniem przychodzi MLOps!  Rysunek 2 ilustruje ten sam proces, co w omawianym wyżej przykładzie, jednak z tą różnicą, iż został on wzbogacony o praktyki MLOps. 

Rysunek 2 Proces implementacji systemów uczenia maszynowego wzbogacony o techniki MLOps [źródło: opracowanie własne].

W odróżnieniu od procesu przedstawionego na Rysunku 1, ten wzbogacony o MLOps  sprawia wrażenie, jakby był zdublowany. Dzieje się tak, ponieważ wsparcie automatyzacją odbywa się na każdym etapie. Na powyższym rysunku można wyróżnić następujące praktyki usprawniające proces: 

  • ciągła integracja (ang. continuous integration, CI) odpowiedzialna za walidację analizowanych danych oraz modeli, 
  • ciągłe wdrożenie (ang. continuous deployment, CD) aktualizujące działający serwis na podstawie najnowszej dostępnej wersji modelu, 
  • ciągłe trenowanie (ang. continuous training, CT) pozwalające na automatyczne ponowne trenowanie modelu, gdy zajdzie taka potrzeba, 
  • ciągłe monitorowanie (ang. continuous monitoring, CM) zapewniające kontrolę nad jakością systemu. 

Ciągła integracja i wdrożenie 

Pierwsze zmiany widoczne są już na etapie pozyskiwania danych oraz ich czyszczenia. Dobrą praktyką (szczególnie w przypadku analizy zbiorów o dużej liczbie cech) jest automatyzacja testowania w celu zbadania jakości danych, ich potencjału lub ewentualnych korelacji. Ponadto w przypadku przetwarzania informacji wrażliwych, konieczna może okazać się walidacja pod kątem regulacji prawnych (np. RODO). 

Największa zmiana jednak ma miejsce na etapie implementacji modelu. Proces wykorzystujący praktyki MLOps zakłada pracę, w oparciu o platformę dedykowaną do przeprowadzania eksperymentów. Przykładami takich narzędzi są następujące produkty: 

  • MLflow — otwarto-źródłowa platforma do zarządzania cyklem życia ML, pozwala na przeprowadzanie eksperymentów, wersjonowanie oraz wdrażanie. Dodatkowo wyposażona jest w centralny rejestr modeli
  • Kubeflow — otwarto-źródłowy projekt mający na celu uproszczenie oraz zapewnienie skalowania dla wdrażania systemów ML. Poza głównym celem oprogramowanie umożliwia  przeprowadzanie eksperymentów, dostrajanie parametrów uczenia (ang. hyperparameter tuning) oraz implementację ciągłej integracji i wdrożenia (ang. continuous integration and deployment). 

Powyższe narzędzia to nie jedyne rozwiązania na rynku, lecz są to z pewnością pozycje, którym warto poświęcić chwilę uwagi. Wykorzystanie dedykowanej platformy do implementacji modeli ML niesie ze sobą następujące korzyści: 

  • możliwość odtworzenia eksperymentów, dzięki wersjonowaniu danych oraz hiper-parametrów, 
  • historia pracy pozwalająca na kontrolowanie postępu projektu, 
  • łatwość wdrożenia nowych pracowników w projekt z uwagi na automatyzację procesu, 
  • współdzielenie efektów pracy w postaci np. wytrenowanych modeli. 

Ciągłe monitorowanie i trenowanie 

Ostatnim etapem usprawnionym przez praktyki MLOps jest monitorowanie produkcyjnej wersji modelu. Zamiast cyklicznego dokonywania audytu, można skorzystać z dedykowanych narzędzi pozwalających na analizę jakości, w niemal rzeczywistym czasie. Pozwoli to na znaczne zwiększenie wydajności modelu. Ponadto umożliwi uniknięcie zagrożeń w postaci nagłych błędów systemu. Takie oprogramowanie może zostać również wykorzystane do określenia momentu, w którym predykcje dokonywane przez model nie są zgodne z przyjętymi standardami i konieczne jest „wytrenowanie” kolejnej wersji. Można to dodatkowo połączyć z mechanizmem ciągłego trenowania, który automatycznie zbuduje i wytrenuje nowy model na podstawie najnowszych danych, a następnie zainicjuje jego wdrożenie na środowisko produkcyjne. 

Jak można zauważyć wprowadzenie praktyk MLOps do projektu, skutkuje zauważalnym wzrostem jakości wytwarzanego oprogramowania. Ten artykuł to już trzecia z pięciu części z cyklu tekstów o MLOps. Tematem dwóch pozostałych publikacji będą kolejno: monitoring wydajności modeli w środowisku produkcyjnym i bezpieczeństwo systemów ML, z przykładami potencjalnych cyberataków. 

Autor

Mateusz Szczęsny

MLOps Engineer

Potrzebujesz więcej informacji?

Skontaktuj się z opiekunem handlowym.

Joanna Bartoszek

Account Manager

534 255 826

Joanna.Bartoszek@billennium.com

Skontaktuj się przez LinkedIn

Skontaktuj się z nami

Chcesz wiedzieć, jak możemy pomóc Tobie? Porozmawiajmy!

Kontakt