Udostępnij przez


Punkty końcowe wnioskowania w środowisku produkcyjnym

DOTYCZY:Rozszerzenie Azure CLI ml w wersji 2 (bieżąca)Python SDK azure-ai-ml w wersji 2 (bieżąca)

Po wyszkoleniu modeli uczenia maszynowego lub potokach lub znalezieniu odpowiednich modeli z katalogu modeli należy wdrożyć je w środowisku produkcyjnym, aby inne osoby mogły korzystać z wnioskowania. Wnioskowanie to proces stosowania nowych danych wejściowych do modelu uczenia maszynowego lub potoku w celu wygenerowania danych wyjściowych. Chociaż te dane wyjściowe są zwykle nazywane "przewidywaniami", wnioskowanie może generować dane wyjściowe dla innych zadań uczenia maszynowego, takich jak klasyfikacja i klastrowanie. W usłudze Azure Machine Learning wnioskowanie jest wykonywane przy użyciu punktów końcowych.

Punkty końcowe i wdrożenia

Punkt końcowy to stabilny i trwały adres URL, którego można użyć do żądania lub wywołania modelu. Należy podać wymagane dane wejściowe do punktu końcowego i odebrać dane wyjściowe. Usługa Azure Machine Learning obsługuje standardowe wdrożenia, punkty końcowe online i punkty końcowe wsadowe. Punkt końcowy zapewnia:

  • Stabilny i trwały adres URL (taki jak endpoint-name.region.inference.ml.azure.com)
  • Mechanizm uwierzytelniania
  • Mechanizm autoryzacji

Wdrożenie to zestaw zasobów i zasobów obliczeniowych wymaganych do hostowania modelu lub składnika, który wykonuje rzeczywiste wnioskowanie. Punkt końcowy zawiera wdrożenie. W przypadku punktów końcowych, zarówno online, jak i wsadowych, jeden punkt końcowy może zawierać kilka działań wdrożeniowych. Wdrożenia mogą hostować niezależne zasoby i zużywać różne zasoby na podstawie potrzeb zasobów. Punkt końcowy ma również mechanizm routingu, który może kierować żądania do dowolnego z jego wdrożeń.

Niektóre typy punktów końcowych w usłudze Azure Machine Learning zużywają dedykowane zasoby we wdrożeniach. Aby te punkty końcowe były uruchamiane, musisz mieć limit przydziału zasobów obliczeniowych w ramach subskrypcji platformy Azure. Jednak niektóre modele obsługują wdrożenie bezserwerowe, co pozwala im nie korzystać z limitu przydziału z twojej subskrypcji. W przypadku wdrożeń bezserwerowych opłaty są naliczane na podstawie użycia.

Intuition

Załóżmy, że pracujesz nad aplikacją, która przewiduje typ i kolor samochodu ze zdjęcia. W przypadku tej aplikacji użytkownik z pewnymi poświadczeniami wysyła żądanie HTTP do adresu URL i udostępnia obraz samochodu w ramach żądania. W zamian użytkownik otrzymuje odpowiedź zawierającą typ i kolor samochodu jako wartości ciągu. W tym scenariuszu adres URL służy jako punkt końcowy.

Diagram przedstawiający koncepcję punktu końcowego.

Teraz załóżmy, że analityk danych Alice implementuje aplikację. Alice ma rozbudowane środowisko TensorFlow i decyduje się wdrożyć model przy użyciu klasyfikatora sekwencyjnego Keras z architekturą ResNet z usługi TensorFlow Hub. Po przetestowaniu modelu Alice jest zadowolona ze swoich wyników i decyduje się na użycie modelu do rozwiązania problemu z przewidywaniem samochodu. Model jest duży i wymaga 8 GB pamięci z 4 rdzeniami do uruchomienia. W tym scenariuszu model Alicji i zasoby — takie jak kod i obliczenia — które są wymagane do uruchomienia modelu tworzą wdrożenie w punkcie końcowym.

Diagram przedstawiający koncepcję wdrożenia.

Po kilku miesiącach organizacja odkrywa, że aplikacja działa słabo na obrazach ze słabymi warunkami oświetlenia. Bob, inny analityk danych, ma wiedzę na temat technik rozszerzania danych, które pomagają modelom tworzyć niezawodność tego czynnika. Jednak Bob woli używać PyTorch do implementowania modelu i trenowania nowego modelu z PyTorch. Bob chce stopniowo testować ten model w środowisku produkcyjnym, dopóki organizacja nie będzie gotowa do wycofania starego modelu. Nowy model działa również lepiej podczas wdrażania na GPU, więc wdrożenie musi obejmować GPU. W tym scenariuszu model Boba i zasoby — takie jak kod i obliczenia — które są wymagane do uruchomienia modelu tworzą kolejne wdrożenie w ramach tego samego punktu końcowego.

Diagram przedstawiający koncepcję punktu końcowego z wieloma wdrożeniami.

Punkty końcowe: standardowe wdrożenie, online i wsadowe

Usługa Azure Machine Learning obsługuje standardowe wdrożenia, punkty końcowe online i punkty końcowe wsadowe.

Wdrożenia standardowe i punkty końcowe online są przeznaczone do wnioskowania w czasie rzeczywistym. Po wywołaniu punktu końcowego wyniki są zwracane w odpowiedzi punktu końcowego. Wdrożenia standardowe nie korzystają z limitu przydziału z subskrypcji; zamiast tego są rozliczane standardowo.

Punkty końcowe usługi Batch są przeznaczone do długotrwałego wnioskowania wsadowego. Podczas wywoływania punktu końcowego wsadowego generowane jest zadanie wsadowe, które wykonuje rzeczywistą pracę.

Kiedy należy używać standardowych punktów końcowych wdrażania, online i wsadowych

Wdrożenie standardowe:

Użyj standardowych wdrożeń, aby korzystać z dużych bazowych modeli na potrzeby wnioskowania w czasie rzeczywistym gotowych do użycia lub dostrajania takich modeli. Nie wszystkie modele są dostępne do wdrożenia we wdrożeniach standardowych. Zalecamy używanie tego trybu wdrażania w przypadku:

  • Państwa model to model bazowy lub dostosowana wersja modelu bazowego, który jest dostępny do standardowych wdrożeń.
  • Możesz skorzystać z wdrożenia bez limitu przydziału.
  • Nie musisz dostosowywać stosu wnioskowania używanego do uruchamiania modelu.

Punkty końcowe online:

Użyj punktów końcowych online , aby wdrożyć modele do wnioskowania w czasie rzeczywistym w synchronicznych żądaniach o niskim opóźnieniu. Zalecamy ich używanie w przypadku:

  • Twój model jest podstawowym modelem lub dostrojoną wersją podstawowego modelu, ale nie jest obsługiwany w standardowym środowisku wdrożeniowym.
  • Wymagania dotyczące małych opóźnień.
  • Model może odpowiedzieć na żądanie w stosunkowo krótkim czasie.
  • Dane wejściowe modelu mieszczą się w pakiecie żądania HTTP.
  • Musisz skalować w górę pod względem liczby żądań.

Punkty końcowe usługi Batch:

Użyj punktów końcowych wsadowych , aby operacjonalizować modele lub potoki na potrzeby długotrwałego wnioskowania asynchronicznego. Zalecamy ich używanie w przypadku:

  • Masz kosztowne modele lub potoki, które wymagają dłuższego czasu do uruchomienia.
  • Chcesz operacjonalizować potoki uczenia maszynowego i ponownie używać składników.
  • Należy przeprowadzić wnioskowanie na dużych ilościach danych, które są dystrybuowane w wielu plikach.
  • Nie masz wymagań dotyczących małych opóźnień.
  • Dane wejściowe modelu są przechowywane na koncie magazynu lub w zasobie danych usługi Azure Machine Learning.
  • Możesz skorzystać z równoległości.

Porównanie standardowych punktów wdrożenia, punktów końcowych online oraz wsadowych punktów końcowych

Wszystkie standardowe wdrożenia, punkty końcowe online i punkty końcowe wsadowe są oparte na idei punktów końcowych, dlatego można łatwo przejść z jednego do drugiego. Punkty końcowe online i wsadowe mogą również zarządzać wieloma wdrożeniami dla tego samego punktu końcowego.

Endpoints

W poniższej tabeli przedstawiono podsumowanie różnych funkcji dostępnych na poziomie punktu końcowego dla standardowych wdrożeń, punktów końcowych online i punktów końcowych wsadowych.

Feature Wdrożenia standardowe Punkty końcowe online Punkty końcowe usługi Batch
Stabilny adres URL wywołania Yes Yes Yes
Obsługa wielu wdrożeń No Yes Yes
Routing wdrożenia None Podział ruchu Przełącz do domyślnego
Dublowanie ruchu w celu bezpiecznego wprowadzania No Yes No
Obsługa Swagger Yes Yes No
Authentication Key Klucz i identyfikator entra firmy Microsoft (wersja zapoznawcza) Microsoft Entra ID
Obsługa sieci prywatnej (starsza wersja) No Yes Yes
Izolacja sieci zarządzanej Yes Yes Tak (zobacz wymaganą dodatkową konfigurację)
Klucze zarządzane przez klienta NA Yes Yes
Podstawa kosztów Na punkt końcowy, na minutę1 None None

1Niewielka część jest naliczana za każdą minutę standardowego wdrożenia. Zobacz sekcję wdrożenia, aby uzyskać opłaty związane z konsumpcją, które są rozliczane za token.

Deployments

W poniższej tabeli przedstawiono podsumowanie różnych funkcji dostępnych dla standardowych wdrożeń, punktów końcowych online i punktów końcowych partii na poziomie wdrożenia. Te koncepcje dotyczą każdego wdrożenia w punkcie końcowym (w przypadku punktów końcowych online i wsadowych) oraz mają zastosowanie do standardowych wdrożeń (gdzie koncepcja wdrożenia jest wbudowana w punkt końcowy).

Feature Wdrożenia standardowe Punkty końcowe online Punkty końcowe usługi Batch
Typy wdrożeń Models Models Modele i składniki potoku
Wdrażanie modelu MLflow Nie, tylko określone modele w wykazie Yes Yes
Wdrażanie modelu niestandardowego Nie, tylko określone modele w wykazie Tak, ze skryptem oceniania Tak, ze skryptem oceniania
Serwer wnioskowania 3 Interfejs API wnioskowania modelu Azure AI — Serwer wnioskowania usługi Azure Machine Learning
-Tryton
- Niestandardowe (przy użyciu byOC)
Wnioskowanie wsadowe
Wykorzystany zasób obliczeniowy Brak (bezserwerowy) Wystąpienia lub szczegółowe zasoby Wystąpienia klastra
Typ środowiska obliczeniowego Brak (bezserwerowy) Zarządzane obliczenia i platforma Kubernetes Zarządzane obliczenia i platforma Kubernetes
Obliczenia o niskim priorytcie NA No Yes
Skalowanie obliczeń do zera Built-in No Yes
Skalowanie automatyczne przetwarzania4 Built-in Tak, na podstawie użycia zasobów Tak, na podstawie liczby zadań
Zarządzanie nadwyżkami zdolności produkcyjnych Throttling Throttling Queuing
Podstawa kosztu5 Za token Na wdrożenie: uruchomione wystąpienia obliczeniowe Dla każdego zadania: wystąpienia obliczeniowe wykorzystywane w zadaniu (ograniczone do maksymalnej liczby wystąpień klastra)
Lokalne testowanie wdrożeń No Yes No

2Serwer wnioskowania odnosi się do technologii obsługującej, która pobiera żądania, przetwarza je i tworzy odpowiedzi. Serwer wnioskowania określa również format danych wejściowych i oczekiwanych danych wyjściowych.

3Autoskalowanie to możliwość dynamicznego skalowania w górę lub w dół przydzielonych zasobów wdrożenia na podstawie obciążenia. Wdrożenia online i wsadowe używają różnych strategii skalowania automatycznego. Wdrożenia online są skalowane w górę i w dół na podstawie wykorzystania zasobów (na przykład procesora CPU, pamięci, żądań itp.), punkty końcowe wsadowe są skalowane w górę lub w dół na podstawie liczby utworzonych zadań.

4 Opłaty za wdrożenia online i wsadowe są naliczane na podstawie zużytych zasobów. We wdrożeniach online zasoby są aprowizowane w czasie wdrażania. W przypadku wdrożeń wsadowych zasoby nie są używane w czasie wdrażania, ale w momencie uruchomienia zadania. W związku z tym nie ma żadnych kosztów związanych z samym wdrożeniem wsadowym. Podobnie zadania w kolejce nie zużywają zasobów.

Interfejsy deweloperskie

Punkty końcowe zostały zaprojektowane w celu ułatwienia organizacjom operacjonalizacji obciążeń na poziomie produkcyjnym w usłudze Azure Machine Learning. Punkty końcowe są niezawodnymi i skalowalnymi zasobami i zapewniają najlepsze możliwości implementowania przepływów pracy metodyki MLOps.

Punkty końcowe wsadowe i online można tworzyć i zarządzać nimi za pomocą kilku narzędzi programistycznych:

  • Interfejs wiersza poleceń platformy Azure i zestaw SDK dla Pythona
  • Azure Resource Manager/interfejs API REST
  • Portal internetowy usługi Azure Machine Learning Studio
  • Witryna Azure Portal (IT/administrator)
  • Obsługa potoków ciągłej integracji/ciągłego wdrażania metodyki MLOps przy użyciu interfejsu wiersza polecenia platformy Azure i interfejsów REST/ARM