Metodyka MLOps: zarządzanie modelami, wdrażanie, pochodzenie i monitorowanie za pomocą usługi Azure Machine Learning w wersji 1

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 1zestawu SDK języka Python azureml v1

W tym artykule dowiesz się, jak zastosować rozwiązania dotyczące operacji uczenia maszynowego (MLOps) w usłudze Azure Machine Learning w celu zarządzania cyklem życia modeli. Rozwiązania w zakresie operacji uczenia maszynowego mogą poprawić jakość i spójność rozwiązań uczenia maszynowego.

Ważne

Elementy w tym artykule oznaczone jako wersja zapoznawcza są obecnie dostępne w publicznej wersji zapoznawczej. Wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług. Nie zalecamy korzystania z funkcji w wersji zapoznawczej dla obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone.

Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Co to są operacje uczenia maszynowego?

W oparciu o zasady i praktyki metodyki DevOps operacje uczenia maszynowego zwiększają wydajność przepływów pracy. Na przykład ciągła integracja, dostarczanie i wdrażanie. Operacje uczenia maszynowego stosują te zasady do procesu uczenia maszynowego w celu:

  • Szybsze eksperymentowanie i opracowywanie modeli
  • Szybsze wdrażanie modeli w środowisku produkcyjnym
  • Kontrola jakości i kompleksowe śledzenie pochodzenia

Metodyka MLOps w usłudze Azure Machine Learning

Usługa Azure Machine Learning oferuje następujące możliwości operacji uczenia maszynowego:

  • Tworzenie powtarzalnych potoków uczenia maszynowego. Potoki uczenia maszynowego umożliwiają definiowanie powtarzalnych i wielokrotnego użytku kroków dla procesów przygotowywania, trenowania i oceniania danych.
  • Tworzenie środowisk oprogramowania wielokrotnego użytku na potrzeby trenowania i wdrażania modeli.
  • Rejestrowanie, pakowanie i wdrażanie modeli z dowolnego miejsca. Możesz również śledzić skojarzone metadane wymagane do korzystania z modelu.
  • Przechwyć dane ładu dla kompleksowego cyklu życia uczenia maszynowego. Zarejestrowane informacje o pochodzenia mogą obejmować osoby publikujące modele, dlaczego wprowadzono zmiany oraz kiedy modele zostały wdrożone lub użyte w środowisku produkcyjnym.
  • Powiadamianie i powiadamianie o zdarzeniach w cyklu życia uczenia maszynowego. Na przykład uzupełnianie eksperymentów, rejestracja modelu, wdrażanie modelu i wykrywanie dryfu danych.
  • Monitorowanie aplikacji uczenia maszynowego pod kątem problemów z operacjami i uczeniem maszynowym. Porównaj dane wejściowe modelu między trenowaniem i wnioskowaniem, eksplorowanie metryk specyficznych dla modelu oraz zapewnianie monitorowania i alertów w infrastrukturze uczenia maszynowego.
  • Automatyzacja kompleksowego cyklu życia uczenia maszynowego przy użyciu usług Azure Machine Learning i Azure Pipelines. Korzystanie z potoków umożliwia częste aktualizowanie modeli, testowanie nowych modeli i ciągłe wdrażanie nowych modeli uczenia maszynowego wraz z innymi aplikacjami i usługami.

Aby uzyskać więcej informacji na temat operacji uczenia maszynowego, zobacz Operacje uczenia maszynowego.

Tworzenie powtarzalnych potoków uczenia maszynowego

Użyj potoków uczenia maszynowego z usługi Azure Machine Learning, aby połączyć wszystkie kroki związane z procesem trenowania modelu.

Potok uczenia maszynowego może zawierać kroki od przygotowania danych do wyodrębniania funkcji do dostrajania hiperparametrów do oceny modelu. Aby uzyskać więcej informacji, zobacz Potoki usługi Azure Machine Learning.

Jeśli używasz projektanta do tworzenia potoków uczenia maszynowego, wybierz wielokropek (...) w prawym górnym rogu strony Projektant, a następnie wybierz pozycję Klonuj. Klonowanie potoku umożliwia iterowanie projektu potoku bez utraty starych wersji.

