Metodyka MLOps: zarządzanie modelami, wdrażanie, pochodzenie i monitorowanie za pomocą usługi Azure Machine Edukacja 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 Edukacja maszynowych (MLOps) w usłudze Azure Machine Edukacja w celu zarządzania cyklem życia modeli. Zastosowanie rozwiązań MLOps może 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 i nie jest zalecana w przypadku 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 jest MLOps?

Operacje Edukacja maszynowych (MLOps) są oparte na zasadach i praktykach metodyki DevOps, które zwiększają wydajność przepływów pracy. Na przykład ciągła integracja, dostarczanie i wdrażanie. Metodyka MLOps stosuje te zasady do procesu uczenia maszynowego z celem:

  • 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 Edukacja

Usługa Azure Machine Edukacja oferuje następujące możliwości metodyki MLOps:

  • Tworzenie powtarzalnych potoków uczenia maszynowego. Potoki Edukacja maszynowe 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 zgłaszanie alertów 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 związanych 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 dotyczących infrastruktury uczenia maszynowego.
  • Automatyzacja kompleksowego cyklu życia uczenia maszynowego przy użyciu usługi Azure Machine Edukacja i usługi 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 metodyki MLOps, zobacz Machine Edukacja DevOps (MLOps).

Tworzenie powtarzalnych potoków uczenia maszynowego

Użyj potoków uczenia maszynowego z usługi Azure Machine Edukacja, 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 uczenia maszynowego.

Jeśli używasz Projektant do tworzenia potoków uczenia maszynowego, możesz w dowolnym momencie kliknąć przycisk "..." w prawym górnym rogu strony Projektant, a następnie wybrać pozycję Klonuj. Klonowanie potoku umożliwia iterowanie projektu potoku bez utraty starych wersji.

Tworzenie środowisk oprogramowania wielokrotnego użytku

Środowiska usługi Azure Machine Edukacja 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 pip i Conda dla projektów i mogą być używane zarówno do trenowania, jak i wdrażania modeli. Aby uzyskać więcej informacji, zobacz Co to są środowiska usługi Azure Machine Edukacja.

Rejestrowanie, pakowanie i wdrażanie modeli z dowolnego miejsca

Rejestrowanie i śledzenie modeli uczenia maszynowego

Rejestracja modelu umożliwia przechowywanie i przechowywanie wersji modeli w chmurze platformy Azure w obszarze roboczym. 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ć je jako pojedynczy model w obszarze roboczym usługi Azure Machine Edukacja. Po rejestracji możesz pobrać lub wdrożyć zarejestrowany model i otrzymać wszystkie zarejestrowane pliki.

Zarejestrowane modele są identyfikowane za pomocą nazwy i wersji. 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 podać dodatkowe tagi metadanych. Te tagi są następnie używane podczas wyszukiwania modelu. Usługa Azure Machine Edukacja obsługuje dowolny model, który można załadować przy użyciu języka Python 3.5.2 lub nowszego.

Napiwek

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

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

Ważne

W przypadku korzystania z opcji Filtruj według Tags na stronie Modele w usłudze Azure Machine Edukacja Studio zamiast używania klientów należy używać TagName : TagValueTagName=TagValue (bez miejsca)

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 i rozwiązywanie problemów z wdrożeniami.

Konwertowanie i optymalizowanie modeli

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

Aby uzyskać więcej informacji na temat platformy ONNX z usługą Azure Machine Edukacja, zobacz artykuł Tworzenie i przyspieszanie modeli uczenia maszynowego.

Używanie modeli

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

W przypadku korzystania z modelu jako usługi internetowej należy podać następujące elementy:

  • Modele używane do oceniania danych przesyłanych do usługi/urządzenia.
  • Skrypt wejściowy. Ten skrypt akceptuje żądania, używa modeli do oceniania danych i zwraca odpowiedzi.
  • Środowisko usługi Azure Machine Edukacja opisujące zależności pip i Conda wymagane przez modele i skrypt wejścia.
  • Wszelkie dodatkowe zasoby, takie jak tekst, dane itp., które są 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 Przewidywania usługi Batch dotyczące danych big data.

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, zależności conda itp.
  • Konfiguracja wdrożenia, która opisuje, jak i gdzie wdrożyć model.

Aby uzyskać więcej informacji, zobacz Wdrażanie modeli.

Analizy

Usługa Microsoft Power BI obsługuje korzystanie z modeli uczenia maszynowego na potrzeby analizy danych. Aby uzyskać więcej informacji, zobacz Azure Machine Edukacja integration in Power BI (wersja zapoznawcza).

Przechwytywanie danych ładu wymaganych dla metodyki MLOps

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

  • Usługa Azure Machine Edukacja integruje się z usługą Git, aby śledzić informacje o tym, z którego repozytorium/gałęzi/zatwierdzenia pochodzi kod.
  • Zestawy danych usługi Azure Machine Edukacja 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.
  • Usługa Azure Machine Edukacja Historia uruchamiania przechowuje migawkę kodu, danych i obliczeń używanych do trenowania modelu.
  • Usługa Azure Machine Edukacja Model Registry przechwytuje wszystkie metadane skojarzone z modelem (który eksperyment go wytrenował, gdzie jest wdrażany, 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

Podczas gdy niektóre informacje o modelach i zestawach danych są automatycznie przechwytywane, możesz dodać dodatkowe 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ę klas modelu .

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

Usługa Azure Machine Edukacja 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 ten dokument.

Monitorowanie pod kątem 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 Jak włączyć zbieranie danych modelu.

Ponowne trenowanie modelu na nowych danych

Często warto zweryfikować model, zaktualizować go, a nawet ponownie wytrenować od podstaw, ponieważ otrzymujesz nowe informacje. Czasami odbieranie nowych danych jest oczekiwaną częścią domeny. Innym razem, zgodnie z opisem w artykule Wykrywanie dryfu danych (wersja zapoznawcza) w zestawach danych, wydajność modelu może ulec pogorszeniu w obliczu takich zmian jak zmiany określonego czujnika, zmiany danych naturalnych, takie jak efekty sezonowe lub funkcje zmieniające się w stosunku do innych funkcji.

Nie ma uniwersalnej odpowiedzi na "Jak mogę wiedzieć, czy należy ponownie trenować?", ale wcześniej omówione narzędzia do monitorowania i zdarzeń usługi Azure Machine Edukacja są dobrymi punktami wyjścia do 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 ad hoc. Potoki usługi Azure Machine Edukacja to dobra odpowiedź na tworzenie przepływów pracy związanych z przygotowywaniem, trenowaniem, walidacją i wdrażaniem danych. Przeczytaj artykuł Retrain models with Azure Machine Edukacja designer (Ponowne trenowanie modeli za pomocą projektanta usługi Azure Machine Edukacja), aby zobaczyć, jak potoki i projektant usługi Azure Machine Edukacja 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 rozpocznie przebieg trenowania. Wyniki przebiegu można następnie sprawdzić, aby zobaczyć charakterystykę wydajności wytrenowanego modelu. Możesz również utworzyć potok, który wdraża model jako usługę internetową.

Rozszerzenie azure Machine Edukacja 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 Edukacja, zobacz następujące linki:

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 Potok pozyskiwania danych.

Następne kroki

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