Metodyka MLOps: zarządzanie modelami, wdrażanie i monitorowanie za pomocą usługi Azure Machine Edukacja

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

W tym artykule przedstawiono praktyki dotyczące operacji uczenia maszynowego (MLOps) w usłudze Azure Machine Edukacja na potrzeby zarządzania cyklem życia modeli. Zastosowanie rozwiązań MLOps może poprawić jakość i spójność rozwiązań uczenia maszynowego.

Co to jest MLOps?

Metodyka MLOps jest oparta na zasadach i praktykach metodyki DevOps , które zwiększają wydajność przepływów pracy. Te zasady obejmują ciągłą integrację, dostarczanie i wdrażanie. Metodyka MLOps stosuje te zasady do cyklu życia 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 udostępnia następujące możliwości procesu uczenia maszynowego:

  • Tworzenie powtarzalnych potoków uczenia maszynowego. Użyj potoków uczenia maszynowego, aby zdefiniować powtarzalne i wielokrotnego użytku kroki dla procesów przygotowywania, trenowania i oceniania danych.
  • Tworzenie środowisk oprogramowania wielokrotnego użytku. Użyj tych środowisk do trenowania i wdrażania modeli.
  • Rejestrowanie, pakowanie i wdrażanie modeli z dowolnego miejsca. Śledzenie skojarzonych metadanych wymaganych do korzystania z modelu.
  • Przechwyć dane ładu dla kompleksowego cyklu życia uczenia maszynowego. Zarejestrowane informacje o pochodzenia mogą zawierać osoby publikujące modele i dlaczego wprowadzono zmiany. Może również zawierać informacje o tym, kiedy modele zostały wdrożone lub użyte w środowisku produkcyjnym.
  • Powiadamianie i powiadamianie o zdarzeniach w cyklu życia uczenia maszynowego. Zdarzenia obejmują uzupełnianie eksperymentów, rejestrację 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ównanie danych wejściowych modelu między trenowaniem i wnioskowaniem. Eksplorowanie metryk specyficznych dla modelu. Zapewnianie monitorowania i alertów w infrastrukturze uczenia maszynowego.
  • Automatyzowanie kompleksowego cyklu życia uczenia maszynowego przy użyciu uczenia maszynowego i potoków platformy Azure. Używanie potoków do częstego testowania i aktualizowania modeli. Nowe modele uczenia maszynowego można stale wdrażać razem z innymi aplikacjami i usługami.

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

Tworzenie powtarzalnych potoków uczenia maszynowego

Użyj potoków usługi Azure Machine Edukacja, aby połączyć wszystkie kroki procesu trenowania modelu. Potok uczenia maszynowego może zawierać kroki obejmujące przygotowywanie danych, wyodrębnianie funkcji, dostrajanie hiperparametrów i ocenę modelu.

Jeśli używasz projektanta usługi Azure Machine Edukacja do tworzenia potoku uczenia maszynowego, możesz sklonować potok, aby iterować jego projekt bez utraty starych wersji. Aby sklonować potok w dowolnym momencie w projektancie, przejdź do prawego górnego rogu, aby wybrać pozycję ...>Klonuj.

Aby uzyskać więcej informacji na temat potoków usługi Azure Machine Edukacja, zobacz Potoki uczenia maszynowego.

Tworzenie środowisk oprogramowania wielokrotnego użytku

Korzystając ze środowisk usługi Azure Machine Edukacja, można śledzić i odtwarzać zależności oprogramowania projektów w miarę ich rozwoju. Możesz użyć środowisk, aby upewnić się, że kompilacje są odtwarzalne bez ręcznych konfiguracji oprogramowania.

Środowiska opisują zależności pip i conda dla projektów. Środowiska można używać do trenowania i wdrażania modelu. Aby uzyskać więcej informacji na temat środowisk, zobacz Co to są środowiska usługi Azure Machine Edukacja?.

Rejestrowanie, pakowanie i wdrażanie modeli z dowolnego miejsca

W poniższych sekcjach omówiono sposób rejestrowania, tworzenia pakietów i wdrażania modeli.

Rejestrowanie i śledzenie modeli uczenia maszynowego

Dzięki rejestracji modelu możesz przechowywać i wersjonować modele w chmurze platformy Azure w obszarze roboczym. Rejestr modeli ułatwia organizowanie i śledzenie wytrenowanych modeli.

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ć pliki jako pojedynczy model w obszarze roboczym usługi Azure Machine Edukacja. Po rejestracji możesz pobrać lub wdrożyć zarejestrowany model i otrzymać wszystkie pliki składników.

Zarejestrowane modele można zidentyfikować według nazwy i wersji. Za każdym razem, gdy zarejestrujesz model o tej samej nazwie co istniejący model, rejestr zwiększa numer wersji. Tagi metadanych można podać podczas rejestracji i używać tych tagów podczas wyszukiwania modelu. Usługa Azure Machine Edukacja 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 Edukacja.

Ważne

  • Jeśli używasz opcji Filtruj wedługTags na stronie Modele usługi Azure Machine Edukacja Studio, zamiast używać polecenia TagName : TagValue, użyj TagName=TagValue bez spacji.
  • Nie można usunąć zarejestrowanego modelu używanego w aktywnym wdrożeniu.

Aby uzyskać więcej informacji na temat używania modeli w usłudze Azure Machine Edukacja, zobacz Praca z modelami w usłudze Azure Machine Edukacja.

Tworzenie pakietów i debugowanie modeli

Przed wdrożeniem modelu w środowisku produkcyjnym należy go spakować do obrazu platformy Docker. W większości przypadków tworzenie obrazu odbywa się automatycznie w tle podczas wdrażania; można jednak ręcznie określić obraz.

