MLOps: DevOps w świecie Machine Learning

W 2018 roku w kręgach profesjonalnych oraz na tematycznych konferencjach poświęconych AI pojawiło się pojęcie MLOps, które szybko zyskało popularność w branży i obecnie rozwija się jako samodzielny kierunek. W przyszłości MLOps może stać się jednym z najbardziej poszukiwanych obszarów w IT. Czym właściwie jest MLOps i jak to działa, przyjrzymy się poniżej.

MLOps: DevOps w świecie Machine Learning

Czym jest MLOps

MLOps (połączenie technologii i procesów uczenia maszynowego oraz metod wdrażania opracowanych modeli w procesy biznesowe) to nowy sposób współpracy między przedstawicielami biznesu, naukowcami, matematykami, specjalistami w dziedzinie uczenia maszynowego oraz inżynierami IT przy tworzeniu systemów sztucznej inteligencji.

Innymi słowy, jest to sposób przekształcania metod i technologii uczenia maszynowego w użyteczne narzędzie do rozwiązywania problemów biznesowych. 

Należy zrozumieć, że łańcuch procesów produkcyjnych zaczyna się znacznie przed opracowaniem modelu. Jego pierwszym krokiem jest określenie problemu biznesowego, hipotezy dotyczącej wartości, jaką można wydobyć z danych, oraz pomysłu biznesowego na jej zastosowanie. 

Sam pomysł MLOps powstał jako analogia pojęcia DevOps, odnosząc się do modeli i technologii uczenia maszynowego. DevOps to podejście do tworzenia oprogramowania, które pozwala zwiększyć szybkość wdrażania poszczególnych zmian, zachowując elastyczność i niezawodność dzięki szeregowi metod, w tym ciągłemu rozwojowi, podziale funkcji na szereg niezależnych mikrousług, zautomatyzowanemu testowaniu i wdrażaniu poszczególnych zmian, globalnemu monitorowaniu wydajności oraz systemowi szybkiego reagowania na wykryte awarie itd. 

DevOps zdefiniował cykl życia oprogramowania, a w społeczności specjalistów pojawił się pomysł zastosowania tej samej metodologii w kontekście danych wielkich. DataOps to próba dostosowania i rozszerzenia metodologii w uwzględnieniem specyfiki przechowywania, przesyłania i przetwarzania dużych zbiorów danych na różnorodnych współdziałających ze sobą platformach.
  
W miarę pojawiania się krytycznej masy modeli uczenia maszynowego wdrożonych w procesy biznesowe, zaobserwowano wyraźne podobieństwo między cyklem życia modeli uczenia maszynowego a cyklem życia oprogramowania. Różnica polega jedynie na tym, że algorytmy modeli są tworzone za pomocą narzędzi i metod uczenia maszynowego. W związku z tym naturalnie pojawiła się idea zastosowania i dostosowania znanych podejść do rozwoju oprogramowania dla modeli uczenia maszynowego. Z tego względu w cyklu życia modeli uczenia maszynowego można wyróżnić następujące kluczowe etapy:

  • określenie pomysłu biznesowego;
  • szkolenie modelu;
  • testowanie i wdrażanie modelu w procesie biznesowym;
  • eksploatacja modelu.

Gdy w trakcie eksploatacji pojawia się potrzeba zmiany lub dalszego szkolenia modelu na nowych danych, cykl rozpoczyna się od nowa — model jest udoskonalany, testowany i wdrażana jest nowa wersja.

Dygresja. Dlaczego dalsze szkolenie, a nie ponowne szkolenie? Termin „ponowne szkolenie modelu” ma podwójne znaczenie: wśród specjalistów oznacza defekt modelu, gdy model dobrze przewiduje, faktycznie powtarza prognozowany parametr na zbiorze treningowym, ale znacznie gorzej działa na zewnętrznym zbiorze danych. Oczywiście, taki model jest wadliwy, ponieważ ten defekt uniemożliwia jego zastosowanie.

W tym cyklu życia sensowne wydaje się użycie narzędzi DevOps: zautomatyzowane testowanie, wdrażanie i monitorowanie, przedstawienie obliczeń modeli w formie oddzielnych mikrousług. Istnieje jednak szereg cech, które uniemożliwiają bezpośrednie zastosowanie tych narzędzi bez dodatkowego wsparcia z zakresu ML.

