Z tego artykułu dowiesz się, jak wdrożyć model uczenia maszynowego wytrenowanego przez rozwiązanie AutoML do punktu końcowego wnioskowania w czasie rzeczywistym w trybie online. Zautomatyzowane uczenie maszynowe, nazywane również zautomatyzowanym uczeniem maszynowym lub rozwiązaniem AutoML, to proces automatyzowania czasochłonnych, iteracyjnych zadań tworzenia modelu uczenia maszynowego. Aby uzyskać więcej informacji, zobacz Co to jest zautomatyzowane uczenie maszynowe (AutoML)?
W poniższych sekcjach dowiesz się, jak wdrożyć wytrenowany model uczenia maszynowego w usłudze AutoML w punktach końcowych online przy użyciu:
Azure Machine Learning Studio
Interfejs wiersza polecenia usługi Azure Machine Learning w wersji 2
Zestaw SDK języka Python usługi Azure Machine Learning w wersji 2
Wdrażanie z usługi Azure Machine Learning Studio i brak kodu
Wdrażanie modelu wytrenowanego za pomocą zautomatyzowanego uczenia maszynowego na stronie Zautomatyzowane uczenie maszynowe to środowisko bez kodu. Oznacza to, że nie trzeba przygotowywać skryptu oceniania i środowiska, ponieważ oba są generowane automatycznie.
W usłudze Azure Machine Learning Studio przejdź do strony Zautomatyzowane uczenie maszynowe .
Wybierz swój eksperyment i uruchom go.
Wybierz kartę Modele i zadania podrzędne.
Wybierz model, który chcesz wdrożyć.
Po wybraniu modelu przycisk Wdróż będzie dostępny z menu rozwijanego.
Wybierz opcję Punkt końcowy czasu rzeczywistego .
System generuje model i środowisko wymagane do wdrożenia.
Ręczne wdrażanie z poziomu programu Studio lub wiersza polecenia
Jeśli chcesz mieć większą kontrolę nad wdrożeniem, możesz pobrać artefakty szkoleniowe i wdrożyć je.
Aby pobrać składniki, potrzebne jest wdrożenie:
Przejdź do eksperymentu zautomatyzowanego uczenia maszynowego i uruchom go w obszarze roboczym uczenia maszynowego.
Wybierz kartę Modele i zadania podrzędne.
Wybierz model, którego chcesz użyć. Po wybraniu modelu zostanie włączony przycisk Pobierz .
W usłudze Azure Machine Learning Studio przejdź do strony Modele .
Wybierz pozycję Wybierz pozycję + Zarejestruj>z plików lokalnych.
Zarejestruj model pobrany z przebiegu zautomatyzowanego uczenia maszynowego.
Przejdź do strony Środowiska, wybierz pozycję Środowisko niestandardowe, a następnie wybierz pozycję + Utwórz, aby utworzyć środowisko dla danego wdrożenia. Użyj pobranego pliku yaml conda, aby utworzyć środowisko niestandardowe.
Wybierz model, a następnie z menu rozwijanego Wdrażanie Dwybierz pozycję Punkt końcowy czasu rzeczywistego.
Wykonaj wszystkie kroki opisane w kreatorze, aby utworzyć punkt końcowy i wdrożenie online.
Aby utworzyć wdrożenie na podstawie interfejsu wiersza polecenia, potrzebujesz interfejsu wiersza polecenia platformy Azure z rozszerzeniem ML w wersji 2. Uruchom następujące polecenie, aby potwierdzić:
Jeśli masz dostęp do wielu subskrypcji platformy Azure, możesz ustawić aktywną subskrypcję.
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Ustaw domyślną grupę zasobów i obszar roboczy na miejsce, w którym chcesz utworzyć wdrożenie.
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Umieść plik oceniania we własnym katalogu
Utwórz katalog o nazwie src. Zapisz pobrany do niego plik oceniania. Ten katalog jest przekazywany na platformę Azure i zawiera cały kod źródłowy niezbędny do wnioskowania. W przypadku modelu automatycznego uczenia maszynowego jest tylko jeden plik oceniania.
Tworzenie punktu końcowego i pliku yaml wdrożenia
Aby utworzyć punkt końcowy online z poziomu wiersza polecenia, utwórz endpoint.yml i plik deployment.yml . Poniższy kod pobrany z repozytorium Przykłady usługi Azure Machine Learning przedstawia punkty końcowe/online/managed/sample/, które przechwytują wszystkie wymagane dane wejściowe.
Należy zmodyfikować ten plik, aby korzystał z plików pobranych ze strony Modele automatycznego uczenia maszynowego.
Utwórz plik automl_endpoint.yml i automl_deployment.yml i wklej zawartość powyższych przykładów.
Zmień wartość name punktu końcowego. Nazwa punktu końcowego musi być unikatowa w regionie świadczenia usługi Azure. Nazwa punktu końcowego musi zaczynać się od wielkiej lub małej litery i składać się tylko z znaków "-" i alfanumerycznych.
W pliku automl_deployment.yml zmień wartość kluczy w następujących ścieżkach.
Ścieżka
Zmień na
model:path
Ścieżka do pobranego pliku model.pkl .
code_configuration:code:path
Katalog, w którym umieszczono plik oceniania.
code_configuration:scoring_script
Nazwa pliku oceniania języka Python (scoring_file_<VERSION>.py).
environment:conda_file
Adres URL pliku pobranego pliku środowiska Conda (conda_env_<VERSION>.yml).
Utwórz katalog o nazwie src. Zapisz pobrany do niego plik oceniania. Ten katalog jest przekazywany na platformę Azure i zawiera cały kod źródłowy niezbędny do wnioskowania. W przypadku modelu automatycznego uczenia maszynowego jest tylko jeden plik oceniania.
Nawiązywanie połączenia z obszarem roboczym usługi Azure Machine Learning
Zaimportuj wymagane biblioteki.
# import required libraries
from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
CodeConfiguration,
)
from azure.identity import DefaultAzureCredential
Konfigurowanie szczegółów obszaru roboczego i uzyskiwanie dojścia do obszaru roboczego.
# enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
# get a handle to the workspace
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
Tworzenie punktu końcowego i wdrożenia
Utwórz zarządzane punkty końcowe online i wdrożenia.
Konfigurowanie punktu końcowego online.
Napiwek
name: nazwa punktu końcowego. Musi być unikatowa w regionie świadczenia usługi Azure. Nazwa punktu końcowego musi zaczynać się od wielkiej lub małej litery i składać się tylko z znaków "-" i alfanumerycznych. Aby uzyskać więcej informacji na temat reguł nazewnictwa, zobacz Limity punktów końcowych.
auth_mode : służy key do uwierzytelniania opartego na kluczach. Służy aml_token do uwierzytelniania opartego na tokenach usługi Azure Machine Learning. Element key nie wygasa, ale aml_token wygasa. Aby uzyskać więcej informacji na temat uwierzytelniania, zobacz Uwierzytelnianie w punkcie końcowym online.
# Creating a unique endpoint name with current datetime to avoid conflicts
import datetime
online_endpoint_name = "endpoint-" + datetime.datetime.now().strftime("%m%d%H%M%f")
# create an online endpoint
endpoint = ManagedOnlineEndpoint(
name=online_endpoint_name,
description="this is a sample online endpoint",
auth_mode="key",
)
Utwórz punkt końcowy.
Przy użyciu utworzonego MLClient wcześniej elementu utwórz punkt końcowy w obszarze roboczym. To polecenie uruchamia tworzenie punktu końcowego. Zwraca odpowiedź z potwierdzeniem, gdy tworzenie punktu końcowego będzie kontynuowane.
ml_client.begin_create_or_update(endpoint)
Konfigurowanie wdrożenia online.
Wdrożenie to zestaw zasobów wymaganych do hostowania modelu, który wykonuje rzeczywiste wnioskowanie. Utwórz wdrożenie dla naszego punktu końcowego ManagedOnlineDeployment przy użyciu klasy .
W tym przykładzie pliki pobrane ze strony Modele automatycznego uczenia maszynowego znajdują się w katalogu src . Parametry w kodzie można zmodyfikować tak, aby odpowiadały twojej sytuacji.
Parametr
Zmień na
model:path
Ścieżka do pobranego pliku model.pkl .
code_configuration:code:path
Katalog, w którym umieszczono plik oceniania.
code_configuration:scoring_script
Nazwa pliku oceniania języka Python (scoring_file_<VERSION>.py).
environment:conda_file
Adres URL pliku pobranego pliku środowiska Conda (conda_env_<VERSION>.yml).
Utwórz wdrożenie.
Za pomocą utworzonego MLClient wcześniej polecenia utwórz wdrożenie w obszarze roboczym. To polecenie rozpoczyna tworzenie wdrożenia. Zwraca odpowiedź z potwierdzeniem, gdy tworzenie wdrożenia będzie kontynuowane.