Udostępnij za pośrednictwem


Zarządzanie modelami MLOps za pomocą usługi Azure Machine Learning

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

W tym artykule opisano, jak usługa Azure Machine Learning używa operacji uczenia maszynowego (MLOps) do zarządzania cyklem życia modeli. Zastosowanie rozwiązań MLOps może poprawić jakość i spójność rozwiązań uczenia maszynowego.

Metodyka MLOps opiera się na zasadach i praktykach metodyki DevOps , które zwiększają wydajność przepływów pracy, takich jak ciągła integracja, ciągłe wdrażanie i ciągłe dostarczanie. Zastosowanie tych zasad do cyklu życia uczenia maszynowego powoduje:

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

Możliwości metodyki MLOps

Metodyka MLOps udostępnia następujące możliwości procesu uczenia maszynowego:

  • Tworzenie powtarzalnych potoków uczenia maszynowego w celu zdefiniowania powtarzalnych i wielokrotnego użytku krokó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 oraz śledzenie skojarzonych metadanych wymaganych do korzystania z modelu.
  • Dane pochodzenia dzienników dotyczące ładu cyklu życia uczenia maszynowego, takie jak osoby publikujące modele, dlaczego wprowadzono zmiany oraz kiedy modele zostały wdrożone lub używane w środowisku produkcyjnym.
  • Powiadamianie i zgłaszanie alertów dotyczących zdarzeń cyklu życia uczenia maszynowego, takich jak uzupełnianie eksperymentów, rejestracja modelu, wdrażanie modelu i wykrywanie dryfu danych.
  • Monitorowanie problemów związanych z operacjami i uczeniem maszynowym przez porównanie danych wejściowych modelu, eksplorowanie metryk specyficznych dla modelu oraz wyświetlanie monitorowania i alertów w infrastrukturze uczenia maszynowego.
  • Automatyzacja kompleksowego cyklu życia uczenia maszynowego przy użyciu potoków uczenia maszynowego i usługi Azure Pipelines w celu ciągłego testowania, aktualizowania i wdrażania nowych modeli uczenia maszynowego.

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

Powtarzalne potoki uczenia maszynowego

Użyj potoków usługi Azure Machine Learning, aby połączyć wszystkie kroki procesu trenowania modelu. Kroki potoku uczenia maszynowego mogą obejmować przygotowywanie danych, wyodrębnianie funkcji, dostrajanie hiperparametrów i ocenę modelu.

W projektancie usługi Azure Machine Learning Studio możesz sklonować potok, aby wykonać iterację projektu bez utraty starych wersji. Aby sklonować potok w dowolnym momencie w projektancie, wybierz pozycję Klonuj na górnym pasku menu.

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

Środowiska oprogramowania wielokrotnego użytku

Środowiska usługi Azure Machine Learning zapewniają, że kompilacje są odtwarzalne bez użycia ręcznych konfiguracji oprogramowania. Środowiska mogą śledzić i odtwarzać zależności oprogramowania 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 Środowiska usługi Azure Machine Learning.

Rejestracja, pakowanie i wdrażanie modelu

Usługa Azure Machine Learning może używać metodyki MLOps z dowolnego miejsca do rejestrowania, tworzenia pakietów i wdrażania modeli.

Rejestrowanie i śledzenie modeli

Rejestracja modelu przechowuje i wersje modeli w obszarze roboczym usługi Azure Machine Learning w chmurze platformy Azure. 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 model jest przechowywany w wielu plikach, możesz zarejestrować pliki jako pojedynczy model w obszarze roboczym usługi Azure Machine Learning. Po rejestracji można pobrać lub wdrożyć zarejestrowany model i otrzymać wszystkie pliki składników.

Możesz również zarejestrować modele, które są szkolone poza usługą Azure Machine Learning. 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.

Rejestrujesz zarejestrowane modele 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 do wyszukiwania modelu.

Ważne

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 Learning, zobacz Praca z modelami w usłudze Azure Machine Learning.

Tworzenie pakietów i debugowanie modeli

Aby wdrożyć model w środowisku produkcyjnym, należy najpierw spakować go 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 Learning. 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 usługą Azure Machine Learning, zobacz Tworzenie i przyspieszanie modeli uczenia maszynowego.

