Przygotuj się na operacje uczenia maszynowego (MLOps)

Kobieta Technologia

Istnieje wiele artykułów i książek na temat uczenia maszynowego. Większość z nich koncentruje się na budowaniu i trenowaniu modeli uczenia maszynowego. Jest jednak jeszcze jeden interesujący i niezwykle ważny element uczenia maszynowego: strona operacyjna.

Przyjrzyjmy się praktyce uczenia maszynowego (machine learning ops, MLOps). Uporanie się z przyjęciem AI/ML już teraz jest kluczową częścią przygotowań do nieuchronnego wzrostu znaczenia uczenia maszynowego w aplikacjach biznesowych w przyszłości.

Uczenie maszynowe

jest już obecne i pozostanie

na stałe

Pod maską uczenia maszynowego kryją się dobrze znane koncepcje i algorytmy. Uczenie maszynowe (ML), sztuczna inteligencja (AI) i głębokie uczenie (DL) już wywarły ogromny wpływ na branże, firmy i sposób, w jaki my, ludzie, wchodzimy w interakcje z maszynami. Badanie McKinsey „The State of AI in 2021” (Stan sztucznej inteligencji w 2021 r.) pokazuje, że 56% wszystkich respondentów (firm z różnych regionów i branż) deklaruje zastosowanie sztucznej inteligencji w co najmniej jednej funkcji. Najważniejsze przypadki użycia to optymalizacja obsługi, udoskonalanie produktów w oparciu o sztuczną inteligencję, automatyzacja centrów kontaktowych i optymalizacja funkcji produktów. Jeśli Twoja praca dotyka tych obszarów, prawdopodobnie już pracujesz z ML. Jeśli nie, to prawdopodobnie wkrótce zaczniesz.

Kilka produktów Cisco również korzysta z AI i ML. Cisco AI Network Analytics w Cisco DNA Center wykorzystuje technologie ML do wykrywania krytycznych problemów sieciowych, anomalii i trendów w celu szybszego rozwiązywania problemów. Produkty Cisco Webex mają funkcje oparte na technologii ML, takie jak tłumaczenie w czasie rzeczywistym i redukcja szumów tła. Oprogramowanie do analizy cyberbezpieczeństwa Cisco Secure Network Analytics (Stealthwatch) może wykrywać zaawansowane zagrożenia i reagować na nie, wykorzystując połączenie modelowania behawioralnego, wielowarstwowego uczenia maszynowego i globalnej inteligencji zagrożeń.

Potrzeba MLOps

Wprowadzając do swoich aplikacji funkcje oparte na technologii ML – niezależnie od tego, czy tworzysz je samodzielnie, czy wprowadzasz je za pośrednictwem produktu, który z nich korzysta – otwierasz drzwi dla kilku nowych elementów infrastruktury i musisz świadomie podchodzić do budowania swojej infrastruktury AI lub ML. Możesz potrzebować oprogramowania specyficznego dla danej dziedziny, nowych bibliotek i baz danych, być może nowego sprzętu, takiego jak procesory graficzne (GPU) itp. Niewiele funkcji opartych na ML to małe projekty, a pierwsze projekty ML w firmie zwykle wymagają nowej infrastruktury.

Zostało to omówione i zwizualizowane w popularnym artykule NeurIPS, Hidden Technical Debt in Machine Learning Systems, autorstwa Davida Sculleya i innych z 2015 roku. W artykule podkreślono, że ważne jest, aby mieć świadomość systemu ML jako całości, a nie skupiać się tylko na samym kodzie ML. Niespójne rurociągi danych, niezorganizowane zarządzanie modelami, brak historii pomiarów wydajności modeli oraz długi czas testowania nowo wprowadzonych algorytmów mogą prowadzić do wyższych kosztów i opóźnień podczas tworzenia aplikacji opartych na ML.

