Pojęcia — operacje uczenia maszynowego (MLOps) dla przepływów pracy sztucznej inteligencji i uczenia maszynowego

Dotyczy: ✔️ AKS Automatic AKS Standard ✔️

Z tego artykułu dowiesz się więcej o operacjach uczenia maszynowego (MLOps), w tym o typach praktyk i narzędziach oraz o tym, jak może uprościć i przyspieszyć przepływy pracy sztucznej inteligencji i uczenia maszynowego w usłudze Azure Kubernetes Service (AKS).

Tryby klastra AKS dla MLOps

Usługa AKS obsługuje dwa tryby klastra: AKS Automatic i AKS Standard. Wybierz AKS Automatic, jeśli chcesz korzystać z bazowej konfiguracji gotowej do wdrożenia produkcyjnego przy mniejszym nakładzie pracy związanej z bieżącym zarządzaniem platformą. Wybierz usługę AKS Standard, jeśli potrzebujesz dokładniejszej kontroli nad infrastrukturą klastra i konfiguracją platformy.

Pojęcia dotyczące cyklu życia metodyki MLOps w tym artykule dotyczą obu trybów. Jednak odpowiedzialność za implementację różni się w zależności od trybu: usługa AKS Automatic zapewnia więcej wstępnie skonfigurowanych ustawień domyślnych, podczas gdy usługa AKS Standard zwykle wymaga bardziej wyraźnej konfiguracji platformy i własności cyklu życia.

Area Automatyczne usługi AKS AKS Standard
Konfiguracja klastra bazowego Więcej wstępnie skonfigurowanych ustawień domyślnych Bardziej jawne opcje konfiguracji
Operacje puli węzłów systemowych Więcej zachowań zarządzanych przez usługę Więcej zachowań zarządzanych przez operatorów
Mechanizmy kontroli punktu odniesienia zabezpieczeń Kilka kontrolek jest wstępnie skonfigurowanych w typowych scenariuszach Kontrolki są często włączone i obsługiwane przez operatory
Punkt odniesienia sieci Domyślne ustawienia dla typowych wzorców Szersza elastyczność konfiguracji sieci
Operacje i uaktualnienia Bardziej zarządzane zachowanie operacyjne Więcej zachowań sterowanych przez operatora
Fokus implementacji metodyki MLOps Weryfikowanie, zarządzanie i dostrajanie wartości domyślnych Projektowanie i konfigurowanie kontrolek platformy

Co to jest MLOps?

Operacje uczenia maszynowego (MLOps) obejmują praktyki, które ułatwiają współpracę między analitykami danych, operacjami IT i uczestnikami biznesowymi, zapewniając, że modele uczenia maszynowego są opracowywane, wdrażane i utrzymywane wydajnie. Metodyka MLOps stosuje zasady metodyki DevOps do projektów uczenia maszynowego, które mają na celu zautomatyzowanie i usprawnienie kompleksowego cyklu życia uczenia maszynowego. Ten cykl życia obejmuje trenowanie, pakowanie, weryfikowanie, wdrażanie, monitorowanie i ponowne trenowanie modeli.

Metodyka MLOps wymaga efektywnej współpracy wielu ról i narzędzi. Analitycy danych koncentrują się na zadaniach związanych z trenowaniem modelu, który jest określany jako pętla wewnętrzna. Inżynierowie uczenia maszynowego i zespoły ds. operacji IT obsługują pętlę zewnętrzną, w której stosują rozwiązania DevOps do tworzenia pakietów, weryfikowania, wdrażania i monitorowania modeli. Gdy model wymaga precyzyjnego dostrajania lub ponownego trenowania, proces wraca do pętli wewnętrznej.

Te etapy cyklu życia są takie same we wszystkich trybach klastra AKS. Główna różnica polega na tym, w jakim zakresie Twoje zespoły bezpośrednio zarządzają konfiguracją platformy i konfiguracją operacyjną.

Potok MLOps