MLOps: DevOps w świecie Machine Learning

Jak sprawić, by modele działały i przynosiły zyski

Jako przykład, na którym zaprezentujemy zastosowanie podejścia MLOps, weźmiemy klasyczny przypadek automatyzacji czatu wsparcia dla produktów bankowych (lub innych). Zwykle proces wsparcia przez czat wygląda następująco: klient wpisuje wiadomość z pytaniem, a następnie otrzymuje odpowiedź specjalisty w ramach wcześniej zdefiniowanego drzewa dialogowego. Automatyzacja takiego czatu zazwyczaj opiera się na zestawach reguł określonych przez ekspertów, co jest czasochłonne w opracowywaniu i utrzymaniu. Skuteczność takiej automatyzacji, w zależności od stopnia skomplikowania zadania, może wynosić 20–30%. Oczywiście pojawia się pomysł, że bardziej opłacalne jest wprowadzenie modułu sztucznej inteligencji — modelu opracowanego przy użyciu uczenia maszynowego, który:

  • jest w stanie obsłużyć bez udziału operatora większą liczbę zapytań (w zależności od tematu, w niektórych przypadkach efektywność może osiągnąć 70–80%);
  • lepiej dostosowuje się do niestandardowych sformułowań w dialogu — potrafi określić intencję, rzeczywiste pragnienie użytkownika przy nieprecyzyjnie sformułowanym zapytaniu;
  • potrafi określić, kiedy odpowiedź modelu jest adekwatna, a kiedy w przypadku ‚świadomości‘ tej odpowiedzi pojawiają się wątpliwości i należy zadać dodatkowe pytanie wyjaśniające lub przełączyć się na operatora;
  • może być automatycznie doszkalana (zamiast grupy programistów, którzy nieustannie dostosowują i korygują scenariusze odpowiedzi, model doszkalany jest przez specjalistę Data Science, korzystającego z odpowiednich bibliotek uczenia maszynowego). 

MLOps: DevOps w świecie Machine Learning

Jak sprawić, by taki zaawansowany model działał? 

Jak w przypadku rozwiązywania jakiegokolwiek innego problemu, zanim przystąpimy do opracowywania takiego modułu, należy najpierw określić proces biznesowy i formalnie opisać konkretne zadanie, które zamierzamy rozwiązać przy użyciu metody uczenia maszynowego. W tym punkcie zaczyna się proces operacjonalizacji, określany skrótem Ops. 

Następnie specjalista ds. Data Science w współpracy z inżynierem danych sprawdza dostępność oraz wystarczalność danych, a także hipotezę biznesową o funkcjonalności pomysłu na biznes, opracowując prototyp modelu i sprawdzając jego efektywność. Dopiero po potwierdzeniu przez biznes można rozpocząć przejście od opracowania modelu do jego integracji z systemami, które realizują konkretne procesy biznesowe. Całościowe planowanie wdrożenia, głębokie zrozumienie na każdym etapie, jak model będzie używany i jaki efekt ekonomiczny przyniesie, jest fundamentalnym elementem w procesach wdrażania podejść MLOps w technologiczny krajobraz firmy.

Wraz z rozwojem technologii AI lawinowo zwiększa się liczba i różnorodność zadań, które można rozwiązać za pomocą uczenia maszynowego. Każdy taki proces biznesowy to oszczędność dla firmy dzięki automatyzacji pracy pracowników na masowych stanowiskach (centrum obsługi klienta, weryfikacja i sortowanie dokumentów itp.), to rozszerzenie bazy klientów poprzez dodanie nowych atrakcyjnych i wygodnych funkcji, oszczędności dzięki optymalnemu wykorzystaniu zasobów i wiele innych. Ostatecznie każdy proces jest ukierunkowany na tworzenie wartości i, co za tym idzie, powinien przynosić określony efekt ekonomiczny. Tutaj niezwykle ważne jest jasno sformułowanie pomysłu biznesowego i oszacowanie planowanych zysków z wdrożenia modelu w ramach ogólnej struktury tworzenia wartości firmy. Zdarzają się sytuacje, gdy wdrożenie modelu nie przynosi rezultatów, a czas poświęcony przez specjalistów ds. uczenia maszynowego jest znacznie droższy niż miejsce pracy operatora wykonującego to zadanie. Właśnie dlatego takie przypadki należy starać się wykrywać na wczesnych etapach tworzenia systemów AI.

