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:
- Ciągła integracja i wdrażanie modeli uczenia maszynowego za pomocą usługi Azure Pipelines
- Repozytorium usługi Azure Machine Learning MLOps
- Repozytorium Azure Machine Learning MLOpsPython
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.
Powiązana zawartość
Dowiedz się więcej, czytając i eksplorując następujące zasoby:
- Wdrażanie modeli uczenia maszynowego na platformie Azure
- Samouczek: trenowanie i wdrażanie modelu klasyfikacji obrazów za pomocą przykładowego notesu Jupyter Notebook
- Repozytorium przykładów operacji uczenia maszynowego
- Używanie usługi Azure Pipelines z usługą Azure Machine Learning
- Korzystanie z modelu usługi Azure Machine Learning wdrożonego jako usługa internetowa
- Projektowanie architektury sztucznej inteligencji
- Przykłady, architektury referencyjne i najlepsze rozwiązania