Wykonywanie bezpiecznego wdrażania nowych wdrożeń 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 dowiesz się, jak wdrożyć nową wersję modelu uczenia maszynowego w środowisku produkcyjnym bez powodowania zakłóceń. W celu wprowadzenia nowej wersji usługi internetowej do produkcji użyjesz strategii wdrażania niebieskiego zielonego (znanej również jako strategia bezpiecznego wdrażania). Ta strategia umożliwi wdrożenie nowej wersji usługi internetowej w małym podzestawie użytkowników lub żądań przed całkowitym wdrożeniem tej wersji.

W tym artykule założono, że używasz punktów końcowych online, czyli punktów końcowych używanych do wnioskowania online (w czasie rzeczywistym). Istnieją dwa typy punktów końcowych online: zarządzane punkty końcowe online i punkty końcowe online platformy Kubernetes. Aby uzyskać więcej informacji na temat punktów końcowych i różnic między zarządzanymi punktami końcowymi online i punktami końcowymi online platformy Kubernetes, zobacz Co to są punkty końcowe usługi Azure Machine Edukacja?.

Główny przykład w tym artykule używa zarządzanych punktów końcowych online do wdrożenia. Aby zamiast tego użyć punktów końcowych platformy Kubernetes, zapoznaj się z uwagami w tym dokumencie, które są wbudowane z dyskusją na temat zarządzanego punktu końcowego online.

Z tego artykułu dowiesz się, jak wykonywać następujące elementy:

  • Definiowanie punktu końcowego online przy użyciu wdrożenia o nazwie "niebieski" w celu obsługi wersji 1 modelu
  • Skalowanie niebieskiego wdrożenia w celu obsługi większej liczby żądań
  • Wdróż wersję 2 modelu (nazywane wdrożeniem zielonym) w punkcie końcowym, ale wyślij wdrożenie bez ruchu na żywo
  • Testowanie zielonego wdrożenia w izolacji
  • Dublowanie procentowego ruchu na żywo do zielonego wdrożenia w celu zweryfikowania go
  • Wysyłanie małego procentu ruchu na żywo do zielonego wdrożenia
  • Wysyłanie całego ruchu na żywo do zielonego wdrożenia
  • Usuwanie nieużywanego teraz wdrożenia w wersji 1 niebieskiego

Wymagania wstępne

Przed wykonaniem kroków opisanych w tym artykule upewnij się, że masz następujące wymagania wstępne:

  • Kontrola dostępu na podstawie ról platformy Azure (Azure RBAC): jest używana do udzielania dostępu do operacji w usłudze Azure Machine Learning. Aby wykonać kroki opisane w tym artykule, konto użytkownika musi mieć przypisaną rolę właściciela lub współautora dla obszaru roboczego usługi Azure Machine Edukacja lub rolę niestandardową zezwalającą na Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*funkcję . Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do obszaru roboczego usługi Azure Machine Edukacja.

  • (Opcjonalnie) Aby wdrożyć lokalnie, należy zainstalować aparat platformy Docker na komputerze lokalnym. Zdecydowanie zalecamy tę opcję, więc łatwiej jest debugować problemy.

Przygotowywanie systemu

Ustawianie zmiennych środowiskowych

Jeśli nie ustawiono jeszcze ustawień domyślnych dla interfejsu wiersza polecenia platformy Azure, zapisz ustawienia domyślne. Aby uniknąć wielokrotnego przekazywania wartości dla subskrypcji, obszaru roboczego i grupy zasobów, uruchom następujący kod:

az account set --subscription <subscription id>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

Klonowanie repozytorium przykładów

Aby skorzystać z tego artykułu, najpierw sklonuj repozytorium przykładów (azureml-examples). Następnie przejdź do katalogu repozytorium cli/ :

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli

Napiwek

Użyj polecenia --depth 1 , aby sklonować tylko najnowsze zatwierdzenie do repozytorium. Skraca to czas na ukończenie operacji.

Polecenia w tym samouczku znajdują się w pliku deploy-safe-rollout-online-endpoints.sh w cli katalogu, a pliki konfiguracji YAML znajdują się w podkatalogu endpoints/online/managed/sample/ .

Uwaga

Pliki konfiguracji YAML dla punktów końcowych online platformy Kubernetes znajdują się w podkatalogu endpoints/online/kubernetes/ .

Definiowanie punktu końcowego i wdrożenia

