Udostępnij za pośrednictwem


Pakiety modelu do wdrożenia (wersja zapoznawcza)

Po wytrenowania modelu uczenia maszynowego należy go wdrożyć, aby inne osoby mogły korzystać z jego przewidywań. Jednak wdrożenie modelu wymaga więcej niż tylko wag lub artefaktów modelu. Pakiety modeli to funkcja w usłudze Azure Machine Learning, która umożliwia zbieranie wszystkich zależności wymaganych do wdrożenia modelu uczenia maszynowego na platformie obsługującej. Pakiety można przenosić między obszarami roboczymi, a nawet poza usługą Azure Machine Learning.

Ważne

Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej 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 pakiet modelu?

Najlepszym rozwiązaniem przed wdrożeniem modelu wszystkie zależności wymagane przez model do pomyślnego uruchomienia muszą zostać zebrane i rozwiązane, aby można było wdrożyć model w powtarzalnym i niezawodnym podejściu.

Zrzut ekranu przedstawiający zależności zebrane podczas operacji pakietu modelu.

Zazwyczaj zależności modelu obejmują:

  • Obraz podstawowy lub środowisko, w którym jest wykonywany model.
  • Lista pakietów i zależności języka Python, od których zależy odpowiednia funkcja modelu.
  • Dodatkowe zasoby, których model może wymagać wygenerowania wnioskowania. Te zasoby mogą obejmować mapy etykiet i parametry przetwarzania wstępnego.
  • Oprogramowanie wymagane do obsługi żądań przez serwer wnioskowania; na przykład flask server lub TensorFlow Serving.
  • Procedury wnioskowania (jeśli jest to wymagane).

Wszystkie te elementy należy zebrać, aby następnie zostały wdrożone w infrastrukturze obsługującej. Wynikowy zasób wygenerowany po zebraniu wszystkich zależności jest nazywany pakietem modelu.

Zalety modeli pakowania

Tworzenie pakietów modeli przed wdrożeniem ma następujące zalety:

  • Powtarzalność: wszystkie zależności są zbierane w czasie pakowania, a nie w czasie wdrażania. Po rozwiązaniu zależności można wdrożyć pakiet tyle razy, ile to konieczne, gwarantując, że zależności zostały już rozwiązane.
  • Szybsze rozwiązywanie konfliktów: usługa Azure Machine Learning wykrywa wszelkie błędy konfiguracji związane z zależnościami, takie jak brakujący pakiet języka Python, podczas tworzenia pakietów modelu. Nie musisz wdrażać modelu, aby wykryć takie problemy.
  • Łatwiejsza integracja z serwerem wnioskowania: ponieważ używany serwer wnioskowania może wymagać określonych konfiguracji oprogramowania (na przykład pakietu Torch Serve), takie oprogramowanie może generować konflikty z zależnościami modelu. Pakiety modeli w usłudze Azure Machine Learning wprowadzają zależności wymagane przez serwer wnioskowania, aby ułatwić wykrywanie konfliktów przed wdrożeniem modelu.
  • Przenośność: pakiety modeli usługi Azure Machine Learning można przenosić z jednego obszaru roboczego do innego przy użyciu rejestrów. Można również wygenerować pakiety, które można wdrożyć poza usługą Azure Machine Learning.
  • Obsługa platformy MLflow z sieciami prywatnymi: w przypadku modeli MLflow usługa Azure Machine Learning wymaga połączenia internetowego, aby móc dynamicznie instalować niezbędne pakiety języka Python dla modeli do uruchomienia. Pakując modele MLflow, te pakiety języka Python są rozwiązywane podczas operacji pakowania modelu, aby pakiet modelu MLflow nie wymagał wdrożenia połączenia internetowego.

Napiwek

Pakowanie modelu MLflow przed wdrożeniem jest zdecydowanie zalecane, a nawet wymagane w przypadku punktów końcowych, które nie mają łączności wychodzącej sieci. Model MLflow wskazuje jego zależności w samym modelu, co wymaga dynamicznej instalacji pakietów. Po spakowaniu modelu MLflow ta dynamiczna instalacja jest wykonywana w czasie pakowania, a nie w czasie wdrażania.

Wdrażanie pakietów modelu

Pakiety modelu można udostępniać jako dane wejściowe do punktów końcowych online. Użycie pakietów modelu pomaga usprawnić przepływy pracy metodyki MLOps przez zmniejszenie prawdopodobieństwa błędów w czasie wdrażania, ponieważ wszystkie zależności zostałyby zebrane podczas operacji pakowania. Możesz również skonfigurować pakiet modelu w celu wygenerowania obrazów platformy Docker do wdrożenia w dowolnym miejscu poza usługą Azure Machine Learning lokalnie lub w chmurze.

Zrzut ekranu przedstawiający wszystkie możliwe elementy docelowe pakietu modelu.

Pakiet przed wdrożeniem

Najprostszym sposobem wdrożenia przy użyciu pakietu modelu jest określenie w usłudze Azure Machine Learning wdrożenia pakietu modelu przed wykonaniem wdrożenia. W przypadku korzystania z interfejsu wiersza polecenia platformy Azure, zestawu Azure Machine Learning SDK lub usługi Azure Machine Learning Studio w celu utworzenia wdrożenia w punkcie końcowym online można określić użycie pakietu modelu w następujący sposób:

Użyj flagi --with-package podczas tworzenia wdrożenia:

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

Usługa Azure Machine Learning najpierw pakuje model, a następnie wykonuje wdrożenie.

Uwaga

W przypadku korzystania z pakietów, jeśli wskazujesz środowisko podstawowe z zależnościami lub pip z conda innymi zależnościami, nie musisz uwzględniać zależności serwera wnioskowania (azureml-inference-server-http). Zamiast tego te zależności są automatycznie dodawane.

Wdrażanie spakowanego modelu

Możesz wdrożyć model, który został spakowany bezpośrednio w punkcie końcowym online. Ta praktyka zapewnia powtarzalność wyników i jest to najlepsze rozwiązanie. Zobacz Pakowanie i wdrażanie modeli w punktach końcowych online.

Jeśli chcesz wdrożyć pakiet poza usługą Azure Machine Learning, zobacz Pakowanie i wdrażanie modeli poza usługą Azure Machine Learning.

Następny krok