W związku z tym zyski z modelu zaczynają się pojawiać dopiero wtedy, gdy w procesie MLOps właściwie sformułowano zadanie biznesowe, określono priorytety i na wczesnych etapach rozwoju opracowano proces wdrożenia modelu do systemu.

Nowy proces – nowe wyzwania

Wyjątkowe odpowiedzi na kluczowe pytania biznesowe dotyczące zastosowania modeli ML w rozwiązywaniu problemów oraz ogólnych kwestii zaufania do AI to jedno z głównych wyzwań w procesie rozwoju i wdrażania podejść MLOps. Początkowo firmy sceptycznie podchodzą do wdrożenia uczenia maszynowego w swoich procesach — trudno polegać na modelach w miejscach, gdzie zazwyczaj pracowali ludzie. Dla firm programy te wydają się być „czarną skrzynką”, której trafność odpowiedzi należy dopiero udowodnić. Dodatkowo w sektorze bankowym, w branży telekomunikacyjnej i innych obszarach istnieją surowe wymagania ze strony organów regulacyjnych. Wszystkie systemy i algorytmy wdrożone w procesach bankowych są poddawane audytowi. Aby rozwiązać ten problem i udowodnić firmom oraz regulatorom zasadność i poprawność odpowiedzi sztucznej inteligencji, wraz z modelem wdrażane są środki monitorujące. Ponadto istnieje procedura niezależnej walidacji, która jest obowiązkowa dla modeli regulacyjnych i spełnia wymagania NBP. Niezależna grupa ekspertów przeprowadza audyt wyników uzyskanych przez model, uwzględniając dane wejściowe.

Drugie wyzwanie to ocena i uwzględnienie ryzyka modelowego przy wdrażaniu modeli uczenia maszynowego. Skoro nawet człowiek nie może z absolutną pewnością odpowiedzieć na pytanie, czy sukienka była biała, czy niebieska, to sztuczna inteligencja również ma prawo do błędu. Należy także pamiętać, że dane mogą się z czasem zmieniać, a modele muszą być na nowo trenowane, aby dostarczać wystarczająco dokładne wyniki. Aby procesy biznesowe nie ucierpiały, konieczne jest zarządzanie ryzykiem modelowym i monitorowanie pracy modelu, regularnie go przetrenowując na nowych danych.

MLOps: DevOps w świecie Machine Learning

Jednak po początkowej fazie nieufności pojawia się efekt odwrotny. Im więcej modeli skutecznie wdrażanych jest w procesy, tym większy apetyt na wykorzystanie sztucznej inteligencji rozwija się w firmach — pojawiają się nowe zadania, które można rozwiązać za pomocą metod uczenia maszynowego. Każde zadanie uruchamia cały proces wymagający określonych kompetencji:

  • inżynierowie danych przygotowują i przetwarzają dane;
  • naukowcy danych stosują narzędzia uczenia maszynowego i opracowują model;
  • IT wprowadza model do systemu;
  • Inżynier ML określa, jak prawidłowo zintegrować ten model z procesem oraz jakie narzędzia IT wykorzystać w zależności od wymagań dotyczących trybu zastosowania modelu, biorąc pod uwagę takie aspekty jak ilość zapytań, czas reakcji itp. 
  • Architekt ML projektuje, jak fizycznie można zrealizować produkt oprogramowania w systemie przemysłowym.