Punkty końcowe online są używane do wnioskowania w trybie online (w czasie rzeczywistym). Punkty końcowe online zawierają wdrożenia, które są gotowe do odbierania danych od klientów i wysyłają odpowiedzi z powrotem w czasie rzeczywistym.

Definiowanie punktu końcowego

W poniższej tabeli wymieniono atrybuty klucza do określenia podczas definiowania punktu końcowego.

Atrybut Opis
Nazwa/nazwisko Wymagany. Nazwa punktu końcowego. Musi być unikatowa w regionie świadczenia usługi Azure. Aby uzyskać więcej informacji na temat reguł nazewnictwa, zobacz Limity punktów końcowych.
Tryb uwierzytelniania Metoda uwierzytelniania punktu końcowego. Wybierz uwierzytelnianie oparte na kluczach i uwierzytelnianie keyaml_tokenoparte na tokenach Edukacja azure Machine. Klucz nie wygasa, ale token wygasa. Aby uzyskać więcej informacji na temat uwierzytelniania, zobacz Uwierzytelnianie w punkcie końcowym online.
opis Opis punktu końcowego.
Tagi Słownik tagów dla punktu końcowego.
Ruch Reguły dotyczące kierowania ruchu między wdrożeniami. Reprezentuje ruch jako słownik par klucz-wartość, gdzie klucz reprezentuje nazwę wdrożenia i wartość reprezentuje procent ruchu do tego wdrożenia. Ruch można ustawić tylko wtedy, gdy wdrożenia w punkcie końcowym zostały utworzone. Możesz również zaktualizować ruch dla punktu końcowego online po utworzeniu wdrożeń. Aby uzyskać więcej informacji na temat korzystania z dublowanego ruchu, zobacz Przydziel niewielki procent ruchu na żywo do nowego wdrożenia.
Ruch dublowania Procent ruchu na żywo do dublowania do wdrożenia. Aby uzyskać więcej informacji na temat korzystania z dublowanego ruchu, zobacz Testowanie wdrożenia za pomocą dublowanego ruchu.

Aby wyświetlić pełną listę atrybutów, które można określić podczas tworzenia punktu końcowego, zobacz Interfejs wiersza polecenia (wersja 2) online schemat YAML lubzestaw SDK (wersja 2) ManagedOnlineEndpoint Class ( Klasa ManagedOnlineEndpoint).

Definiowanie wdrożenia

Wdrożenie to zestaw zasobów wymaganych do hostowania modelu, który wykonuje rzeczywiste wnioskowanie. W poniższej tabeli opisano kluczowe atrybuty, które należy określić podczas definiowania wdrożenia.

Atrybut Opis
Nazwa/nazwisko Wymagany. Nazwa wdrożenia.
Nazwa punktu końcowego Wymagany. 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. W tym przykładzie mamy model scikit-learn, który wykonuje regresję.
Ś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 Kod języka Python, który wykonuje model na danym żądaniu wejściowym. Ta wartość może być ścieżką względną do pliku oceniania w katalogu kodu źródłowego.
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.
W tym przykładzie mamy plik score.py . Ten kod w języku Python musi mieć init() funkcję i run() funkcję. Funkcja init() zostanie wywołana po utworzeniu lub zaktualizowaniu modelu (można jej użyć do buforowania modelu w pamięci, na przykład). Funkcja run() jest wywoływana przy każdym wywołaniu punktu końcowego w celu wykonania rzeczywistego oceniania i przewidywania.
Środowisko Wymagany. Ś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. Środowisko może być obrazem platformy Docker z zależnościami Conda, plikiem Dockerfile lub zarejestrowanym środowiskiem.
Typ wystąpienia Wymagany. 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ń Wymagany. Liczba wystąpień do użycia na potrzeby wdrożenia. W oparciu o oczekiwaną wartość obciążenia. W przypadku wysokiej dostępności zalecamy ustawienie wartości na wartość co najmniej 3. Firma Microsoft zastrzega sobie dodatkowe 20% na potrzeby przeprowadzania uaktualnień. Aby uzyskać więcej informacji, zobacz limity punktów końcowych online.

Aby wyświetlić pełną listę atrybutów, które można określić podczas tworzenia wdrożenia, zobacz Interfejs wiersza polecenia (wersja 2) zarządzanego wdrożenia w trybie online schematu YAML lub zestawu SDK (wersja 2) ManagedOnlineDeployment Class ( Klasa managedOnlineDeployment).

Tworzenie punktu końcowego online

Najpierw ustaw nazwę punktu końcowego, a następnie skonfiguruj go. W tym artykule użyjesz pliku endpoints/online/managed/sample/endpoint.yml , aby skonfigurować punkt końcowy. Poniższy fragment kodu przedstawia zawartość pliku:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key

Dokumentacja formatu YAML punktu końcowego została opisana w poniższej tabeli. Aby dowiedzieć się, jak określić te atrybuty, zobacz dokumentację YAML punktu końcowego online. Aby uzyskać informacje o limitach związanych z zarządzanymi punktami końcowymi online, zobacz limity dla punktów końcowych online.

Key opis
$schema (Opcjonalnie) Schemat YAML. Aby wyświetlić wszystkie dostępne opcje w pliku YAML, możesz wyświetlić schemat w poprzednim fragmencie kodu w przeglądarce.
name Nazwa punktu końcowego.
auth_mode Służy key do uwierzytelniania opartego na kluczach. Służy aml_token do uwierzytelniania opartego na tokenach w usłudze Azure Machine Edukacja. Aby uzyskać najnowszy token, użyj az ml online-endpoint get-credentials polecenia .

Aby utworzyć punkt końcowy online:

  1. Ustaw nazwę punktu końcowego:

    W przypadku systemu Unix uruchom to polecenie (zastąp YOUR_ENDPOINT_NAME element unikatową nazwą):

    export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
    

    Ważne

    Nazwy punktów końcowych muszą być unikatowe w regionie świadczenia usługi Azure. Na przykład w regionie świadczenia usługi Azure westus2 może istnieć tylko jeden punkt końcowy o nazwie my-endpoint.

  2. Utwórz punkt końcowy w chmurze:

    Uruchom następujący kod, aby użyć endpoint.yml pliku do skonfigurowania punktu końcowego:

    az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
    

Tworzenie wdrożenia "niebieskiego"

W tym artykule użyjesz pliku endpoints/online/managed/sample/blue-deployment.yml , aby skonfigurować kluczowe aspekty wdrożenia. Poniższy fragment kodu przedstawia zawartość pliku:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

Aby utworzyć wdrożenie o nazwie blue dla punktu końcowego, uruchom następujące polecenie, aby użyć pliku do skonfigurowania blue-deployment.yml

az ml online-deployment create --name blue --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic

Ważne

Flaga --all-traffic w obiekcie az ml online-deployment create przydziela 100% ruchu punktu końcowego do nowo utworzonego niebieskiego wdrożenia.

blue-deployment.yaml W pliku określamy path wbudowany element (gdzie mają być przekazywane pliki). Interfejs wiersza polecenia automatycznie przekazuje pliki i rejestruje model i środowisko. Najlepszym rozwiązaniem dla środowiska produkcyjnego jest zarejestrowanie modelu i środowiska oraz określenie zarejestrowanej nazwy i wersji oddzielnie w języku YAML. Użyj formularza model: azureml:my-model:1 lub environment: azureml:my-env:1.

W celu rejestracji można wyodrębnić definicje YAML plików model YAML i environment do oddzielnych plików YAML oraz użyć poleceń az ml model create i az ml environment create. Aby dowiedzieć się więcej o tych poleceniach, uruchom az ml model create -h polecenie i az ml environment create -h.

Aby uzyskać więcej informacji na temat rejestrowania modelu jako zasobu, zobacz Rejestrowanie modelu jako zasobu w usłudze Machine Edukacja przy użyciu interfejsu wiersza polecenia. Aby uzyskać więcej informacji na temat tworzenia środowiska, zobacz Zarządzanie środowiskami usługi Azure Machine Edukacja przy użyciu interfejsu wiersza polecenia i zestawu SDK (wersja 2).

Potwierdzanie istniejącego wdrożenia

Jednym ze sposobów potwierdzenia istniejącego wdrożenia jest wywołanie punktu końcowego, aby mógł ocenić model dla danego żądania wejściowego. Podczas wywoływania punktu końcowego za pośrednictwem interfejsu wiersza polecenia lub zestawu SDK języka Python możesz określić nazwę wdrożenia, które będzie odbierać ruch przychodzący.

Uwaga

W przeciwieństwie do interfejsu wiersza polecenia lub zestawu SDK języka Python program Azure Machine Edukacja Studio wymaga określenia wdrożenia podczas wywoływania punktu końcowego.

Wywoływanie punktu końcowego z nazwą wdrożenia