Warto najpierw wdrożyć w lokalnym środowisku projektowym, aby można było rozwiązywać problemy i debugować przed wdrożeniem w chmurze. Ta praktyka może pomóc uniknąć problemów z wdrożeniem w usłudze Azure Machine Edukacja. Aby uzyskać więcej informacji na temat rozwiązywania typowych problemów z wdrażaniem, zobacz Jak rozwiązywać problemy z punktami końcowymi online.

Konwertowanie i optymalizowanie modeli

Możesz przekonwertować model na open neural network exchange (ONNX), aby spróbować poprawić wydajność. Zazwyczaj konwertowanie na ONNX może podwoić wydajność.

Aby uzyskać więcej informacji na temat języka ONNX z Edukacja maszynowym, zobacz Tworzenie i przyspieszanie modeli uczenia maszynowego.

Wdrażanie modeli

Możesz wdrożyć wytrenowane modele uczenia maszynowego jako punkty końcowe w chmurze lub lokalnie. Wdrożenia używają procesora CPU i procesora GPU do wnioskowania.

Podczas wdrażania modelu jako punktu końcowego należy podać następujące elementy:

  • Model używany do oceniania danych przesyłanych do usługi lub urządzenia.
  • Skrypt wpisu 1. Ten skrypt akceptuje żądania, używa modeli do oceniania danych i zwraca odpowiedź.
  • Środowisko2, które opisuje zależności pip i conda wymagane przez modele i skrypt wprowadzania.
  • Wszelkie inne zasoby, takie jak tekst i dane wymagane przez modele i skrypt wprowadzania.

Należy również podać konfigurację docelowej platformy wdrażania. Na przykład typ rodziny maszyn wirtualnych, dostępna pamięć i liczba rdzeni. Po utworzeniu obrazu dodawane są również składniki wymagane przez usługę Azure Machine Edukacja, takie jak zasoby potrzebne do uruchomienia usługi internetowej.

1,2 Podczas wdrażania modelu MLflow nie trzeba podawać skryptu wejścia, znanego również jako skrypt oceniania. Nie musisz również udostępniać środowiska dla wdrożenia. Aby uzyskać więcej informacji na temat wdrażania modeli MLflow, zobacz Wytyczne dotyczące wdrażania modeli MLflow.

Wsadowe ocenianie

Ocenianie wsadowe jest obsługiwane za pośrednictwem punktów końcowych wsadowych. Aby uzyskać więcej informacji na temat oceniania wsadowego, zobacz Punkty końcowe usługi Batch.

Ocenianie w czasie rzeczywistym

Modele można używać z punktem końcowym online na potrzeby oceniania w czasie rzeczywistym. Punkty końcowe online mogą używać następujących celów obliczeniowych:

  • Zarządzane punkty końcowe online
  • Azure Kubernetes Service
  • Lokalne środowisko projektowe

Aby wdrożyć model w punkcie końcowym, należy podać następujące elementy:

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

Aby uzyskać więcej informacji na temat wdrażania oceniania w czasie rzeczywistym, zobacz Wdrażanie punktów końcowych online.

Kontrolowane wdrażanie punktów końcowych online

Podczas wdrażania w punkcie końcowym online można użyć kontrolowanego wdrożenia, aby włączyć następujące scenariusze:

  • Utwórz wiele wersji punktu końcowego dla wdrożenia.
  • Przeprowadź testowanie A/B, rozsyłając ruch do różnych wdrożeń w punkcie końcowym.
  • Przełączanie między wdrożeniami punktów końcowych przez zaktualizowanie wartości procentowej ruchu w konfiguracji punktu końcowego.

Aby uzyskać więcej informacji na temat wdrażania przy użyciu kontrolowanego wdrażania, zobacz Wykonywanie bezpiecznego wdrażania nowych wdrożeń na potrzeby wnioskowania w czasie rzeczywistym.

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 (Integracja usługi Azure Machine Edukacja w usłudze Power BI).

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. Na przykład:

  • Zasoby danych usługi Azure Machine Edukacja ułatwiają śledzenie, profilowanie i dane wersji.
  • Możliwość interpretacji modelu 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 zadań przechowuje migawkę kodu, danych i obliczeń używanych do trenowania modelu.
  • Rejestr modeli usługi Azure Machine Edukacja przechwytuje wszystkie metadane skojarzone z modelem. Na przykład, który eksperyment wytrenował model, gdzie jest wdrażany model, i jeśli wdrożenia modelu są w dobrej kondycji.
  • Integracja z platformą Azure umożliwia wykonywanie działań na zdarzeniach, takich jak rejestracja modelu, wdrażanie, dryf danych i zdarzenia trenowania (zadania) w cyklu życia uczenia maszynowego.

Napiwek

Podczas gdy niektóre informacje o modelach i zasobach danych są automatycznie przechwytywane, możesz dodać więcej informacji przy użyciu tagów. Gdy szukasz zarejestrowanych modeli i zasobów danych w obszarze roboczym, możesz użyć tagów jako filtru.

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 na temat konfigurowania procesów opartych na zdarzeniach opartych na usłudze Azure Machine Edukacja, zobacz Niestandardowe przepływy pracy ciągłej integracji/ciągłego wdrażania i oparte na zdarzeniach.

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 analityk danych sprawdza zmianę w repozytorium Git projektu, usługa Azure Pipelines uruchamia zadanie szkoleniowe. Wyniki zadania 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 machine Edukacja ułatwia pracę z usługą Azure Pipelines. Rozszerzenie 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ą Machine Edukacja, zobacz Use Azure Pipelines with Azure Machine Edukacja (Używanie usługi Azure Pipelines z usługą Azure Machine Edukacja).