Wdrażanie modeli jako punktów końcowych

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

Aby wdrożyć model jako punkt końcowy, należy podać następujące informacje:

  • Model używany do oceniania danych przesyłanych do usługi lub urządzenia.
  • Skrypt wejściowy, nazywany również skryptem oceniania, który akceptuje żądania, używa modeli do oceniania danych i zwraca odpowiedź.
  • Środowisko opisujące zależności i conda wymagane przez modele i skrypt wejścia.
  • Wszelkie inne zasoby, takie jak tekst i dane, wymagane przez model i skrypt wpisu.

Ważne

Podczas wdrażania modelu MLflow nie trzeba podawać skryptu wejścia ani środowiska dla wdrożenia. Aby uzyskać więcej informacji na temat wdrażania modeli MLflow, zobacz Wytyczne dotyczące wdrażania modeli MLflow.

Udostępniasz również konfigurację docelowej platformy wdrażania, taką jak typ rodziny maszyn wirtualnych, dostępna pamięć i liczba rdzeni. Gdy usługa Azure Machine Learning tworzy obraz, dodaje również wszystkie potrzebne składniki, takie jak zasoby potrzebne do uruchomienia usługi internetowej.

Ocenianie wsadowe przy użyciu punktów końcowych wsadowych

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 przy użyciu punktów końcowych online

Modele można używać z punktami końcowymi online na potrzeby oceniania w czasie rzeczywistym. Cele obliczeniowe dla punktów końcowych online mogą być lokalnymi środowiskami programistycznymi, zarządzanymi punktami końcowymi online lub usługą Azure Kubernetes Service (AKS).

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

  • Model lub zespół modeli.
  • Zależności wymagane do korzystania z modelu, na przykład 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.

Metadane ładu cyklu życia uczenia maszynowego

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

  • Zasoby danych usługi Azure Machine Learning 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.
  • Historia zadań usługi Azure Machine Learning przechowuje migawkę kodu, danych i obliczeń używanych do trenowania modelu.
  • Rejestracja modelu usługi Azure Machine Learning przechwytuje wszystkie metadane skojarzone z modelem. Na przykład, który eksperyment trenował model, gdzie jest wdrażany model i czy wdrożenia modelu są w dobrej kondycji.
  • Integracja z platformą Azure umożliwia wykonywanie działań na zdarzeniach w cyklu życia uczenia maszynowego, takich jak rejestracja modelu, wdrażanie, dryf danych i zdarzenia zadania trenowania.

Niektóre informacje o modelach i zasobach danych są automatycznie przechwytywane, ale można 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 filtrów.

Uwaga

Jeśli używasz tagów w opcji Filtruj według na stronie Modele usługi Azure Machine Learning Studio, pamiętaj, aby używać TagName=TagValue bez spacji, a nie TagName : TagValue.

Powiadomienie i alerty dotyczące zdarzenia 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 na temat konfigurowania procesów opartych na zdarzeniach usługi Azure Machine Learning, zobacz Niestandardowe przepływy pracy ciągłej integracji/ciągłego wdrażania i sterowane zdarzeniami.

Automatyzacja cyklu życia uczenia maszynowego

Za pomocą usług Git i Azure Pipelines można utworzyć proces ciągłej integracji, który trenuje model uczenia maszynowego. W typowym scenariuszu, gdy analityk danych sprawdza zmianę w repozytorium Git projektu, usługa Azure Pipelines uruchamia zadanie szkoleniowe.

Możesz sprawdzić wyniki zadania, 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 Machine Learning ułatwia pracę z usługą Azure Pipelines. Rozszerzenie zapewnia następujące ulepszenia usługi Azure Pipelines:

  • Włącza wybór obszaru roboczego usługi Azure Machine Learning podczas definiowania połączenia z usługą.
  • Umożliwia wytrenowane tworzenie modelu w potoku trenowania w celu wyzwolenia wdrożenia w usłudze Azure Pipelines.

Aby uzyskać więcej informacji na temat korzystania z usługi Azure Pipelines z usługą Azure Machine Learning, zobacz Używanie usługi Azure Pipelines z usługą Azure Machine Learning.

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).