Jeśli wywołasz punkt końcowy z nazwą wdrożenia, które będzie odbierać ruch, usługa Azure Machine Edukacja będzie kierować ruch punktu końcowego bezpośrednio do określonego wdrożenia i zwracać jego dane wyjściowe. Możesz użyć opcji interfejsu --deployment-name wiersza polecenia w wersji 2 lub deployment_name opcji zestawu SDK w wersji 2, aby określić wdrożenie.

Wywoływanie punktu końcowego bez określania wdrożenia

Jeśli wywołasz punkt końcowy bez określenia wdrożenia, które będzie odbierać ruch, usługa Azure Machine Edukacja będzie kierować ruch przychodzący punktu końcowego do wdrożeń w punkcie końcowym na podstawie ustawień kontroli ruchu.

Ustawienia kontroli ruchu przydzielają określone wartości procentowe ruchu przychodzącego do każdego wdrożenia w punkcie końcowym. Jeśli na przykład reguły ruchu określają, że określone wdrożenie w punkcie końcowym będzie odbierać ruch przychodzący 40% czasu, usługa Azure Machine Edukacja będzie kierować 40% ruchu punktu końcowego do tego wdrożenia.

Stan istniejącego punktu końcowego i wdrożenia można wyświetlić, uruchamiając polecenie:

az ml online-endpoint show --name $ENDPOINT_NAME 

az ml online-deployment show --name blue --endpoint $ENDPOINT_NAME 

Powinien zostać wyświetlony punkt końcowy zidentyfikowany przez $ENDPOINT_NAME element i wdrożenie o nazwie blue.

Testowanie punktu końcowego przy użyciu przykładowych danych

Punkt końcowy można wywołać za pomocą invoke polecenia . Wyślemy przykładowe żądanie przy użyciu pliku json .

az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json

Skalowanie istniejącego wdrożenia w celu obsługi większej liczby ruchu

We wdrożeniu opisanym w artykule Wdrażanie i ocenianie modelu uczenia maszynowego przy użyciu punktu końcowego online należy ustawić instance_count wartość na wartość 1 w pliku yaml wdrożenia. Skalowanie w poziomie można skalować w update poziomie przy użyciu polecenia :

az ml online-deployment update --name blue --endpoint-name $ENDPOINT_NAME --set instance_count=2

Uwaga

Zwróć uwagę, że w powyższym poleceniu użyjemy --set polecenia , aby zastąpić konfigurację wdrożenia. Alternatywnie możesz zaktualizować plik yaml i przekazać go jako dane wejściowe do update polecenia przy użyciu danych wejściowych --file .

Wdrażanie nowego modelu, ale wysyłanie go jeszcze nie ma ruchu

Utwórz nowe wdrożenie o nazwie green:

az ml online-deployment create --name green --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/green-deployment.yml

Ponieważ nie przydzieliliśmy jawnie żadnego ruchu do greenusługi , ma on przydzielony zerowy ruch. Możesz sprawdzić, czy używasz polecenia :

az ml online-endpoint show -n $ENDPOINT_NAME --query traffic

Testowanie nowego wdrożenia

Mimo że green przydzielono 0% ruchu, można wywołać go bezpośrednio, określając --deployment nazwę:

az ml online-endpoint invoke --name $ENDPOINT_NAME --deployment-name green --request-file endpoints/online/model-2/sample-request.json

Jeśli chcesz używać klienta REST do bezpośredniego wywoływania wdrożenia bez przechodzenia przez reguły ruchu, ustaw następujący nagłówek HTTP: azureml-model-deployment: <deployment-name>. Poniższy fragment kodu używa metody curl do bezpośredniego wywoływania wdrożenia. Fragment kodu powinien działać w środowiskach unix/WSL:

# get the scoring uri
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
# use curl to invoke the endpoint
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --header "azureml-model-deployment: green" --data @endpoints/online/model-2/sample-request.json

Testowanie wdrożenia przy użyciu ruchu dublowanego

Po przetestowaniu green wdrożenia można zdublować (lub skopiować) procent ruchu na żywo. Dublowanie ruchu (nazywane również cieniowaniem) nie zmienia wyników zwracanych do klientów — żądania nadal przepływają 100% do blue wdrożenia. Zdublowany procent ruchu jest kopiowany i przesyłany do green wdrożenia, dzięki czemu można zbierać metryki i rejestrowanie bez wpływu na klientów. Dublowanie jest przydatne, gdy chcesz zweryfikować nowe wdrożenie bez wpływu na klientów. Na przykład można użyć dublowania, aby sprawdzić, czy opóźnienie mieści się w dopuszczalnych granicach lub czy nie ma żadnych błędów HTTP. Testowanie nowego wdrożenia przy użyciu funkcji dublowania ruchu/cieniowania jest również nazywane testowaniem w tle. Wdrożenie odbierające ruch dublowany (w tym przypadku green wdrożenie) może być również nazywane wdrożeniem w tle.

Dublowanie ma następujące ograniczenia:

  • Dublowanie jest obsługiwane w przypadku interfejsu wiersza polecenia (wersja 2.4.0 lub nowsza) oraz zestawu SDK języka Python (wersja 2) (wersja 1.0.0 lub nowsza). Jeśli używasz starszej wersji interfejsu wiersza polecenia/zestawu SDK do aktualizowania punktu końcowego, utracisz ustawienie ruchu dublowanego.
  • Dublowanie nie jest obecnie obsługiwane w przypadku punktów końcowych online platformy Kubernetes.
  • Ruch można dublować tylko do jednego wdrożenia w punkcie końcowym.
  • Maksymalny procent ruchu, który można dublować, wynosi 50%. Ten limit polega na zmniejszeniu wpływu na limit przydziału przepustowości punktu końcowego (domyślnie 5 MB/s) — przepustowość punktu końcowego jest ograniczana w przypadku przekroczenia przydzielonego limitu przydziału. Aby uzyskać informacje na temat monitorowania ograniczania przepustowości, zobacz Monitorowanie zarządzanych punktów końcowych online.

Zwróć również uwagę na następujące zachowania:

  • Wdrożenie można skonfigurować tak, aby odbierało tylko ruch na żywo lub ruch dublowany, a nie oba.
  • Podczas wywoływania punktu końcowego można określić nazwę dowolnego z jego wdrożeń — nawet wdrożenia w tle — aby zwrócić przewidywanie.
  • Po wywołaniu punktu końcowego o nazwie wdrożenia, które będzie odbierać ruch przychodzący, usługa Azure Machine Edukacja nie będzie dublować ruchu do wdrożenia w tle. Usługa Azure Machine Edukacja dubluje ruch do wdrożenia w tle z ruchu wysyłanego do punktu końcowego, gdy nie określisz wdrożenia.

Teraz ustawmy zielone wdrożenie tak, aby odbierało 10% ruchu dublowanego. Klienci nadal będą otrzymywać przewidywania tylko z niebieskiego wdrożenia.

Diagram showing 10% traffic mirrored to one deployment.

Następujące polecenie dubluje 10% ruchu do green wdrożenia:

az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=10"

Ruch dublowany można przetestować, wywołując punkt końcowy kilka razy bez określania wdrożenia w celu odbierania ruchu przychodzącego:

for i in {1..20} ; do
    az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
done

Możesz potwierdzić, że określony procent ruchu został wysłany do green wdrożenia, wyświetlając dzienniki z wdrożenia:

az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME

Po przetestowaniu można ustawić ruch dublowania na zero, aby wyłączyć dublowanie:

az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=0"

Przydzielanie niewielkiego procentu ruchu na żywo do nowego wdrożenia

Po przetestowaniu green wdrożenia przydziel do niego niewielki procent ruchu:

az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=90 green=10"

Napiwek

Łączna wartość procentowa ruchu musi wynosić 0% (aby wyłączyć ruch) lub 100% (aby włączyć ruch).

green Teraz wdrożenie odbiera 10% całego ruchu na żywo. Klienci otrzymają przewidywania zarówno z wdrożeń, jak blue i green .

Diagram showing traffic split between deployments.

Wysyłanie całego ruchu do nowego wdrożenia

Po pełnym zadowoleniu green z wdrożenia przełącz cały ruch do niego.

az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=0 green=100"

Usuwanie starego wdrożenia

Wykonaj poniższe kroki, aby usunąć pojedyncze wdrożenie z zarządzanego punktu końcowego online. Usunięcie pojedynczego wdrożenia ma wpływ na inne wdrożenia w zarządzanym punkcie końcowym online:

az ml online-deployment delete --name blue --endpoint $ENDPOINT_NAME --yes --no-wait

Usuwanie punktu końcowego i wdrożenia

Jeśli nie zamierzasz używać punktu końcowego i wdrożenia, usuń je. Usunięcie punktu końcowego spowoduje również usunięcie wszystkich jego podstawowych wdrożeń.

az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait