Metodyki MLOps i GenAIOps dla obciążeń sztucznej inteligencji na platformie Azure
Operacje obciążeń sztucznej inteligencji są skoncentrowane na curation danych i użyciu tych danych. Operacje zapewniają wydajność w osiąganiu i utrzymywaniu jakości, niezawodności, zabezpieczeń, etyki i innych standardów, które są priorytetem dla obciążenia.
Zadania obciążeń można podzielić na trzy główne obszary: tworzenie aplikacji, obsługa danych i zarządzanie modelami sztucznej inteligencji. Każda kategoria powinna przyjąć sprawdzone w branży metodologie operacyjne, takie jak DevOps, DataOps, MLOps i GenAIOps.
Działania metodyki DevOps obejmują całe zarządzanie cyklem życia tworzenia aplikacji za pośrednictwem zautomatyzowanych potoków ciągłej integracji i ciągłego wdrażania (CI/CD) oraz monitorowania. Jednak w przypadku obciążeń sztucznej inteligencji potok danych jest jednym z podstawowych składników. Metodyka DataOps, specjalizacja metodyki DevOps, koncentruje się na zarządzaniu cyklem życia danych przez usprawnianie procesów, takich jak wyodrębnianie, przekształcanie i ładowanie danych (ETL/ELT). Praktycy metodyki DataOps zwykle mierzą wydajność przepływu danych i skuteczność czyszczenia danych i monitorują potok pod kątem anomalii.
Obciążenia sztucznej inteligencji są z natury nieokreślone. Wiele modeli sztucznej inteligencji jest podatnych na generowanie różnych odpowiedzi na to samo zapytanie podczas wnioskowania. Te obciążenia wymagają procesów, które mogą zarządzać i dostosowywać się do nieprzewidywalności danych wyjściowych sztucznej inteligencji. Metodyka DataOps rozszerza metodyki MLOps, która operacjonalizuje przepływy pracy uczenia maszynowego na potrzeby trenowania i testowania modelu. GenAIOps, wyspecjalizowany podzbiór metodyki MLOps, jest przeznaczony do generowania rozwiązań sztucznej inteligencji. Obejmuje to zadania, takie jak odnajdywanie modeli i udoskonalanie wstępnie wytrenowanych modeli przy użyciu wzbogaconych danych.
Działania operacyjne często nakładają się, a różne metodologie mają zastosowanie do różnych stopni. Na przykład w dyskryminacyjnej sztucznej inteligencji metodyka DataOps odgrywa ważną rolę, podczas gdy działania metodyki DevOps są mniej widoczne. Z drugiej strony, w generowaniu sztucznej inteligencji doskonałość operacyjna opiera się bardziej na metodyce DevOps niż DataOps.
Niezależnie od tego, ogólnym celem jest dostarczanie możliwości z wydajnymi operacjami w całym cyklu projektowania. Oczekiwane wyniki to:
- Powtarzalne procesy ze spójnymi wynikami.
- Trwała dokładność modeli w czasie.
- Skuteczny nadzór, który minimalizuje ryzyko.
- Procesy zarządzania zmianami w celu dostosowania do dryfu modelu.
Automatyzacja i monitorowanie to kluczowe strategie operacyjne, które umożliwiają osiągnięcie tych celów.
Należy również ustanowić standardowe procesy dla składników sztucznej inteligencji, rutynowych, nieplanowanych i awaryjnych oraz mieć odpowiednie mechanizmy śledzenia. Bez tych procesów ryzykujesz:
- Powtarzające się błędy i niereproducibility w przetwarzaniu danych, hostowaniu modelu, zarządzaniu danymi uziemienia i innych zadaniach.
- Niska jakość lub nieaktualne dane używane do trenowania i uściślenia modelu.
- Wpływanie na zaufanie użytkowników końcowych do systemu, w najgorszym przypadku prowadzi do problemów z przepisami, zgodnością lub zabezpieczeniami.
Należy zaimplementować ustanowione procesy z odpowiednim zestawem narzędzi. Wyspecjalizowane narzędzia są dostępne do zarządzania przepływami pracy sztucznej inteligencji/uczenia maszynowego w różnych środowiskach.
Ten artykuł koncentruje się na strategii projektowania operacji i zawiera zalecenia dotyczące narzędzi.
Zalecenia
Poniżej przedstawiono podsumowanie zaleceń przedstawionych w tym artykule.
Zalecenie | opis |
---|---|
Projektowanie wydajnego cyklu życia operacji obciążeń. | Na podstawie składników obciążenia sztucznej inteligencji różne etapy operacyjne będą miały zastosowanie do jego cyklu życia. Ważne jest, aby zrozumieć najlepsze rozwiązania dotyczące danego scenariusza i narzędzia, które są dostępne do ich zaimplementowania. Pośmiń czas na zapoznanie się z kluczowymi zaleceniami dotyczącymi wszystkich składników obciążenia i zaimplementowanie ich. ▪ DataOps ▪ Metodyka MLOps ▪ GenAIOps ▪ Monitoring |
Automatyzuj wszystko. | Automatyzacja zapewnia powtarzalność i wydajność w cyklu życia obciążenia. Chociaż procesy DevOps są kluczowym współautorem tego procesu, należy wykonać dodatkowe czynności, które należy wykonać, aby efektywnie kompilować, testować, weryfikować i wdrażać modele. ▪ Automatyzacja |
W miarę możliwości korzystaj z potoków wdrażania. | Potoki wdrażania mogą ułatwić dostarczanie powtarzalnych wdrożeń infrastruktury lub ciągłe integrowanie kodu. Są one również doskonałym narzędziem do tworzenia i/lub walidacji modeli przed promowaniem ich w środowisku produkcyjnym. Implementowanie potoków wdrażania pomaga zwiększyć niezawodność, a także ogólne środowisko użytkownika obciążenia. ▪ Potoki wdrażania |
Zapobiegaj dryfowi i rozpadowi modeli. | Należy chronić przed rozpadem i dryfem modelu, a jednocześnie mieć ustrukturyzowany proces, który ułatwia akceptowanie nowych zmian modelu w kontrolowany sposób. Zgodnie z zaleceniami dotyczącymi konserwacji modelu pomaga zachować zgodność, uniknąć nieoczekiwanych środowisk użytkownika i zapewnić bardziej aktualną usługę. ▪ Konserwacja modelu |
Cykl życia operacji obciążenia
Ten obraz przedstawia etapy operacyjne modeli sztucznej inteligencji, w tym zbieranie danych, czyszczenie danych w celu wyeliminowania niespójności lub błędów oraz przekształcanie danych w format analizowany. Te etapy mają zastosowanie do trenowania zarówno modeli dyskryminacyjnych, jak i uziemienia danych w modelach generowania. Jednak konkretny przypadek użycia modeli generowania trenowania nie jest przedstawiony na tej ilustracji. Ten przypadek użycia wykracza poza zakres tego artykułu.
Etapy metodyki MLOps i GenAIOps są podobne. Główną różnicą jest to, że w przypadku metody GenAIOps fokus przechodzi od trenowania do wybierania odpowiedniego modelu, monitowania inżynieryjnego i dołączania wiedzy specyficznej dla domeny poprzez precyzyjne dostrajanie lub implementowanie rozszerzonej generacji pobierania (RAG).
Nawet etapy wdrażania i monitorowania są dość podobne.
W poniższych sekcjach opisano typowe rozwiązania operacyjne. Obejmują one każdy etap cyklu życia, od przedprodukcyjnego do produkcji.
DataOps
Dane są agregowane z różnych produkcyjnych źródeł danych, a następnie wstępnie przetwarzane w celu usunięcia błędów i niespójności oraz obsługi brakujących wartości. Na koniec jest przekształcany i znormalizowany w odpowiedni format trenowania lub wzbogacania. Aspekty projektowania opisano w artykułach Dane trenowania i Dane uziemienia.
Procesy operacji danych na tym etapie powinny być wydajne, ponieważ obsługa dużych ilości danych z wielu źródeł i złożonych potoków danych może być trudna. Podejścia, które należy wziąć pod uwagę, aby zapewnić, że ta faza generuje dane wysokiej jakości. Monitoruj ten etap, aby śledzić postęp w kierunku akceptowalnego paska jakości.
Należy również upewnić się, że dane są bezpieczne, biorąc pod uwagę, że dane pochodzą z środowiska produkcyjnego. Upewnij się, że niższe środowiska, takie jak tworzenie i testowanie, są tak bezpieczne jak środowisko produkcyjne, aby zapobiec wszelkim problemom z zabezpieczeniami.
Uwaga
Rozwiąż problem z niską jakością danych, inwestując w obszerne czyszczenie danych w początkowej fazie. Skorzystaj z dobrze znanych wzorców analitycznych, takich jak medalion, siatka danych i magazyny funkcji, aby wykonywać zadania przetwarzania nadrzędnego. Jeśli fazy nadrzędne są nieskuteczne, należy poprawić jakość w fazach podrzędnych, co prowadzi do zwiększenia kosztów obciążeń, ponieważ przygotowywanie danych odbywa się na każdym etapie.
Aby uzyskać informacje o zadaniach przetwarzania danych, zobacz następujące artykuły:
Narzędzia
Zalecamy standaryzację narzędzi orkiestracji danych obciążenia. Narzędzia powinny mieć możliwość dostarczania potoku danych, który może grupować działania i ma wbudowaną automatyzację.
Potok usługi Azure Data Factory może być wyborem początkowym. Może ona efektywnie łączyć się z wieloma źródłami danych i przetwarzać je. Możesz również rozważyć usługę Azure Synapse Analytics, która łączy magazyn danych big data i magazyn danych oraz obsługuje magazyny danych, apache Spark i Azure Synapse SQL. Integruje się również z usługą Data Factory dla etL.
Do przygotowywania danych szkoleniowych potoki usługi Azure Machine Learning udostępniają wyspecjalizowane funkcje, które mogą automatyzować zadania, takie jak zbieranie i przetwarzanie danych.
Technologie open source, takie jak Pandas (na potrzeby przygotowywania danych) i Scrapy, to popularne opcje.
MLOps
Trenowanie modelu to proces wybierania odpowiednich algorytmów i dostarczania im wstępnie przetworzonych danych historycznych i obserwacji w celu umożliwienia modelowi uczenia się wzorców i przewidywania.
Trenowanie modelu (inżynierii cech) i dostrajania hiperparametrów to procesy iteracyjne i są kosztowne. Podczas każdej iteracji analitycy danych śledzą wyniki przy użyciu kombinacji danych, kodu i parametrów. Użyj powtarzalnych potoków, aby śledzić eksperymenty z minimalnym nakładem pracy ręcznej do czasu osiągnięcia odpowiedniego poziomu dokładności.
Innym wyzwaniem operacyjnym jest aprowizowanie i skalowanie wyspecjalizowanych zasobów obliczeniowych, w których przeprowadzane są eksperymenty. Ponadto należy wydajnie pakować i publikować modele .
Zespoły mogą zacząć od programowania opartego na interfejsie użytkownika, aby zmniejszyć wyzwania, a w miarę jak stają się bardziej pewni, przejście do podejścia opartego na kodzie.
Narzędzia
Zalecamy używanie narzędzi, które umożliwiają śledzenie eksperymentów uczenia maszynowego przez przechwytywanie szczegółów, takich jak wersje kodu, środowiska, parametry, przebiegi i wyniki. MLflow jest jedną z takich platform typu open source. Rozważ użycie obszarów roboczych usługi Azure Machine Learning, które są zgodne z platformą MLflow i zapewniają usprawniony przepływ pracy, który umożliwia analitykom danych zarządzanie produktywnością i powtarzalnością w swoich projektach. Aby zarządzać programowaniem kodu za pomocą śledzenia kontroli źródła, zintegruj potok uczenia maszynowego z kontrolą źródła, np. GitHub, lub użyj udziałów plików.
Hostowanie zasobów obliczeniowych może również mieć wpływ na wybór orkiestratora przepływu pracy. Jeśli aplikacja jest hostowana w usłudze Azure Kubernetes Service (AKS), rozważ użycie rozwiązania Kubeflow.
Jeśli rozważasz usługę Azure Machine Learning, zalecamy rozpoczęcie od perspektywy platformy Azure Well-Architected Framework na temat uczenia maszynowego, aby upewnić się, jak produkt może pomóc Ci w rozwiązywaniu problemów z jakością dobrze zaprojektowanej struktury obciążenia.
Częścią zalet procesu jest zoptymalizowanie czasu osobistego. Analitycy danych zazwyczaj potrzebują określonych narzędzi i zestawów SDK, aby skutecznie przeprowadzać eksploracyjne analizy danych i eksperymentować ze stacji roboczych. Oceń, czy wstępnie utworzone opcje w usłudze Azure Machine Learning są odpowiednie. Jeśli nie, zapisz konfigurację stacji roboczej lub zachowaj zatwierdzone obrazy maszyn wirtualnych dla tej pracy. Jednym z przykładów obrazu, którego można użyć jako punktu początkowego, jest Nauka o danych Virtual Machine (DSVM).
W niektórych przypadkach użycie maszyn wirtualnych może być niedozwolone przez zasady. Poszukaj alternatyw, takich jak dodawanie usług Microsoft Dev Box i Azure Virtual Desktop. Możesz również rozważyć użycie platformy Docker do uruchamiania maszyn zawierających wstępnie utworzone obrazy.
Jednak w miarę dojrzewania tego etapu i potrzebnych jest rozszerzonych eksperymentów, przejdź do zarządzanych wystąpień obliczeniowych i preferuj opcje zintegrowane w ramach przepływu pracy. Oceń, czy możesz używać wystąpień obliczeniowych usługi Azure Machine Learning do trenowania i wnioskowania na potrzeby programowania i testowania. Klastry obliczeniowe mogą obsługiwać duże zestawy danych i złożone modele.
Usługa Azure Machine Learning udostępnia zarówno rozwiązania oparte na kodzie za pośrednictwem zestawu SDK, jak i opcji niskiego kodu, takich jak zautomatyzowane uczenie maszynowe i projektant wizualizacji. Zestaw SDK języka Python oferuje wiele sposobów trenowania modeli, z których każdy ma różne funkcje. Uczenie maszynowe obsługuje również zaawansowane technologie optymalizacji i rozproszonego przetwarzania, takie jak moduły ORTModule, DeepSpeed i LoRA w środowisku uruchomieniowym ONNX, aby przyspieszyć proces trenowania.
GenAIOps
Kluczowe działania na tym etapie zaczynają się od odnajdywania i oceniania istniejących modeli w celu zidentyfikowania jednego, który jest wstępnie wytrenowany dla konkretnego przypadku użycia. Jest to proces iteracyjny. Po znalezieniu odpowiedniego modelu może ona skorzystać z uściślenia pod kątem uziemienia specyficznego dla domeny, który obejmuje również iteracyjne kroki i wymaga pewnego poziomu aranżacji.
Integrowanie i wdrażanie modeli wymaga wyspecjalizowanych narzędzi i praktyk wykraczających poza tradycyjne możliwości metodyki MLOps, w tym organizowanie modeli, indeksów wektorów, monitów i bloków kodu.
Narzędzia
Aby rozwiązać problem z zadaniami odnajdywania, skorzystaj z wykazów modeli, które obejmują modele od różnych dostawców. Katalog modeli w portalu Azure AI Foundry umożliwia ocenę spośród wyselekcjonowanych kolekcji i wydajne wdrażanie modeli.
Przepływ monitów usługi Azure Machine Learning może pomóc w opracowaniu kodu orkiestracji, umożliwiając tworzenie prototypów, eksperymentowanie, iterowanie i monitowanie inżynieryjne. Te przepływy można wdrożyć w zarządzanych punktach końcowych usługi Azure Machine Learning. Oceń, czy możesz uruchamiać i wdrażać przepływy przy użyciu istniejącej technologii potoku ciągłej integracji/ciągłego wdrażania.
Wdrożenie
Na tym etapie model jest wdrażany na platformie hostingu i wnioskowania lub w warstwie obsługi obciążeń sztucznej inteligencji. Interfejsy API muszą być spakowane jako skalowalny kontener. Platforma kontenera może być zarządzaną platformą obliczeniową lub niestandardową platformą hostingu. Praktyki operacyjne powinny zapewnić bezpieczne wdrażanie i włączyć wycofywanie.
Zacznij od rozwiązań typu "platforma jako usługa" (PaaS) i rozwiązań bezserwerowych, takich jak usługa Azure OpenAI Service, aby uprościć wdrażanie i zarządzanie. Rozważ użycie bezserwerowego interfejsu API usługi Azure Machine Learning w celu agregowania dostępu do punktu końcowego. Zarządzane klastry obliczeniowe są realną opcją dla zaawansowanych potrzeb. Self-hosting w usłudze AKS jest inną opcją. Upewnij się, że rozmiar zasobów obliczeniowych jest odpowiedni i zachować odpowiednią izolację od innych obciążeń. Możesz również rozważyć opcje, takie jak w pełni hostowanie modelu jako infrastruktury jako usługi (IaaS). Usługa IaaS zapewnia elastyczność, ale może zwiększyć obciążenie operacyjne. Te opcje są opisane w temacie Platforma aplikacji.
Ten etap przedstawia ostatnią szansę na przechwycenie problemów przed przeniesieniem modelu do środowiska produkcyjnego. Procesy testowania powinny zawierać kroki weryfikacji, aby upewnić się, że model jest skonfigurowany do dostarczania przewidywań zgodnie z oczekiwaniami.
Model należy zintegrować z istniejącym środowiskiem produkcyjnym, postępując zgodnie z procesami progresywnymi ekspozycji i korzystającymi z wdrożeń równoległych. Model kanarowy to typowy sposób wdrażania nowych modeli. W przypadku tej metody baza użytkowników jest stopniowo zwiększana. Wdrożenie niebiesko-zielone to inna metoda.
Narzędzia
Potoki usługi Azure Machine Learning lub Azure Pipelines umożliwiają wdrażanie modeli na potrzeby wnioskowania. Usługa Machine Learning oferuje kilka funkcji uproszczonych operacji, w tym aprowizowanie węzłów, aktualizacje systemu operacyjnego, skalowanie automatyczne, monitorowanie i izolowane sieci wirtualne.
Usługa Machine Learning obsługuje również wdrożenie niebiesko-zielone, dzięki czemu pojedynczy punkt końcowy może zawierać wiele wdrożeń.
Jeśli używasz innych platform hostingu, takich jak Azure Container Apps lub aplikacja systemu Azure Service, odpowiadasz za operacje, w tym aprowizowanie i skalowanie. W takich przypadkach użyj usługi Azure DevOps, potoków GitHub lub wybranej technologii ciągłej integracji/ciągłego wdrażania.
Monitorowanie
Monitorowanie jest kluczową strategią i jest stosowane na wszystkich etapach. Jest to ciągły proces i służy jako dane wejściowe do bram jakości, które zapewniają, że obciążenia sztucznej inteligencji są rygorystycznie testowane w celu utrzymania spójności i niezawodności w całym cyklu projektowania. Modele muszą być monitorowane zarówno z perspektywy operacyjnej, jak i nauki o danych.
Zdecydowanie zalecamy posiadanie procesu monitorowania pętli wewnętrznej dataOps, który mierzy bliskość paska jakości akceptacji i sprawdza anomalie.
W przypadku wstępnie wytrenowanych modeli ważne jest również monitorowanie dryfu i wydajności danych z głównym naciskiem na trafność. Oceń dane wejściowe (monity) i dane wyjściowe (uzupełnienia), aby upewnić się, że są one odpowiednie i dokładne. Ponadto należy pamiętać o zagrożeniach bezpieczeństwa, takich jak próby manipulowania zachowaniem modelu za pośrednictwem złośliwych monitów. Upewnij się, że istnieje dokładna analiza tryb namiotu, która sprawdza dane w obu kierunkach i filtruje nieodpowiednią zawartość. Te zagadnienia opisano w obszarze projektowania ResponsibleAI.
Po wdrożeniu operacje monitorowania są niezbędne do rozwiązywania problemów, takich jak rozkład modelu. Modele mogą stać się nieaktualne z powodu zmian danych lub zmian zewnętrznych, które mogą spowodować, że model generuje nieistotne wyniki. Jako środek proaktywny używaj zautomatyzowanych procesów do ciągłego monitorowania oraz oceniania i ponownego trenowania w celu zachowania dokładności i istotności. Ponadto należy monitorować metryki infrastruktury i obciążenia, tak jak w przypadku innych obciążeń, aby zapewnić optymalną wydajność i niezawodność. Aby uzyskać więcej informacji, zobacz Testowanie rozkładu modelu.
Narzędzia
Zainwestuj w narzędzia, które ułatwiają zbieranie metryk z punktów końcowych wnioskowania, takich jak moduł zbierający dane usługi Azure Machine Learning.
Potrzebujesz również wglądu w wydajność modelu, dryf danych oraz bezpieczeństwo i jakość generowania sztucznej inteligencji.
Więcej informacji można znaleźć w tych artykułach:
Automation
Obciążenia sztucznej inteligencji są złożone, ponieważ ogólny cykl życia obejmuje wiele ról, częstych zmian i powiązanych kroków. Procesy ręczne mogą być podatne na błędy i niespójności. Automatyzacja hostingu modelu przetwarzania danych pomaga zapewnić powtarzalność i wydajność. Automatyzacja nie zawsze jest wymagana, ale jest to skuteczny sposób zarządzania tymi złożonościami. Oto kilka przypadków użycia, w których automatyzacja może ograniczyć ryzyko:
W przeciwieństwie do tradycyjnego wdrażania kodu, nieokreślone modele i rozwiązania w sztucznej inteligencji/uczeniu maszynowym wymagają iteracyjnego eksperymentowania i trenowania. Gdy wiele zespołów współpracuje, automatyzacja, jako sposób wymuszania ustandaryzowanych procesów, może pomóc zachować spójność, powtarzalność i skuteczną współpracę między analitykami danych, inżynierami i zespołami operacyjnymi.
Cykl życia modelu obejmuje dwa główne typy trenowania:
Szkolenia online obejmują najnowsze dane w modelu często, czasami codziennie, aby upewnić się, że decyzje są oparte na najnowszych informacjach. To szkolenie jest zintegrowane z obciążeniem, dzięki czemu model jest stale aktualizowany w ramach zwykłego procesu.
Trenowanie w trybie offline trenuje model rzadziej, co pozwala na dłuższą przerwę między aktualizacjami. Proces trenowania jest oddzielony od głównego obciążenia i jest wykonywany asynchronicznie. Gdy nowy model będzie gotowy, zostanie on następnie zintegrowany z systemem.
Niezawodność może zostać naruszona, jeśli aktualizacje są rzadko dostępne. Jeśli aktualizacja nie zostanie pominięta, można ją odłożyć bez poważnych problemów. Ta koncepcja dotyczy również danych uziemienia. Jeśli na przykład używasz programu RAG, musisz zdecydować, czy musisz używać ostatnich danych, czy też nieco starszych danych jest wystarczająca. Oba scenariusze obejmują równoważenie zapotrzebowania na aktualne informacje z praktycznością częstotliwości aktualizacji. Trenowanie online powinno odbywać się za pośrednictwem automatyzacji ze względu na wymaganą częstotliwość i niezawodność. W przypadku trenowania w trybie offline ze względu na wymaganą częstotliwość należy uzasadnić automatyzację, wykonując analizę kosztów i korzyści. Ponadto można przeprowadzić trenowanie w trybie offline przy użyciu mniej kosztownych zasobów, takich jak sprzęt w trybie offline.
Tradycyjne procesy DevOps są zwykle dotknięte zmianami strukturalnymi. Jednak w przypadku sztucznej inteligencji i uczenia maszynowego modele są trenowane na danych produkcyjnych. Rozkład modelu stanowi znaczne ryzyko i może prowadzić do zmniejszenia wydajności w czasie, jeśli nie jest monitorowany. Zautomatyzowane zbieranie i analiza metryk wydajności, alertów i ponownego trenowania modelu są wymagane do utrzymania skuteczności modelu. Automatyzacja umożliwia wykrywanie zmian w zależnościach danych i modeli w celu uzyskania jasnego zrozumienia bieżącego stanu w danym momencie.
Modele można wytrenować przy użyciu dwóch odrębnych metod.
- Modele są trenowane w środowisku deweloperskim z pełnymi danymi produkcyjnymi i tylko artefakt jest promowany za pośrednictwem środowisk. Takie podejście może obniżyć koszty obliczeniowe, ale wymaga ściślejszego zabezpieczeń do obsługi danych produkcyjnych w niższych środowiskach i może nie być możliwe we wszystkich organizacjach.
- Model jest trenowany w każdym środowisku. Podwyższenie poziomu kodu może pomóc w stabilności, ponieważ kod trenowania jest przeglądany i testowany w niższych środowiskach, ale zwiększa koszt obliczeń.
Oba podejścia mają wady i zalety. Wybór odpowiedniego podejścia zależy od priorytetów organizacji i praktyk cyklu życia programowania oprogramowania (SDLC, Software Development Life Cycle). Niezależnie od metody niezbędne są dokładne testowanie i ocena modelu przed wdrożeniem produkcyjnym
Kod automatyzacji powinien uwzględniać pochodzenie danych w celu zapewnienia możliwości inspekcji, zapewniając jasny zapis etapów przetwarzania danych. Ten rekord pomaga zarządzać oczekiwaniami i umożliwia pokazanie, w jaki sposób podjęto decyzje, dzięki czemu możesz rozwiązać wszelkie problemy dotyczące wyników.
Potoki wdrażania
W przypadku obciążeń sztucznej inteligencji/uczenia maszynowego tworzenie modeli obejmuje tworzenie, weryfikowanie i promowanie modeli na platformach hostingu modeli. Ważne jest, aby potoki wdrażania usprawniły złożone przepływy pracy związane z przetwarzaniem danych, inżynierią cech, trenowaniem modelu lub rozszerzaniem oraz wdrażaniem w środowisku produkcyjnym. Biorąc pod uwagę niedeterministyczny charakter sztucznej inteligencji, który sprawia, że procesy są nieprzezroczyste, należy uwzględnić testy jakościowe w potokach wydań i systemach monitorowania.
Mimo że metodyki MLOps i GenAIOps mogą wymagać różnych działań sztucznej inteligencji i podstawowych technologii, podstawowe pojęcia pozostają podobne do tych z metodyki DevOps. Zalecamy stosowanie najlepszych rozwiązań z istniejących procesów DevOps. Integrowanie działań sztucznej inteligencji z istniejącymi potokami obciążenia.
Zazwyczaj obciążenia sztucznej inteligencji obejmują tradycyjne wdrożenia kodu. Wdrożenie modelu można obsługiwać razem z kodem lub oddzielnie we własnym cyklu życia. Poprzednie podejście jest preferowane. Przygotuj się do tworzenia pakietów modeli i punktów końcowych wnioskowania z wdrożeniem obciążenia, aby zapewnić, że operacje sztucznej inteligencji koncentrują się przede wszystkim na przygotowywaniu danych, trenowaniu/dostrajaniu, zarządzaniu danymi uziemienia i monitorowaniu.
Przeszacuj, jak można dostosować następujące zasoby do całego cyklu życia metodyki MLOps i GenAIOps, od przedprodukcyjnego do środowiska produkcyjnego:
- Narzędzia infrastruktury jako kodu (IaC)
- Potoki ciągłej integracji/ciągłego wdrażania
- Stos obserwacji do śledzenia i identyfikowania problemów
Narzędzia
Przepływy pracy usługi Azure Pipelines i GitHub Actions, często używane do ciągłej integracji/ciągłego wdrażania, można rozszerzyć na modele uczenia maszynowego. Ułatwiają one wdrażanie infrastruktury uczenia maszynowego, niestandardowych składników obciążeń, kodu orkiestracji i modeli. Łączenie potoków usługi Azure Machine Learning z potokami usługi Azure DevOps lub GitHub. Aby uzyskać więcej informacji, zobacz Używanie usługi Azure Pipelines z usługą Azure Machine Learning.
Dwa główne czynniki wpływają na wybór odpowiedniej kombinacji narzędzi: przypadków użycia i możliwości. Na przykład potoki usługi Azure Machine Learning doskonale nadają się do orkiestracji wykonywanej przez analityków danych. Ma bogaty zestaw funkcji, który obsługuje ponowne użycie, buforowanie i nie tylko. Aby zapoznać się z opcjami narzędzi, zobacz Której technologii potoku platformy Azure należy używać?.
Konserwacja modelu
Krajobraz sztucznej inteligencji/uczenia maszynowego jest konkurencyjny z ciągłymi innowacjami. Nowe modele pojawiają się często, wykrywane są nowe przypadki użycia, a nowe źródła danych stają się dostępne. W rezultacie rozkład modelu jest częstym wyzwaniem.
Aby zapobiec pogorszeniu wydajności modelu lub dryfowaniu w czasie, należy zaimplementować zautomatyzowane procesy do ciągłego monitorowania, oceny i ponownego trenowania. Na przykład:
Obsługa wykazu modeli. Zautomatyzuj proces odnajdywania nowych modeli i aktualizowania wykazu.
Dostosuj się do nowych przypadków użycia. W miarę dodawania nowych przypadków użycia do wymagań dotyczących obciążenia należy odpowiednio przewidzieć zapytania i dostosować logikę przetwarzania danych.
Dołączanie nowych źródeł danych. Jeśli nowe źródła danych mogą potencjalnie zwiększyć moc predykcyjną lub znaczenie modelu, zaktualizuj potok pozyskiwania danych, aby nawiązać połączenie z tymi źródłami i ściągnąć je.
Ocena zgodności z wymaganiami prawnymi. Podczas dostosowywania się do nowych możliwości upewnij się, że zmiany pozostają prawidłowe w ramach ograniczeń standardów zgodności organizacji lub zewnętrznych.
Zaimplementuj formalny proces śledzenia ciągłego ulepszania i włącz samodzielne ulepszanie jako podproces w ramach tego cyklu.
Ciągła ewolucja
Regularne przeglądanie i ulepszanie operacji oraz zachęcanie do innowacji.
Model dojrzałości MLOps przechodzi od procesów ręcznych do pełnej automatyzacji. Rozpocznij od ręcznych kompilacji i monitorowania oraz uwzględnij automatyczne kompilacje aplikacji, środowiska szkoleniowe i wdrażanie w fazach zgodnie z kompleksowymi metrykami. Aby uzyskać więcej informacji, zobacz Model dojrzałości MLOps.
Poziomy dojrzałości GenAIOps przechodzą od podstawowych modeli do wdrożenia strukturalnego, stopniowo korzystając z technik zautomatyzowanej optymalizacji. Aby uzyskać więcej informacji, zobacz Advance your maturity level for GenAIOps (Zaawansowane poziom dojrzałości dla metodyki GenAIOps).