Badanie McKinsey zaleca ustanowienie kluczowych praktyk w całym cyklu życia ML w celu zwiększenia wydajności, szybkości, niezawodności i zmniejszenia ryzyka. Właśnie w tym miejscu pojawia się MLOps.

Patrząc na architekturę ML w sposób holistyczny, kod ML jest tylko niewielką częścią całego systemu.

Zrozumienie

MLOps

Tak jak podejście DevOps próbuje połączyć rozwój oprogramowania i operacje IT, tak operacje uczenia maszynowego (MLOps) – próbuje połączyć inżynierię danych i uczenia maszynowego z operacjami IT lub infrastrukturą.

MLOps może być postrzegany jako zestaw praktyk, które zwiększają efektywność

i przewidywalność w projektowaniu, budowaniu, wdrażaniu i utrzymaniu modeli uczenia maszynowego. Mając zdefiniowane ramy, możemy również zautomatyzować przepływy pracy związane z uczeniem maszynowym.

Oto jak można zwizualizować MLOps: Po określeniu celów biznesowych, pożądanej funkcjonalności i wymagań, ogólna architektura lub potok uczenia maszynowego może wyglądać następująco:

Ogólny rurociąg uczenia maszynowego typu end-to-end.

Infrastruktura

Cały cykl życia uczenia maszynowego wymaga skalowalnej, wydajnej i bezpiecznej infrastruktury, w której mogą współpracować poszczególne komponenty oprogramowania do uczenia maszynowego. Najważniejszą częścią tego procesu jest zapewnienie stabilnej podstawy dla potoków CI/CD procesów uczenia maszynowego wraz z ich kompletnym zestawem narzędzi, który obecnie jest wysoce heterogeniczny, jak widać poniżej.

Ogólnie rzecz biorąc, właściwe zarządzanie konfiguracją dla każdego komponentu, jak również konteneryzacja i orkiestracja, są kluczowymi elementami dla prowadzenia stabilnych i skalowalnych operacji. W przypadku danych wrażliwych bardzo ważne są mechanizmy kontroli dostępu, które uniemożliwiają dostęp nieupoważnionym użytkownikom. Należy uwzględnić systemy logowania i monitorowania, w których ważne dane telemetryczne z każdego komponentu mogą być przechowywane centralnie. Trzeba też zaplanować, gdzie rozmieścić komponenty: tylko w chmurze, hybrydowo lub w siedzibie firmy. Pomoże Ci to również określić, czy chcesz zainwestować w zakup własnych procesorów graficznych, czy też przenieść szkolenie modeli ML do chmury.

Przykłady komponentów infrastruktury ML to:

Pozyskiwanie danych

Wykorzystując stabilną infrastrukturę, proces rozwoju ML rozpoczyna się od najważniejszych komponentów: danych. Inżynier danych zazwyczaj musi zebrać i wyodrębnić wiele surowych danych z wielu źródeł danych i umieścić je w miejscu docelowym lub w jeziorze danych (np. w bazie danych). Te czynności składają się na potok danych. Dokładny przebieg procesu zależy od użytych komponentów: źródła danych muszą mieć ustandaryzowane interfejsy, aby można było pobierać dane i przesyłać je strumieniowo lub wstawiać partiami do jeziora danych. Dane mogą być również przetwarzane w ruchu za pomocą silników obliczeń strumieniowych.

Przykłady pozyskiwania danych obejmują:

Zarządzanie

danymi

Jeśli dane nie zostały jeszcze wstępnie przetworzone, muszą zostać oczyszczone, zweryfikowane, podzielone na segmenty i poddane dalszej analizie przed przejściem do etapu inżynierii cech, w którym z surowych danych wyodrębniane są ich właściwości. Ma to kluczowe znaczenie dla jakości przewidywanych wyników i wydajności modelu, a cechy muszą być dopasowane do wybranych algorytmów uczenia maszynowego. Są to zadania o krytycznym znaczeniu, rzadko szybkie i łatwe. Według badania przeprowadzonego przez platformę data science Anaconda, naukowcy poświęcają około 45% swojego czasu na zadania związane z zarządzaniem danymi. Na budowanie, szkolenie i ewaluację modeli poświęcają zaledwie około 22% czasu.

