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.
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.
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.
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
- Jak wdrażać punkty końcowe online przy użyciu interfejsu wiersza polecenia platformy Azure i zestawu SDK języka Python
- Jak wdrażać modele przy użyciu punktów końcowych wsadowych
- Jak wdrażać potoki z punktami końcowymi wsadowymi
- Jak używać punktów końcowych online w programie Studio
- Jak monitorować zarządzane punkty końcowe online
- Zwiększanie limitów przydziału zasobów i zarządzanie nimi przy użyciu usługi Azure Machine Learning