Twój pipeline MLOps może wykorzystywać różne narzędzia i mikrousługi, które są wdrażane sekwencyjnie lub równolegle. Poniżej przedstawiono przykłady kluczowych składników potoku, które korzystają z implementacji następujących najlepszych metod postępowania w celu zmniejszenia kosztów ogólnych i przyspieszenia iteracji:

  • Magazyn danych bez struktury dla nowych danych przepływających do aplikacji
  • Wektorowa baza danych do przechowywania i wykonywania zapytań o dane ustrukturyzowane, wstępnie przetworzone
  • Struktura pozyskiwania i indeksowania danych
  • Przepływy pracy związane z pozyskiwaniem wektorów i/lub ponownym trenowaniem modelu
  • Zbieranie metryk i narzędzia do zgłaszania alertów (śledzenie wydajności modelu, ilość pozyskanych danych itp.)
  • Narzędzia do zarządzania cyklem życia

Te składniki potoku mają zastosowanie zarówno w usłudze AKS Automatic, jak i AKS Standard. Wybór trybu wpływa przede wszystkim na granice odpowiedzialności za platformę, a nie na przeznaczenie potoku.

Metodyka DevOps i metodyka MLOps

DevOps to kombinacja narzędzi i rozwiązań, które umożliwiają tworzenie niezawodnych i powtarzalnych aplikacji. Celem korzystania z metodyki DevOps jest szybkie dostarczanie wartości użytkownikom końcowym. Tworzenie, wdrażanie i monitorowanie niezawodnych i powtarzalnych modeli w celu dostarczania wartości użytkownikom końcowym jest głównym celem metodyki MLOps.

Istnieją trzy procesy niezbędne dla metodyki MLOps:

  • Obciążenia uczenia maszynowego, dla których jest odpowiedzialny analityk danych, w tym eksploracyjna analiza danych (EDA), inżynieria cech oraz trenowanie i dostrajanie modeli.
  • Rozwiązania programistyczne, w tym planowanie, opracowywanie, testowanie i pakowanie modelu do wdrożenia.
  • Aspekty operacyjne wdrażania i utrzymywania modelu w środowisku produkcyjnym, w tym wydawania, konfigurowania zasobów i monitorowania modelu.

W usłudze AKS Automatic zespoły często poświęcają mniej wysiłku na wspólną konfigurację platformy i więcej na orkiestrację zasad, jakości i cyklu życia modelu. W usłudze AKS Standard zespoły zazwyczaj wykonują bardziej jawne projektowanie i konfigurację platformy.

Zasady metodyki DevOps stosowane do metodyki MLOps

Metodyka MLOps wykorzystuje kilka zasad z metodyki DevOps w celu zwiększenia cyklu życia uczenia maszynowego, takich jak automatyzacja, ciągła integracja i ciągłe dostarczanie (CI/CD), kontrola źródła, planowanie Agile i infrastruktura jako kod (IaC).

Automation

Automatyzując zadania, można zmniejszyć błędy ręczne, zwiększyć wydajność i zapewnić spójność w całym cyklu życia uczenia maszynowego. Automatyzację można zastosować do różnych etapów, w tym do zbierania danych, trenowania modelu, wdrażania i monitorowania. Dzięki automatyzacji można również stosować proaktywne środki w procesie sztucznej inteligencji, aby zapewnić zgodność danych z zasadami organizacji.

Na przykład pipeline może zautomatyzować:

  • Dostrajanie/ponowne trenowanie modelu w regularnych odstępach czasu lub gdy w aplikacji jest zbierana pewna ilość nowych danych.
  • Wykrywanie obniżenia wydajności w celu rozpoczęcia precyzyjnego dostrajania lub ponownego trenowania w innym podzestawie danych.
  • Skanowanie Common Vulnerabilities and Exposures (CVE) w bazowych obrazach kontenerów pobranych z zewnętrznych rejestrów kontenerów w celu zapewnienia bezpiecznych praktyk w zakresie bezpieczeństwa.

W obu trybach klastra AKS oprócz wyzwalaczy jakości modelu uwzględnij automatyzację walidacji zasad, wykrywania dryfu konfiguracji i nadzoru nad wydaniami.

Ciągła integracja (CI)

Ciągła integracja obejmuje tworzenie i weryfikowanie aspektów procesu tworzenia modelu. Celem CI (ciągłej integracji) jest utworzenie kodu oraz zweryfikowanie jego jakości i jakości modelu przed wdrożeniem. Obejmuje to testowanie w wielu przykładowych zestawach danych w celu zapewnienia, że model działa zgodnie z oczekiwaniami i spełnia standardy jakości.

W metodyce MLOps ciągła integracja może obejmować:

  • Refaktoryzacja eksploracyjnego kodu w notesach Jupyter na skrypty w języku Python lub R.
  • Weryfikowanie nowych danych wejściowych pod kątem brakujących wartości lub błędów.
  • Testowanie jednostkowe i testowanie integracyjne w ciągu end-to-end.

Aby przeprowadzić testy lintingu i jednostkowe, można użyć narzędzi automatyzacji, takich jak Azure Pipelines w usłudze Azure DevOps lub GitHub Actions.

W usłudze AKS Automatic CI często weryfikuje artefakty względem oczekiwanych domyślnych ustawień platformy. W usłudze AKS Standard CI często sprawdza założenia w odniesieniu do jawnie skonfigurowanych ustawień platformy.

Ciągłe dostarczanie (CD)

Ciągłe dostarczanie obejmuje kroki niezbędne do bezpiecznego wdrożenia modelu w środowisku produkcyjnym. Pierwszym krokiem jest spakować i wdrożyć model w środowiskach przedprodukcyjnych, takich jak środowiska deweloperskie i testowe. Przenośność parametrów, hiperparametrów i innych artefaktów modelu jest ważnym aspektem utrzymania podczas promowania kodu za pośrednictwem tych środowisk. Ta przenośność jest szczególnie ważna, jeśli chodzi o duże modele językowe (LLM) i stabilne modele dyfuzji. Gdy model przejdzie testy jednostkowe i testy kontroli jakości (QA), możesz zatwierdzić go do wdrożenia w środowisku produkcyjnym.

Praktyki promowania są podobne w obu trybach klastra AKS, ale potoki AKS w warstwie Standard często obejmują bardziej szczegółową walidację związaną z infrastrukturą przed wydaniem.

Kontrola źródła

Kontrola źródła lub kontrola wersji jest niezbędna do zarządzania zmianami w kodzie i modelach. W systemie uczenia maszynowego odnosi się to do przechowywania wersji danych, przechowywania wersji kodu i przechowywania wersji modelu, co pozwala zespołom funkcjonalnym na efektywną współpracę i śledzenie zmian w czasie. Korzystanie z systemu kontroli źródła opartego na usłudze Git, takiego jak usługa Azure Repos w usłudze Azure DevOps lub repozytorium GitHub, umożliwia programowe utrzymywanie historii zmian, przywracanie poprzednich wersji i zarządzanie gałęziami dla różnych eksperymentów.

Planowanie Agile

Planowanie agile obejmuje izolowanie pracy w sprintach, które są krótkimi okresami na wykonanie określonych zadań. Takie podejście umożliwia zespołom szybkie dostosowanie się do zmian i dostarczanie przyrostowych ulepszeń modelu. Trenowanie modelu może być ciągłym procesem, a planowanie Agile może pomóc w zakresie projektu i umożliwić lepsze dopasowanie zespołu.

Do zarządzania planowaniem agile można używać narzędzi takich jak Azure Boards w Azure DevOps lub GitHub issues.

Infrastruktura jako kod (IaC)

Infrastruktura jest używana jako kod, aby powtarzać i automatyzować infrastrukturę wymaganą do trenowania, wdrażania i obsługi modeli. W systemie uczenia maszynowego IaC pomaga uprościć i zdefiniować odpowiednie zasoby platformy Azure potrzebne dla określonego typu zadania w kodzie, a kod jest przechowywany w repozytorium. Dzięki temu można kontrolować wersję infrastruktury i wprowadzać zmiany w celu optymalizacji zasobów, efektywności kosztów itp. w razie potrzeby.

W usłudze AKS Automatic usługa IaC często podkreśla definicje obciążeń, mechanizmy kontroli ładu i spójność środowiska. W modelu AKS Standard IaC często obejmuje szerszy zakres jawnej konfiguracji klastra i platformy.

Zapoznaj się z następującymi artykułami, aby dowiedzieć się więcej na temat najlepszych rozwiązań dotyczących metodyki MLOps w inteligentnych aplikacjach w usłudze AKS: