Punkty końcowe wnioskowania w środowisku produkcyjnym

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

Po wytrenowania modeli lub potoków uczenia maszynowego należy wdrożyć je w środowisku produkcyjnym, aby inne osoby mogły ich używać do 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 określane jako "przewidywania", wnioskowanie może służyć do generowania danych wyjściowych dla innych zadań uczenia maszynowego, takich jak klasyfikacja i klastrowanie. W usłudze Azure Machine Edukacja wnioskowanie jest wykonywane przy użyciu punktów końcowych i wdrożeń. Punkty końcowe i wdrożenia umożliwiają oddzielenie interfejsu obciążenia produkcyjnego od implementacji, która ją obsługuje.

Intuicji

Załóżmy, że pracujesz nad aplikacją, która przewiduje typ i kolor samochodu, biorąc pod uwagę jego zdjęcie. 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.

A diagram showing the concept of an endpoint.

Ponadto załóżmy, że analityk danych Alice pracuje nad implementacją aplikacji. Alice wie wiele o tensorFlow i decyduje się wdrożyć model przy użyciu klasyfikatora sekwencyjnego Keras z architekturą RestNet z usługi TensorFlow Hub. Po przetestowaniu modelu Alice jest zadowolona z 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 i zasoby Alice, takie jak kod i obliczenia, które są wymagane do uruchomienia modelu tworzą wdrożenie w punkcie końcowym.

A diagram showing the concept of a deployment.

Na koniec wyobraźmy sobie, że po kilku miesiącach organizacja odkrywa, że aplikacja działa słabo na obrazach z mniej niż idealnymi warunkami oświetlenia. Bob, inny analityk danych, zna wiele technik rozszerzania danych, które pomagają modelowi w tworzeniu niezawodności tego czynnika. Jednak Bob czuje się bardziej komfortowo za pomocą Torch do zaimplementowania modelu i trenuje nowy model z Torch. Bob chce stopniowo wypróbować ten model w środowisku produkcyjnym, dopóki organizacja nie będzie gotowa do wycofania starego modelu. Nowy model pokazuje również lepszą wydajność podczas wdrażania w procesorze GPU, więc wdrożenie musi zawierać procesor 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.

A diagram showing the concept of an endpoint with multiple deployments.

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 odzyskać dane wyjściowe. Punkt końcowy zapewnia:

  • stabilny i trwały adres URL (na przykład endpoint-name.region.inference.ml.azure.com),
  • mechanizm uwierzytelniania i
  • mechanizm autoryzacji.

Wdrożenie to zestaw zasobów i obliczeń wymaganych do hostowania modelu lub składnika, który wykonuje rzeczywiste wnioskowanie. Pojedynczy punkt końcowy może zawierać wiele wdrożeń. Te wdrożenia mogą hostować niezależne zasoby i wykorzystywać różne zasoby na podstawie potrzeb zasobów. Punkty końcowe mają mechanizm routingu, który może kierować żądania do określonych wdrożeń w punkcie końcowym.

Aby działać prawidłowo, każdy punkt końcowy musi mieć co najmniej jedno wdrożenie. Punkty końcowe i wdrożenia są niezależnymi zasobami usługi Azure Resource Manager, które są wyświetlane w witrynie Azure Portal.

Punkty końcowe online i wsadowe

Usługa Azure Machine Edukacja umożliwia implementowanie punktów końcowych online i punktów końcowych wsadowych. Punkty końcowe online są przeznaczone do wnioskowania w czasie rzeczywistym — podczas wywoływania punktu końcowego wyniki są zwracane w odpowiedzi punktu końcowego. Z drugiej strony punkty końcowe usługi Batch są przeznaczone do długotrwałego wnioskowania wsadowego. Za każdym razem, gdy wywołujesz punkt końcowy partii, generujesz zadanie wsadowe, które wykonuje rzeczywistą pracę.

Kiedy używać punktu końcowego online a punktu końcowego wsadowego w przypadku użycia

Użyj punktów końcowych online, aby operacjonalizować modele na potrzeby wnioskowania w czasie rzeczywistym w synchronicznych żądaniach o małych opóźnieniach. Zalecamy ich używanie w przypadku:

  • 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 ładunku HTTP żądania.
  • Musisz skalować w górę pod względem liczby żądań.

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 Edukacja.
  • Możesz skorzystać z równoległości.

Porównanie punktów końcowych online i wsadowych

Zarówno punkty końcowe online, jak i wsadowe są oparte na idei punktów końcowych i wdrożeń, co ułatwia przejście z jednego do drugiego. Jednak podczas przechodzenia między sobą istnieją pewne różnice, które należy wziąć pod uwagę. Niektóre z tych różnic są spowodowane charakterem pracy:

Punkty końcowe

W poniższej tabeli przedstawiono podsumowanie różnych funkcji dostępnych dla punktów końcowych online i wsadowych.

Funkcja Punkty końcowe online Punkty końcowe usługi Batch
Stabilny adres URL wywołania Tak Tak
Obsługa wielu wdrożeń Tak Tak
Routing wdrożenia Podział ruchu Przełącz do domyślnego
Dublowanie ruchu w celu bezpiecznego wprowadzania Tak Nie.
Obsługa struktury Swagger Tak Nie.
Uwierzytelnianie Klucz i token Tożsamość Microsoft Entra
Obsługa sieci prywatnej Tak Tak
Izolacja sieci zarządzanej Tak Tak (zobacz wymaganą dodatkową konfigurację)
Klucze zarządzane przez klienta Tak Tak
Podstawa kosztów Brak Brak

Wdrożenia

W poniższej tabeli przedstawiono podsumowanie różnych funkcji dostępnych dla punktów końcowych online i wsadowych na poziomie wdrożenia. Te pojęcia dotyczą każdego wdrożenia w punkcie końcowym.

Funkcja Punkty końcowe online Punkty końcowe usługi Batch
Typy wdrożeń Modele Modele i składniki potoku
Wdrażanie modelu MLflow Tak Tak
Wdrażanie modelu niestandardowego Tak, ze skryptem oceniania Tak, ze skryptem oceniania
Wdrożenie pakietu modelu 1 Tak (wersja zapoznawcza) Nie.
Serwer wnioskowania 2 — Serwer wnioskowania Edukacja maszyny platformy Azure
-Triton
- Niestandardowe (przy użyciu byOC)
Wnioskowanie wsadowe
Wykorzystany zasób obliczeniowy Wystąpienia lub szczegółowe zasoby Wystąpienia klastra
Typ środowiska obliczeniowego Zarządzane obliczenia i platforma Kubernetes Zarządzane obliczenia i platforma Kubernetes
Obliczenia o niskim priorytcie Nie. Tak
Skalowanie obliczeń do zera Nie. Tak
Skalowanie automatyczne obliczeń3 Tak, na podstawie obciążenia zasobów Tak, na podstawie liczby zadań
Zarządzanie nadwyżkami zdolności produkcyjnych Ograniczanie przepływności Kolejkowanie
Podstawakosztów 4 Na wdrożenie: uruchomione wystąpienia obliczeniowe Na zadanie: wystąpienie obliczeniowe używane w zadaniu (ograniczone do maksymalnej liczby wystąpień klastra).
Lokalne testowanie wdrożeń Tak Nie.

1 Wdrażanie modeli MLflow w punktach końcowych bez wychodzącej łączności internetowej lub sieci prywatnych wymaga najpierw spakowania modelu .

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 przez zużyte zasoby. We wdrożeniach online zasoby są aprowizowane w czasie wdrażania. Jednak we wdrożeniu wsadowym żadne zasoby nie są używane w czasie wdrażania, ale gdy zadanie zostanie uruchomione. W związku z tym nie ma żadnych kosztów związanych z samym wdrożeniem. Zwróć uwagę, że zadania w kolejce nie zużywają zasobów.

Interfejsy deweloperskie

Punkty końcowe zostały zaprojektowane tak, aby ułatwić organizacjom operacjonalizacja obciążeń na poziomie produkcyjnym w usłudze Azure Machine Edukacja. 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ą wielu narzędzi deweloperskich:

  • Interfejs wiersza polecenia platformy Azure i zestaw PYTHON SDK
  • Azure Resource Manager/interfejs API REST
  • Portal internetowy usługi Azure Machine Edukacja Studio
  • Azure Portal (IT/Administracja)
  • 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

Następne kroki