Tworzenie środowisk oprogramowania wielokrotnego użytku

Środowiska usługi Azure Machine Learning umożliwiają śledzenie i odtwarzanie zależności oprogramowania projektów w miarę ich rozwoju. Środowiska umożliwiają zapewnienie, że kompilacje są odtwarzalne bez ręcznych konfiguracji oprogramowania.

Środowiska opisują zależności i Conda dla projektów. Środowiska mogą służyć zarówno do trenowania, jak i wdrażania modeli. Aby uzyskać więcej informacji, zobacz Co to są środowiska usługi Azure Machine Learning.

Rejestrowanie, pakowanie i wdrażanie modeli z dowolnego miejsca

Modele można rejestrować, pakować i wdrażać z dowolnego miejsca.

Rejestrowanie i śledzenie modeli uczenia maszynowego

Rejestracja modelu umożliwia przechowywanie i przechowywanie wersji modeli w obszarze roboczym w chmurze platformy Azure. Rejestr modeli ułatwia organizowanie i śledzenie wytrenowanych modeli.

Napiwek

Zarejestrowany model jest kontenerem logicznym dla co najmniej jednego pliku tworzącego model. Jeśli na przykład masz model, który jest przechowywany w wielu plikach, możesz zarejestrować go jako pojedynczy model w obszarze roboczym usługi Azure Machine Learning. Po rejestracji możesz pobrać lub wdrożyć zarejestrowany model i otrzymać wszystkie zarejestrowane pliki.

Nazwa i wersja identyfikują zarejestrowane modele. Za każdym razem, gdy rejestrujesz model o takiej samej nazwie, jaką ma już istniejący model, rejestr zwiększa wersję. Podczas rejestracji można określić inne tagi metadanych. Te tagi są następnie używane podczas wyszukiwania modelu. Usługa Azure Machine Learning obsługuje dowolny model, który można załadować przy użyciu języka Python w wersji 3.5.2 lub nowszej.

Napiwek

Można również rejestrować modele trenowane poza usługą Azure Machine Learning.

Nie można usunąć zarejestrowanego modelu używanego w aktywnym wdrożeniu. Aby uzyskać więcej informacji, zobacz Rejestrowanie modelu.

Ważne

Jeśli używasz opcji filtru według Tags na stronie Modele usługi Azure Machine Learning Studio, zamiast używać TagName=TagValue TagName : TagValue opcji (bez spacji).

Tworzenie pakietów i debugowanie modeli

Przed wdrożeniem modelu w środowisku produkcyjnym jest on spakowany do obrazu platformy Docker. W większości przypadków tworzenie obrazu odbywa się automatycznie w tle podczas wdrażania. Obraz można określić ręcznie.

Jeśli wystąpią problemy z wdrożeniem, możesz wdrożyć je w lokalnym środowisku projektowym na potrzeby rozwiązywania problemów i debugowania.

Aby uzyskać więcej informacji, zobacz Wdrażanie modeli uczenia maszynowego na platformie Azure i Rozwiązywanie problemów z wdrażaniem modelu zdalnego.

Konwertowanie i optymalizowanie modeli

Konwertowanie modelu na open neural network exchange (ONNX) może zwiększyć wydajność. Średnio konwersja na ONNX może przynieść 2-krotny wzrost wydajności.

Aby uzyskać więcej informacji, zobacz ONNX i Azure Machine Learning.

Używanie modeli

Wytrenowane modele uczenia maszynowego są wdrażane jako usługi internetowe w chmurze lub lokalnie. Wdrożenia używają procesora CPU lub procesora GPU do wnioskowania. Możesz również używać modeli z poziomu usługi Power BI.

W przypadku korzystania z modelu jako usługi internetowej podaj następujące elementy:

  • Modele używane do oceniania danych przesyłanych do usługi lub urządzenia.
  • Skrypt wejściowy. Ten skrypt akceptuje żądania, używa modeli do oceniania danych i zwraca odpowiedź.
  • Środowisko usługi Azure Machine Learning, które opisuje zależności i Conda wymagane przez modele i skrypt wprowadzania.
  • Wszelkie inne zasoby, takie jak tekst lub dane, wymagane przez modele i skrypt wejścia.