Cały cykl wymaga dużej liczby wysoko wykwalifikowanych specjalistów. Na pewnym etapie rozwoju i stopnia wdrożenia modeli ML w procesy biznesowe okazuje się, że liniowe zwiększanie liczby specjalistów proporcjonalnie do wzrostu liczby zadań staje się kosztowne i nieefektywne. Dlatego pojawia się kwestia automatyzacji procesu MLOps - określenie kilku standardowych klas zadań uczenia maszynowego, opracowanie typowych pipeline'ów przetwarzania danych i dalszego uczenia modeli. W idealnym scenariuszu do rozwiązywania takich zadań potrzebni są profesjonaliści, którzy równie dobrze posługują się kompetencjami na styku Big Data, Data Science, DevOps i IT. Dlatego największym problemem w branży Data Science i największym wyzwaniem w organizowaniu procesów MLOps jest brak takiej kompetencji na obecnym rynku szkoleń. Specjaliści spełniający te wymagania w chwili obecnej są rzadkością na rynku pracy i są cenni jak złoto.

O kompetencjach

Teoretycznie wszystkie zadania MLOps można rozwiązywać klasycznymi narzędziami DevOps, nie sięgając po specjalistyczne rozszerzenie modelu ról. Wtedy, jak już wcześniej zauważyliśmy, data scientist musi być nie tylko matematykiem i specjalistą w analizie danych, ale także guru całego pipeline'u - na jego barkach spoczywa opracowanie architektury, programowanie modeli w kilku językach w zależności od architektury, przygotowanie vitryny danych i wdrożenie samej aplikacji. Jednak stworzenie technologicznego zaplecza, realizowanego w ciągłym procesie MLOps, zajmuje do 80% nakładów pracy, co oznacza, że wykwalifikowany matematyk, który jest dobrym Data Scientist, tylko 20% czasu poświęca swojej specjalności. Dlatego wydzielenie ról specjalistów zajmujących się procesem wdrażania modeli uczenia maszynowego staje się niezbędne. 

Stopień rozdzielenia ról zależy od skali przedsiębiorstwa. Inna sprawa, gdy w startupie jedna osoba pełni rolę jednocześnie inżyniera, architekta i DevOps, a inna, gdy w dużym przedsiębiorstwie wszystkie procesy rozwoju modeli koncentrują się w rękach kilku wysoko wykwalifikowanych specjalistów z zakresu Data Science, podczas gdy programista lub specjalista ds. baz danych – bardziej powszechne i tańsze kompetencje na rynku pracy – może przejąć większość rutynowych zadań.

W związku z tym, gdzie przebiega granica w wyborze specjalistów do zapewnienia procesu MLOps i jak zorganizowany jest proces operacjonalizacji rozwijanych modeli, bezpośrednio wpływa na szybkość i jakość tworzonych modeli, wydajność zespołu i mikroklimat w nim.

Co już teraz zrealizowaliśmy jako nasz zespół

Niedawno zaczęliśmy budować strukturę kompetencji i procesy MLOps. Już teraz w fazie testów MVP znajdują się nasze projekty dotyczące zarządzania cyklem życia modeli oraz wykorzystywania modeli jako usługi.

Określiliśmy również optymalną strukturę kompetencji oraz organizacyjną strukturę współpracy między wszystkimi uczestnikami procesu dla dużego przedsiębiorstwa. Zorganizowaliśmy zespoły Agile, które zajmują się zadaniami dla całego spektrum klientów biznesowych, a także ustanowiliśmy proces współpracy z zespołami projektowymi odpowiedzialnymi za tworzenie platform i infrastruktury, która stanowi fundament budowanego MLOps.

Pytania na przyszłość

MLOps to rozwijająca się dziedzina, która boryka się z brakiem kompetencji i w przyszłości nabierze tempa. A na razie najlepiej jest czerpać z doświadczeń i praktyk DevOps. Głównym celem MLOps jest bardziej efektywne wykorzystanie modeli ML do rozwiązywania problemów biznesowych. Jednak pojawia się wiele pytań:

  • Jak skrócić czas potrzebny na wprowadzenie modeli do produkcji?
  • Jak zmniejszyć biurokratyczne tarcia między zespołami o różnych kompetencjach i zwiększyć ukierunkowanie na współpracę?
  • Jak śledzić modele, zarządzać wersjami i organizować efektywny monitoring?
  • Jak stworzyć rzeczywiście cykliczny cykl życia dla nowoczesnego modelu ML?
  • Jak standaryzować proces uczenia maszynowego?

Odpowiedzi na te pytania w dużej mierze zdetermują, jak szybko MLOps w pełni ujawni swój potencjał.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster