Wdrażanie punktu końcowego online na potrzeby wnioskowania w czasie rzeczywistym
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)
W tym artykule opisano punkty końcowe online na potrzeby wnioskowania w czasie rzeczywistym w usłudze Azure Machine Learning. Wnioskowanie to proces stosowania nowych danych wejściowych do modelu uczenia maszynowego w celu wygenerowania danych wyjściowych. Usługa Azure Machine Learning umożliwia wnioskowanie danych w czasie rzeczywistym przy użyciu modeli wdrożonych w punktach końcowych online. Chociaż te dane wyjściowe są zwykle nazywane przewidywaniami, można użyć wnioskowania w celu wygenerowania danych wyjściowych dla innych zadań uczenia maszynowego, takich jak klasyfikacja i klastrowanie.
Punkty końcowe online
Punkty końcowe online wdrażają modele na serwerze internetowym, który może zwracać przewidywania w ramach protokołu HTTP. Punkty końcowe online mogą operacjonalizować modele na potrzeby wnioskowania w czasie rzeczywistym w żądaniach synchronicznych, o małych opóźnieniach i najlepiej używać ich 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.
- Należy skalować w górę liczbę żądań.
Aby zdefiniować punkt końcowy, należy określić:
- Nazwa punktu końcowego. Ta nazwa musi być unikatowa w regionie świadczenia usługi Azure. Aby uzyskać inne wymagania dotyczące nazewnictwa, zobacz Punkty końcowe online i punkty końcowe wsadowe usługi Azure Machine Learning.
- Tryb uwierzytelniania. Możesz wybrać tryb uwierzytelniania oparty na kluczach, tryb uwierzytelniania oparty na tokenach usługi Azure Machine Learning lub uwierzytelnianie oparte na tokenach firmy Microsoft dla punktu końcowego. Aby uzyskać więcej informacji na temat uwierzytelniania, zobacz Uwierzytelnianie klientów dla punktów końcowych online.
Zarządzane punkty końcowe online
Zarządzane punkty końcowe online wdrażają modele uczenia maszynowego w wygodny, łatwy w użyciu sposób i są zalecanym sposobem korzystania z punktów końcowych online usługi Azure Machine Learning. Zarządzane punkty końcowe online współpracują z maszynami o zaawansowanych procesorach CPU i GPU na platformie Azure w sposób skalowalny i w pełni zarządzany.
Aby uwolnić Cię od obciążeń związanych z konfigurowaniem podstawowej infrastruktury i zarządzaniem nią, te punkty końcowe również zajmują się obsługą, skalowaniem, zabezpieczaniem i monitorowaniem modeli. Aby dowiedzieć się, jak definiować zarządzane punkty końcowe online, zobacz Definiowanie punktu końcowego.
Zarządzane punkty końcowe online vs Azure Container Instances lub Azure Kubernetes Service (AKS) v1
Zarządzane punkty końcowe online to zalecany sposób korzystania z punktów końcowych online w usłudze Azure Machine Learning. W poniższej tabeli przedstawiono kluczowe atrybuty zarządzanych punktów końcowych online w porównaniu z usługami Azure Container Instances i Azure Kubernetes Service (AKS) w wersji 1.
Atrybuty | Zarządzane punkty końcowe online (wersja 2) | Container Instances lub AKS (wersja 1) |
---|---|---|
Zabezpieczenia/izolacja sieci | Łatwa kontrola ruchu przychodzącego/wychodzącego z szybkim przełącznikiem | Sieć wirtualna nie jest obsługiwana lub wymaga złożonej konfiguracji ręcznej |
Usługa zarządzana | • W pełni zarządzana aprowizacja/skalowanie zasobów obliczeniowych • Konfiguracja sieci na potrzeby zapobiegania eksfiltracji danych • Uaktualnianie systemu operacyjnego hosta, kontrolowane wdrażanie aktualizacji w miejscu |
• Skalowanie jest ograniczone • Użytkownik musi zarządzać konfiguracją sieci lub uaktualnieniem |
Koncepcja punktu końcowego/wdrożenia | Rozróżnienie między punktem końcowym a wdrożeniem umożliwia wykonywanie złożonych scenariuszy, takich jak bezpieczne wdrażanie modeli | Brak pojęcia punktu końcowego |
Diagnostyka i monitorowanie | • Lokalne debugowanie punktów końcowych możliwe za pomocą platformy Docker i programu Visual Studio Code • Zaawansowana analiza metryk i dzienników przy użyciu wykresu/zapytania w celu porównania między wdrożeniami • Podział kosztów na poziom wdrożenia |
Brak łatwego debugowania lokalnego |
Skalowalność | Elastyczne i automatyczne skalowanie (nie jest powiązane z domyślnym rozmiarem klastra) | • Usługa Container Instances nie jest skalowalna • Usługa AKS w wersji 1 obsługuje tylko skalowanie w klastrze i wymaga konfiguracji skalowalności |
Gotowość przedsiębiorstwa | Usługa Private Link, klucze zarządzane przez klienta, identyfikator entra firmy Microsoft, zarządzanie limitami przydziałów, integracja rozliczeń, umowa dotycząca poziomu usług (SLA) | Nieobsługiwane |
Zaawansowane funkcje uczenia maszynowego | • Zbieranie danych modelu • Monitorowanie modelu • Model champion-challenger, bezpieczne wdrażanie, dublowanie ruchu • Rozszerzalność odpowiedzialnej sztucznej inteligencji |
Nieobsługiwane |
Zarządzane punkty końcowe online a punkty końcowe online platformy Kubernetes
Jeśli wolisz używać platformy Kubernetes do wdrażania modeli i obsługi punktów końcowych, a także dobrze zarządzasz wymaganiami dotyczącymi infrastruktury, możesz użyć punktów końcowych online platformy Kubernetes. Te punkty końcowe umożliwiają wdrażanie modeli i obsługę punktów końcowych online za pomocą procesorów CPU lub procesorów GPU w w pełni skonfigurowanym i zarządzanym klastrze Kubernetes w dowolnym miejscu.
Zarządzane punkty końcowe online mogą pomóc usprawnić proces wdrażania i zapewnić następujące korzyści w przypadku punktów końcowych online platformy Kubernetes:
Automatyczne zarządzanie infrastrukturą
- Aprowizuje obliczenia i hostuje model. Wystarczy określić typ maszyny wirtualnej i ustawienia skalowania.
- Aktualizuje i poprawia podstawowy obraz systemu operacyjnego hosta.
- Wykonuje odzyskiwanie węzła, jeśli wystąpi awaria systemu.
Monitorowanie i dzienniki
- Możliwość monitorowania dostępności, wydajności i umowy SLA modelu przy użyciu natywnej integracji z usługą Azure Monitor.
- Łatwość debugowania wdrożeń przy użyciu dzienników i natywnej integracji z usługą Log Analytics.
Widok analiza kosztów umożliwia monitorowanie kosztów na poziomie punktu końcowego i wdrożenia.
Uwaga
Zarządzane punkty końcowe online są oparte na obliczeniach usługi Azure Machine Learning. W przypadku korzystania z zarządzanego punktu końcowego online płacisz za opłaty za zasoby obliczeniowe i sieciowe. Nie ma dodatkowej opłaty. Aby uzyskać więcej informacji na temat cen, zobacz kalkulator cen platformy Azure.
Jeśli używasz sieci wirtualnej usługi Azure Machine Learning do zabezpieczania ruchu wychodzącego z zarządzanego punktu końcowego online, opłaty są naliczane za użycie łącza prywatnego platformy Azure i w pełni kwalifikowanej nazwy domeny (FQDN), których używa zarządzana sieć wirtualna. Aby uzyskać więcej informacji, zobacz Cennik zarządzanej sieci wirtualnej.
W poniższej tabeli przedstawiono najważniejsze różnice między zarządzanymi punktami końcowymi online i punktami końcowymi online platformy Kubernetes.
Zarządzane punkty końcowe online | Punkty końcowe online platformy Kubernetes (AKS w wersji 2) | |
---|---|---|
Zalecani użytkownicy | Użytkownicy, którzy potrzebują zarządzanego wdrażania modeli i ulepszonego środowiska MLOps | Użytkownicy, którzy preferują platformę Kubernetes i mogą samodzielnie zarządzać wymaganiami infrastruktury |
Aprowizowanie węzłów | Aprowizowanie, aktualizowanie, usuwanie zarządzanych zasobów obliczeniowych | Odpowiedzialność użytkowników |
Konserwacja węzła | Aktualizacje obrazów systemu operacyjnego hosta zarządzanego i wzmacnianie zabezpieczeń | Odpowiedzialność użytkowników |
Ustalanie rozmiaru klastra (skalowanie) | Zarządzane ręczne i automatyczne skalowanie obsługujące dodatkową aprowizację węzłów | Ręczne i automatyczne skalowanie obsługujące skalowanie liczby replik w stałych granicach klastra |
Typ obliczeniowy | Zarządzane przez usługę | Klaster Kubernetes zarządzany przez klienta |
Tożsamość zarządzana | Obsługiwane | Obsługiwane |
Sieć wirtualna | Obsługiwane za pośrednictwem zarządzana izolacja sieci | Odpowiedzialność użytkowników |
Wbudowane monitorowanie i rejestrowanie | Obsługiwane usługi Azure Monitor i Log Analytics, w tym kluczowe metryki i tabele dzienników dla punktów końcowych i wdrożeń | Odpowiedzialność użytkowników |
Rejestrowanie za pomocą usługi Application Insights (starsza wersja) | Obsługiwane | Obsługiwane |
Widok kosztów | Szczegółowy poziom punktu końcowego/wdrożenia | Na poziomie klastra |
Koszty stosowane do | Maszyny wirtualne przypisane do wdrożenia | Maszyny wirtualne przypisane do klastra |
Ruch dublowany | Obsługiwane | Nieobsługiwane |
Wdrażanie bez kodu | Obsługuje modele MLflow i Triton | Obsługuje modele MLflow i Triton |
Wdrożenia online
Wdrożenie to zestaw zasobów i obliczeń wymaganych do hostowania modelu, który wykonuje wnioskowanie. Pojedynczy punkt końcowy może zawierać wiele wdrożeń z różnymi konfiguracjami. Ta konfiguracja ułatwia oddzielenie interfejsu przedstawionego przez punkt końcowy ze szczegółów implementacji znajdujących się we wdrożeniu. Punkt końcowy online ma mechanizm routingu, który może kierować żądania do określonych wdrożeń w punkcie końcowym.
Na poniższym diagramie przedstawiono punkt końcowy online z dwoma wdrożeniami, niebieskim i zielonym. Niebieskie wdrożenie używa maszyn wirtualnych z jednostkami SKU procesora CPU i uruchamia wersję 1 modelu. Zielone wdrożenie używa maszyn wirtualnych z jednostkami SKU procesora GPU i uruchamia wersję 2 modelu. Punkt końcowy jest skonfigurowany do kierowania 90% ruchu przychodzącego do niebieskiego wdrożenia, podczas gdy zielone wdrożenie otrzymuje pozostałe 10%.
Aby wdrożyć model, musisz mieć następujące elementy:
Pliki modelu lub nazwa i wersja modelu zostały już zarejestrowane w obszarze roboczym.
Kod skryptu oceniania, który wykonuje model na danym żądaniu wejściowym.
Skrypt oceniania odbiera dane przesłane do wdrożonej usługi internetowej i przekazuje je do modelu. Następnie skrypt wykonuje model i zwraca jego odpowiedź na klienta. Skrypt oceniania jest specyficzny dla modelu i musi zrozumieć dane oczekiwane przez model jako dane wejściowe i zwracane jako dane wyjściowe.
Środowisko do uruchamiania modelu. Środowisko może być obrazem platformy Docker z zależnościami conda lub plikiem Dockerfile.
Ustawienia określające typ wystąpienia i pojemność skalowania.
Aby dowiedzieć się, jak wdrażać punkty końcowe online przy użyciu interfejsu wiersza polecenia platformy Azure, zestawu SDK języka Python, usługi Azure Machine Learning Studio lub szablonu usługi ARM, zobacz Wdrażanie modelu uczenia maszynowego przy użyciu punktu końcowego online.
Kluczowe atrybuty wdrożenia
W poniższej tabeli opisano kluczowe atrybuty wdrożenia:
Atrybut | Opis |
---|---|
Nazwa/nazwisko | Nazwa wdrożenia. |
Nazwa punktu końcowego | Nazwa punktu końcowego do utworzenia wdrożenia w obszarze. |
Model | Model do użycia na potrzeby wdrożenia. Ta wartość może być odwołaniem do istniejącego modelu w wersji w obszarze roboczym lub specyfikacji wbudowanego modelu. Aby uzyskać więcej informacji na temat śledzenia i określania ścieżki do modelu, zobacz Określanie modelu do wdrożenia do użycia w punkcie końcowym online. |
Ścieżka kodu | Ścieżka do katalogu w lokalnym środowisku projektowym zawierającym cały kod źródłowy języka Python do oceniania modelu. Można użyć katalogów i pakietów zagnieżdżonych. |
Skrypt oceniania | Ścieżka względna do pliku oceniania w katalogu kodu źródłowego. Ten kod w języku Python musi mieć init() funkcję i run() funkcję. Funkcja jest wywoływana init() po utworzeniu lub zaktualizowaniu modelu, na przykład w celu buforowania modelu w pamięci. Funkcja run() jest wywoływana przy każdym wywołaniu punktu końcowego w celu wykonania rzeczywistego oceniania i przewidywania. |
Środowisko | Środowisko do hostowania modelu i kodu. Ta wartość może być odwołaniem do istniejącego środowiska w wersji w obszarze roboczym lub specyfikacji środowiska wbudowanego. |
Typ wystąpienia | Rozmiar maszyny wirtualnej do użycia na potrzeby wdrożenia. Aby uzyskać listę obsługiwanych rozmiarów, zobacz Lista jednostek SKU zarządzanych punktów końcowych online. |
Liczba wystąpień | Liczba wystąpień do użycia na potrzeby wdrożenia. W oparciu o oczekiwaną wartość obciążenia. W przypadku wysokiej dostępności ustaw wartość na co najmniej 3 . System zastrzega sobie dodatkowe 20% na potrzeby przeprowadzania uaktualnień. Aby uzyskać więcej informacji, zobacz Alokacja przydziału maszyn wirtualnych dla wdrożeń. |
Uwagi dotyczące wdrożeń online
Wdrożenie może odwoływać się do modelu i obrazu kontenera zdefiniowanego w środowisku w dowolnym momencie, na przykład gdy wystąpienia wdrożenia przechodzą poprawki zabezpieczeń lub inne operacje odzyskiwania. Jeśli używasz zarejestrowanego modelu lub obrazu kontenera w usłudze Azure Container Registry do wdrożenia, a później usuniesz model lub obraz kontenera, wdrożenia korzystające z tych zasobów mogą zakończyć się niepowodzeniem po ponownym utworzeniu obrazu. Jeśli usuniesz model lub obraz kontenera, pamiętaj o ponownym utworzeniu lub zaktualizowaniu wdrożeń zależnych przy użyciu alternatywnego modelu lub obrazu kontenera.
Rejestr kontenerów, do którego odwołuje się środowisko, może być prywatny tylko wtedy, gdy tożsamość punktu końcowego ma uprawnienia dostępu do niego za pośrednictwem uwierzytelniania firmy Microsoft Entra i kontroli dostępu na podstawie ról (RBAC) platformy Azure. Z tego samego powodu prywatne rejestry platformy Docker inne niż Usługa Container Registry nie są obsługiwane.
Firma Microsoft regularnie poprawia podstawowe obrazy pod kątem znanych luk w zabezpieczeniach. Aby użyć poprawionego obrazu, należy ponownie wdrożyć punkt końcowy. Jeśli podasz własny obraz, ponosisz odpowiedzialność za jego aktualizowanie. Aby uzyskać więcej informacji, zobacz Stosowanie poprawek obrazów.
Alokacja przydziału maszyny wirtualnej na potrzeby wdrożenia
W przypadku zarządzanych punktów końcowych online usługa Azure Machine Learning rezerwuje 20% zasobów obliczeniowych na potrzeby przeprowadzania uaktualnień na niektórych jednostkach SKU maszyn wirtualnych. Jeśli żądasz określonej liczby wystąpień dla tych jednostek SKU maszyny wirtualnej we wdrożeniu, musisz mieć limit przydziału ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU
dostępny, aby uniknąć wystąpienia błędu. Jeśli na przykład zażądasz 10 wystąpień maszyny wirtualnej Standard_DS3_v2 (która jest dostarczana z czterema rdzeniami) we wdrożeniu, musisz mieć limit przydziału dla 48 rdzeni (12 instances * 4 cores
) dostępnych. Ten dodatkowy limit przydziału jest zarezerwowany dla operacji inicjowanych przez system, takich jak uaktualnienia systemu operacyjnego i odzyskiwanie maszyny wirtualnej, i nie będzie ponosić kosztów, chyba że takie operacje zostaną uruchomione.
Istnieją pewne jednostki SKU maszyn wirtualnych, które są zwolnione z dodatkowego limitu przydziału rezerwacji. Aby wyświetlić pełną listę, zobacz Lista jednostek SKU zarządzanych punktów końcowych online. Aby wyświetlić wzrost użycia i limitu przydziału żądań, zobacz Wyświetlanie użycia i limitów przydziału w witrynie Azure Portal. Aby wyświetlić koszt uruchamiania zarządzanego punktu końcowego online, zobacz Wyświetlanie kosztów zarządzanego punktu końcowego online.
Udostępniona pula przydziałów
Usługa Azure Machine Learning udostępnia udostępnioną pulę przydziałów, z której użytkownicy w różnych regionach mogą uzyskiwać dostęp do limitu przydziału w celu przeprowadzania testów przez ograniczony czas, w zależności od dostępności. Gdy używasz programu Studio do wdrażania modeli Llama-2, Phi, Nemotron, Mistral, Dolly i Deci-DeciLM z katalogu modeli do zarządzanego punktu końcowego online, usługa Azure Machine Learning umożliwia dostęp do udostępnionej puli przydziałów przez krótki czas, aby można było przeprowadzić testowanie. Aby uzyskać więcej informacji na temat udostępnionej puli przydziałów, zobacz Przydział udostępniony usługi Azure Machine Learning.
Aby wdrożyć modele Llama-2, Phi, Nemotron, Mistral, Dolly i Deci-DeciLM z katalogu modeli przy użyciu udostępnionego limitu przydziału, musisz mieć subskrypcję Umowa Enterprise. Aby uzyskać więcej informacji na temat korzystania z udostępnionego limitu przydziału na potrzeby wdrażania punktów końcowych online, zobacz How to deploy foundation models using the studio (Jak wdrażać modele podstawowe przy użyciu programu Studio).
Aby uzyskać więcej informacji na temat limitów przydziałów i limitów zasobów w usłudze Azure Machine Learning, zobacz Zarządzanie limitami przydziałów i limitami zasobów za pomocą usługi Azure Machine Learning oraz zwiększanie ich limitów.
Wdrażanie dla koderów i koderów niekodujących
Usługa Azure Machine Learning obsługuje wdrażanie modelu w punktach końcowych online dla koderów i koderów niekodujących, zapewniając opcje wdrażania bez kodu, wdrażania z małą ilością kodu i wdrażania byOC.
- Wdrożenie bez kodu zapewnia wbudowane wnioskowanie dla typowych struktur, takich jak scikit-learn, TensorFlow, PyTorch i Open Neural Network Exchange (ONNX) za pośrednictwem platform MLflow i Triton.
- Wdrożenie z małą ilością kodu umożliwia zapewnienie minimalnego kodu wraz z modelem uczenia maszynowego na potrzeby wdrożenia.
- Wdrożenie byOC umożliwia przenoszenie praktycznie wszystkich kontenerów do uruchamiania punktu końcowego online. Do zarządzania potokami MLOps można używać wszystkich funkcji platformy Azure Machine Learning, takich jak skalowanie automatyczne, metodyka GitOps, debugowanie i bezpieczne wdrażanie.
W poniższej tabeli przedstawiono kluczowe aspekty opcji wdrażania online:
Brak kodu | Niski kod | BYOC | |
---|---|---|---|
Podsumowanie | Używa wbudowanego wnioskowania dla popularnych struktur, takich jak scikit-learn, TensorFlow, PyTorch i ONNX, za pośrednictwem MLflow i Triton. Aby uzyskać więcej informacji, zobacz Wdrażanie modeli MLflow w punktach końcowych online. | Używa bezpiecznych, publicznie opublikowanych obrazów wyselekcjonowanych dla popularnych struktur, z aktualizacjami co dwa tygodnie w celu rozwiązania luk w zabezpieczeniach. Udostępniasz skrypt oceniania i/lub zależności języka Python. Aby uzyskać więcej informacji, zobacz Azure Machine Learning Curated Environments (Środowiska nadzorowane w usłudze Azure Machine Learning). | Pełny stos jest udostępniany za pośrednictwem obsługi usługi Azure Machine Learning dla obrazów niestandardowych. Aby uzyskać więcej informacji, zobacz Używanie niestandardowego kontenera do wdrażania modelu w punkcie końcowym online. |
Niestandardowy obraz podstawowy | Brak. Wyselekcjonowane środowiska zapewniają obraz podstawowy w celu łatwego wdrożenia. | Możesz użyć wyselekcjonowanego obrazu lub dostosowanego obrazu. | Przełącz dostępną lokalizację obrazu kontenera, na przykład docker.io, usługę Container Registry lub Rejestr Artefaktów Microsoft albo plik Dockerfile, który można skompilować/wypchnąć za pomocą usługi Container Registry dla kontenera. |
Zależności niestandardowe | Brak. Wyselekcjonowane środowiska zapewniają zależności w celu łatwego wdrożenia. | Przełącz środowisko usługi Azure Machine Learning, w którym działa model, obraz platformy Docker z zależnościami conda lub plik dockerfile. | Niestandardowe zależności są uwzględniane w obrazie kontenera. |
Kod niestandardowy | Brak. Skrypt oceniania jest generowany automatycznie w celu łatwego wdrożenia. | Przełącz skrypt oceniania. | Skrypt oceniania jest uwzględniony w obrazie kontenera. |
Uwaga
Uruchamianie automatycznego uczenia maszynowego tworzy skrypt oceniania i zależności automatycznie dla użytkowników. W przypadku wdrożenia bez kodu można wdrożyć dowolny model automatycznego uczenia maszynowego bez tworzenia innego kodu. W przypadku wdrożenia z małą ilością kodu można modyfikować automatycznie wygenerowane skrypty zgodnie z potrzebami biznesowymi. Aby dowiedzieć się, jak wdrażać za pomocą modeli AutoML, zobacz Jak wdrożyć model AutoML w punkcie końcowym online.
Debugowanie punktu końcowego online
Jeśli to możliwe, przetestuj punkt końcowy lokalnie, aby zweryfikować i debugować kod i konfigurację przed wdrożeniem na platformie Azure. Interfejs wiersza polecenia platformy Azure i zestaw SDK języka Python obsługują lokalne punkty końcowe i wdrożenia, podczas gdy usługa Azure Machine Learning Studio i szablony usługi ARM nie obsługują lokalnych punktów końcowych ani wdrożeń.
Usługa Azure Machine Learning udostępnia następujące sposoby lokalnego debugowania punktów końcowych online i przy użyciu dzienników kontenerów:
- Lokalne debugowanie za pomocą serwera HTTP wnioskowania usługi Azure Machine Learning
- Lokalne debugowanie przy użyciu lokalnego punktu końcowego
- Lokalne debugowanie przy użyciu lokalnego punktu końcowego i programu Visual Studio Code
- Debugowanie przy użyciu dzienników kontenera
Lokalne debugowanie za pomocą serwera HTTP wnioskowania usługi Azure Machine Learning
Skrypt oceniania można debugować lokalnie przy użyciu serwera HTTP wnioskowania usługi Azure Machine Learning. Serwer HTTP to pakiet języka Python, który uwidacznia funkcję oceniania jako punkt końcowy HTTP i opakowuje kod serwera Flask i zależności w jeden pakiet.
Usługa Azure Machine Learning zawiera serwer HTTP we wstępnie utworzonych obrazach platformy Docker na potrzeby wnioskowania używanego do wdrażania modelu. Korzystając z samego pakietu, można wdrożyć model lokalnie na potrzeby środowiska produkcyjnego, a także łatwo zweryfikować skrypt oceniania wpisu w lokalnym środowisku deweloperskim. Jeśli występuje problem ze skryptem oceniania, serwer zwraca błąd i lokalizację, w której wystąpił błąd. Możesz również użyć programu Visual Studio Code do debugowania za pomocą serwera HTTP wnioskowania usługi Azure Machine Learning.
Napiwek
Możesz użyć pakietu języka Python serwera HTTP wnioskowania usługi Azure Machine Learning, aby debugować skrypt oceniania lokalnie bez aparatu platformy Docker. Debugowanie za pomocą serwera wnioskowania ułatwia debugowanie skryptu oceniania przed wdrożeniem w lokalnych punktach końcowych, dzięki czemu można debugować bez wpływu na konfiguracje kontenera wdrożenia.
Aby uzyskać więcej informacji na temat debugowania przy użyciu serwera HTTP, zobacz Debugowanie skryptu oceniania za pomocą serwera HTTP wnioskowania usługi Azure Machine Learning.
Lokalne debugowanie przy użyciu lokalnego punktu końcowego
Do lokalnego debugowania potrzebny jest model wdrożony w lokalnym środowisku platformy Docker. Tego lokalnego wdrożenia można użyć do testowania i debugowania przed wdrożeniem w chmurze.
Aby wdrożyć lokalnie, musisz zainstalować i uruchomić aparat platformy Docker. Następnie usługa Azure Machine Learning tworzy lokalny obraz platformy Docker, aby naśladować obraz online. Usługa Azure Machine Learning kompiluje i uruchamia wdrożenia lokalnie i buforuje obraz w celu szybkiego iteracji.
Napiwek
Jeśli aparat platformy Docker nie uruchamia się po uruchomieniu komputera, możesz rozwiązać problemy z aparatem platformy Docker. Aby debugować, co się dzieje w kontenerze, można użyć narzędzi po stronie klienta, takich jak Docker Desktop .
Lokalne debugowanie zwykle obejmuje następujące kroki:
- Najpierw sprawdź, czy wdrożenie lokalne zakończyło się pomyślnie.
- Następnie wywołaj lokalny punkt końcowy na potrzeby wnioskowania.
- Na koniec przejrzyj dzienniki wyjściowe dla
invoke
operacji.
Lokalne punkty końcowe mają następujące ograniczenia:
Brak obsługi reguł ruchu, uwierzytelniania ani ustawień sondy.
Obsługa tylko jednego wdrożenia na punkt końcowy.
Obsługa lokalnych plików modelu i środowiska tylko z lokalnym plikiem conda.
Aby przetestować zarejestrowane modele, najpierw pobierz je przy użyciu interfejsu wiersza polecenia lub zestawu SDK, a następnie użyj
path
w definicji wdrożenia, aby odwołać się do folderu nadrzędnego.Aby przetestować zarejestrowane środowiska, sprawdź kontekst środowiska w usłudze Azure Machine Learning Studio i przygotuj lokalny plik conda do użycia.
Aby uzyskać więcej informacji na temat debugowania lokalnego, zobacz Wdrażanie i debugowanie lokalnie przy użyciu lokalnego punktu końcowego.
Lokalne debugowanie przy użyciu lokalnego punktu końcowego i programu Visual Studio Code (wersja zapoznawcza)
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.
Podobnie jak w przypadku debugowania lokalnego, należy zainstalować i uruchomić aparat platformy Docker, a następnie wdrożyć model w lokalnym środowisku platformy Docker. Po wdrożeniu lokalnym lokalne punkty końcowe usługi Azure Machine Learning używają kontenerów deweloperskich platformy Docker i programu Visual Studio Code (kontenerów deweloperskich) do kompilowania i konfigurowania lokalnego środowiska debugowania.
Za pomocą kontenerów deweloperskich można używać funkcji programu Visual Studio Code, takich jak interaktywne debugowanie z poziomu kontenera platformy Docker. Aby uzyskać więcej informacji na temat interaktywnego debugowania punktów końcowych online w programie Visual Studio Code, zobacz Debugowanie punktów końcowych online lokalnie w programie Visual Studio Code.
Debugowanie przy użyciu dzienników kontenera
Nie można uzyskać bezpośredniego dostępu do maszyny wirtualnej, na której jest wdrażany model, ale dzienniki można pobrać z następujących kontenerów uruchomionych na maszynie wirtualnej:
- Dziennik konsoli serwera wnioskowania zawiera dane wyjściowe funkcji drukowania/rejestrowania z skryptu oceniania score.py kodu.
- Dzienniki inicjatora magazynu zawierają informacje o tym, czy kod i dane modelu zostały pomyślnie pobrane do kontenera. Kontener jest uruchamiany przed uruchomieniem kontenera serwera wnioskowania.
Aby uzyskać więcej informacji na temat debugowania przy użyciu dzienników kontenerów, zobacz Pobieranie dzienników kontenerów.
Routing ruchu i dublowanie do wdrożeń online
Pojedynczy punkt końcowy online może mieć wiele wdrożeń. Gdy punkt końcowy odbiera przychodzące żądania ruchu, może kierować procent ruchu do każdego wdrożenia, tak jak w natywnej strategii wdrażania niebieskiego/zielonego. Punkt końcowy może również dublować lub kopiować ruch z jednego wdrożenia do innego, nazywany dublowaniem ruchu lub cieniowaniem.
Routing ruchu dla wdrożenia niebieskiego/zielonego
Wdrożenie niebieskie/zielone to strategia wdrażania, która umożliwia wdrożenie nowego zielonego wdrożenia w małym podzestawie użytkowników lub żądań przed całkowitym wdrożeniem. Punkt końcowy może zaimplementować równoważenie obciążenia w celu przydzielenia pewnych wartości procentowych ruchu do każdego wdrożenia, a łączna alokacja we wszystkich wdrożeniach wynosi 100%.
Napiwek
Żądanie może pominąć skonfigurowane równoważenie obciążenia ruchu, dołączając nagłówek HTTP .azureml-model-deployment
Ustaw wartość nagłówka na nazwę wdrożenia, do którego ma być kierowane żądanie.
Na poniższej ilustracji przedstawiono ustawienia w usłudze Azure Machine Learning Studio na potrzeby przydzielania ruchu między wdrożeniem niebieskim i zielonym.
Poprzednia alokacja ruchu kieruje 10% ruchu do zielonego wdrożenia i 90% ruchu do niebieskiego wdrożenia, jak pokazano na poniższej ilustracji.
Dublowanie ruchu do wdrożeń online
Punkt końcowy może również dublować lub kopiować ruch z jednego wdrożenia do innego. Można użyć dublowania ruchu, nazywanego również testowaniem w tle, gdy chcesz przetestować nowe wdrożenie z ruchem produkcyjnym bez wpływu na wyniki otrzymywane przez klientów z istniejących wdrożeń.
Można na przykład zaimplementować wdrożenie niebieskie/zielone, w którym 100% ruchu jest kierowane do niebieskiego, a 10% jest dublowane do zielonego wdrożenia. Wyniki dublowanego ruchu do zielonego wdrożenia nie są zwracane do klientów, ale rejestrowane są metryki i dzienniki.
Aby uzyskać więcej informacji na temat korzystania z funkcji dublowania ruchu, zobacz Wykonywanie bezpiecznego wdrażania nowych wdrożeń na potrzeby wnioskowania w czasie rzeczywistym.
Więcej możliwości punktu końcowego online
W poniższych sekcjach opisano inne możliwości punktów końcowych online usługi Azure Machine Learning.
Uwierzytelnianie i szyfrowanie
- Uwierzytelnianie: klucz i tokeny usługi Azure Machine Learning
- Tożsamość zarządzana: przypisano użytkownika i przypisano system
- Protokół SSL (Secure Socket Layer) domyślnie dla wywołania punktu końcowego
Skalowanie automatyczne
Automatyczne skalowanie uruchamia odpowiednią ilość zasobów na potrzeby obsługi obciążenia aplikacji. Zarządzane punkty końcowe obsługują skalowanie automatyczne za pośrednictwem integracji z funkcją automatycznego skalowania usługi Azure Monitor. Możesz skonfigurować skalowanie oparte na metrykach, takie jak użycie >procesora CPU 70%, skalowanie oparte na harmonogramie, takie jak reguły godzin szczytowych lub oba.
Aby uzyskać więcej informacji, zobacz Autoskaluj punkty końcowe online w usłudze Azure Machine Learning.
Izolacja sieci zarządzanej
Podczas wdrażania modelu uczenia maszynowego w zarządzanym punkcie końcowym online można zabezpieczyć komunikację z punktem końcowym online przy użyciu prywatnych punktów końcowych. Zabezpieczenia dla żądań oceniania ruchu przychodzącego i komunikacji wychodzącej można skonfigurować oddzielnie.
Komunikacja przychodząca korzysta z prywatnego punktu końcowego obszaru roboczego usługi Azure Machine Learning, podczas gdy komunikacja wychodząca używa prywatnych punktów końcowych utworzonych dla zarządzanej sieci wirtualnej obszaru roboczego. Aby uzyskać więcej informacji, zobacz Izolacja sieciowa z zarządzanymi punktami końcowymi online.
Monitorowanie punktów końcowych i wdrożeń online
Punkty końcowe usługi Azure Machine Learning integrują się z usługą Azure Monitor. Integracja z usługą Azure Monitor umożliwia wyświetlanie metryk na wykresach, konfigurowanie alertów, tabel dzienników zapytań i używanie usługi Application Insights do analizowania zdarzeń z kontenerów użytkowników. Aby uzyskać więcej informacji, zobacz Monitorowanie punktów końcowych online.
Wstrzykiwanie wpisów tajnych we wdrożeniach online (wersja zapoznawcza)
Wstrzyknięcie wpisu tajnego do wdrożenia online obejmuje pobieranie wpisów tajnych, takich jak klucze interfejsu API z magazynów wpisów tajnych i wstrzykiwanie ich do kontenera użytkownika uruchomionego wewnątrz wdrożenia. Aby zapewnić bezpieczne użycie wpisów tajnych dla serwera wnioskowania, na którym jest uruchamiany skrypt oceniania lub stos wnioskowania we wdrożeniu byOC, możesz użyć zmiennych środowiskowych w celu uzyskania dostępu do wpisów tajnych.
Wpisy tajne można wstrzyknąć samodzielnie przy użyciu tożsamości zarządzanych lub użyć funkcji iniekcji wpisu tajnego. Aby uzyskać więcej informacji, zobacz Wstrzykiwanie wpisów tajnych w punktach końcowych online (wersja zapoznawcza).
Powiązana zawartość
- Wdrażanie i ocenianie modelu uczenia maszynowego przy użyciu punktu końcowego online
- Punkty końcowe usługi Batch
- Zabezpieczanie zarządzanych punktów końcowych online przy użyciu izolacji sieciowej
- Wdrażanie modeli za pomocą interfejsu REST
- Monitorowanie punktów końcowych online
- Wyświetlanie kosztów zarządzanego punktu końcowego online usługi Azure Machine Learning
- Zarządzanie limitami przydziału i limitami zasobów i ich zwiększanie za pomocą usługi Azure Machine Learning