Należy również podać konfigurację docelowej platformy wdrażania. Na przykład typ rodziny maszyn wirtualnych, dostępna pamięć i liczba rdzeni podczas wdrażania w usłudze Azure Kubernetes Service.

Po utworzeniu obrazu są również dodawane składniki wymagane przez usługę Azure Machine Learning. Na przykład zasoby potrzebne do uruchomienia usługi internetowej.

Wsadowe ocenianie

Ocenianie wsadowe jest obsługiwane za pośrednictwem potoków uczenia maszynowego. Aby uzyskać więcej informacji, zobacz Samouczek: tworzenie potoku usługi Azure Machine Learning na potrzeby klasyfikacji obrazów.

Usługi internetowe w czasie rzeczywistym

Modele można używać w usługach internetowych z następującymi celami obliczeniowymi:

  • Azure Container Instance
  • Azure Kubernetes Service
  • Lokalne środowisko projektowe

Aby wdrożyć model jako usługę internetową, należy podać następujące elementy:

  • Model lub zespół modeli.
  • Zależności wymagane do korzystania z modelu. Na przykład skrypt, który akceptuje żądania i wywołuje model lub zależności conda.
  • Konfiguracja wdrożenia, która opisuje, jak i gdzie wdrożyć model.

Aby uzyskać więcej informacji, zobacz Wdrażanie modeli uczenia maszynowego na platformie Azure.

Analiza

Usługa Microsoft Power BI obsługuje korzystanie z modeli uczenia maszynowego na potrzeby analizy danych. Aby uzyskać więcej informacji, zobacz AI with dataflows (Sztuczna inteligencja z przepływami danych).

Przechwytywanie danych ładu wymaganych na potrzeby operacji uczenia maszynowego

Usługa Azure Machine Learning umożliwia śledzenie kompleksowego dziennika inspekcji wszystkich zasobów uczenia maszynowego przy użyciu metadanych.

  • Usługa Azure Machine Learning integruje się z usługą Git , aby śledzić informacje o repozytorium, gałęzi i zatwierdzeniu kodu.
  • Zestawy danych usługi Azure Machine Learning ułatwiają śledzenie, profilowanie i dane wersji.
  • Możliwość interpretacji pozwala wyjaśnić modele, spełnić zgodność z przepisami i zrozumieć, w jaki sposób modele docierają do wyniku dla danych wejściowych.
  • Historia uruchamiania usługi Azure Machine Learning przechowuje migawkę kodu, danych i obliczeń używanych do trenowania modelu.
  • Rejestr modeli usługi Azure Machine Learning przechwytuje wszystkie metadane skojarzone z modelem. Te metadane obejmują eksperyment, który go wytrenował, gdzie jest wdrażany, oraz jeśli jego wdrożenia są w dobrej kondycji.
  • Integracja z platformą Azure umożliwia wykonywanie działań na zdarzeniach w cyklu życia uczenia maszynowego. Na przykład rejestrację modelu, wdrożenie, dryf danych i zdarzenia trenowania (przebiegu).

Napiwek

Niektóre informacje o modelach i zestawach danych są automatycznie przechwytywane. Możesz dodać inne informacje przy użyciu tagów. Podczas wyszukiwania zarejestrowanych modeli i zestawów danych w obszarze roboczym można użyć tagów jako filtru.

Kojarzenie zestawu danych z zarejestrowanym modelem jest opcjonalnym krokiem. Aby uzyskać informacje na temat odwoływania się do zestawu danych podczas rejestrowania modelu, zobacz dokumentację klasy modelu.

Powiadamianie, automatyzowanie i alerty dotyczące zdarzeń w cyklu życia uczenia maszynowego