Przetwarzanie danych powinno być w jak największym stopniu zautomatyzowane. Powinna istnieć wystarczająca liczba scentralizowanych narzędzi do wersjonowania danych, etykietowania danych i inżynierii cech.

Przykłady zarządzania danymi:

Rozwój modelu ML

Kolejnym krokiem jest budowa, szkolenie i ewaluacja modelu, przed wypuszczeniem go na produkcję. Kluczowe znaczenie ma automatyzacja i standaryzacja również tego etapu. Najlepszym rozwiązaniem jest odpowiedni system zarządzania modelami lub rejestr, który zawiera informacje o wersji modelu, jego wydajności i innych parametrach. Bardzo ważne jest śledzenie metadanych każdego wytrenowanego i przetestowanego modelu ML, aby inżynierowie ML mogli lepiej testować i oceniać kod ML.

szybko.

Ważne jest także systematyczne podejście, ponieważ dane będą się zmieniać z czasem. W trakcie tego procesu może zaistnieć konieczność dostosowania wcześniej wybranych cech danych, aby były zgodne z modelem ML. W rezultacie trzeba będzie zaktualizować cechy danych i modele ML, co ponownie spowoduje ponowne uruchomienie procesu. Dlatego celem nadrzędnym jest uzyskanie informacji zwrotnej o wpływie zmian w kodzie bez konieczności wykonywania wielu czynności ręcznie.

Przykłady opracowania modelu ML:

Produkcja

Ostatnim krokiem w cyklu jest wdrożenie wytrenowanego modelu ML, gdzie następuje wnioskowanie. Proces ten dostarczy pożądanych danych wyjściowych do rozwiązania problemu, który został określony w celach biznesowych zdefiniowanych na początku projektu.

Sposób wdrożenia i wykorzystania modelu ML w produkcji zależy od konkretnej implementacji. Popularną metodą jest stworzenie wokół niego usługi sieciowej. Na tym etapie bardzo ważne jest zautomatyzowanie procesu za pomocą odpowiedniego potoku CD. Ponadto, kluczowe jest śledzenie wydajności modelu na produkcji oraz jego wykorzystania zasobów. Należy także zaprojektować równoważenie obciążenia dla instalacji produkcyjnej aplikacji.

Przykłady produkcyjne ML:

Co dalej?

W idealnej sytuacji projekt będzie wykorzystywał połączony zestaw narzędzi lub ramy dla całego cyklu życia uczenia maszynowego. To, jak wyglądają te ramy, zależy od wymagań biznesowych, wielkości aplikacji oraz dojrzałości projektów opartych na uczeniu maszynowym wykorzystywanych przez aplikację. Zobacz „Kto potrzebuje MLOps: Co chcą osiągnąć naukowcy zajmujący się danymi i jak MLOps może im pomóc?”.

W moim następnym poście omówię zestaw narzędzi do uczenia maszynowego Kubeflow, który łączy w sobie wiele praktyk MLOps. Jest to dobry punkt wyjścia, aby dowiedzieć się więcej o MLOps, zwłaszcza jeśli już korzystasz z Kubernetes.

W międzyczasie zachęcam do zapoznania się z zasobami, do których odsyła ten artykuł, a także z naszym materiałem „Using Cisco for artificial intelligence and machine learning” oraz przewodnikiem AppDynamics „What is AIOps?

Chętnie dowiemy się, co o tym myślisz. Zadaj pytanie lub zostaw komentarz poniżej.
Bądź na bieżąco z Cisco DevNet w serwisach społecznościowych!

LinkedIn | Twitter @CiscoDevNet | Facebook | Developer Video Channel

Share

:

Czytaj dalej: https://blogs.cisco.com/developer/readyformlops01

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.