Usługa Azure Machine Learning publikuje kluczowe zdarzenia w usłudze Azure Event Grid, które mogą służyć do powiadamiania i automatyzowania zdarzeń w cyklu życia uczenia maszynowego. Aby uzyskać więcej informacji, zobacz Wyzwalanie aplikacji, procesów lub przepływów pracy ciągłej integracji/ciągłego wdrażania na podstawie zdarzeń usługi Azure Machine Learning.

Monitorowanie problemów z operacjami i uczeniem maszynowym

Monitorowanie umożliwia zrozumienie, jakie dane są wysyłane do modelu, oraz przewidywania, które zwracają.

Te informacje ułatwiają zrozumienie sposobu użycia modelu. Zebrane dane wejściowe mogą być również przydatne podczas trenowania przyszłych wersji modelu.

Aby uzyskać więcej informacji, zobacz Zbieranie danych z modeli w środowisku produkcyjnym.

Ponowne trenowanie modelu na nowych danych

Często chcesz zweryfikować model, zaktualizować go, a nawet ponownie wytrenować od podstaw, gdy otrzymujesz nowe informacje. Czasami odbieranie nowych danych jest oczekiwaną częścią domeny. Czasami wydajność modelu może ulec pogorszeniu ze względu na zmiany określonego czujnika, zmiany danych naturalnych, takie jak efekty sezonowe lub funkcje zmieniające się w odniesieniu do innych funkcji. Aby uzyskać więcej informacji, zobacz Wykrywanie dryfu danych (wersja zapoznawcza) w zestawach danych.

Nie ma uniwersalnej odpowiedzi na "Jak mogę wiedzieć, czy należy ponownie trenować?", ale omówione wcześniej narzędzia do monitorowania i zdarzeń usługi Azure Machine Learning są dobrymi punktami wyjścia dla automatyzacji. Po podjęciu decyzji o ponownym trenowaniu należy wykonać:

  • Wstępne przetwarzanie danych przy użyciu powtarzalnego, zautomatyzowanego procesu
  • Trenowanie nowego modelu
  • Porównaj dane wyjściowe nowego modelu z danymi wyjściowymi starego modelu
  • Użyj wstępnie zdefiniowanych kryteriów, aby wybrać, czy zastąpić stary model

Tematem powyższych kroków jest to, że ponowne trenowanie powinno być zautomatyzowane, a nie improwizowane. Potoki usługi Azure Machine Learning są dobrą odpowiedzią na tworzenie przepływów pracy związanych z przygotowywaniem danych, trenowaniem, walidacją i wdrażaniem. Przeczytaj artykuł Używanie parametrów potoku do ponownego trenowania modeli w projektancie , aby zobaczyć, jak potoki i projektant usługi Azure Machine Learning pasują do scenariusza ponownego trenowania.

Automatyzowanie cyklu życia uczenia maszynowego

Za pomocą usług GitHub i Azure Pipelines można utworzyć proces ciągłej integracji, który trenuje model. W typowym scenariuszu, gdy badacze dancyh sprawdza zmianę w repozytorium Git dla projektu, usługa Azure Pipeline uruchamia przebieg trenowania. Możesz sprawdzić wyniki przebiegu, aby zobaczyć charakterystykę wydajności wytrenowanego modelu. Możesz również utworzyć potok, który wdraża model jako usługę internetową.

Rozszerzenie usługi Azure Machine Learning ułatwia pracę z usługą Azure Pipelines. Zapewnia następujące ulepszenia usługi Azure Pipelines:

  • Włącza wybór obszaru roboczego podczas definiowania połączenia z usługą.
  • Umożliwia wyzwalanie potoków wydania przez wytrenowane modele utworzone w potoku trenowania.

Aby uzyskać więcej informacji na temat korzystania z usługi Azure Pipelines z usługą Azure Machine Learning, zobacz następujące zasoby:

Za pomocą usługi Azure Data Factory można również utworzyć potok pozyskiwania danych, który przygotowuje dane do użycia z trenowania. Aby uzyskać więcej informacji, zobacz DevOps dla potoku pozyskiwania danych.

Dowiedz się więcej, czytając i eksplorując następujące zasoby: