W tym artykule dowiesz się, jak wdrożyć model uczenia maszynowego wytrenowanego przez rozwiązanie AutoML do punktu końcowego online (wnioskowania w czasie rzeczywistym). 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 tym artykule 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 Edukacja w wersji 2
Wdrażanie z usługi Azure Machine Edukacja 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, oba są generowane automatycznie.
Przejdź do strony Zautomatyzowane uczenie maszynowe w studio
Wybieranie eksperymentu i uruchamianie
Wybieranie karty Modele
Wybierz model, który chcesz wdrożyć
Po wybraniu modelu przycisk Wdróż zostanie wyświetlony z menu rozwijanego
Wybierz opcję Wdróż do punktu końcowego w czasie rzeczywistym
System wygeneruje model i środowisko wymagane do wdrożenia.
Ukończ pracę kreatora, aby wdrożyć model w punkcie końcowym online
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 do wdrożenia:
Przejdź do eksperymentu zautomatyzowanego uczenia maszynowego i uruchom go w obszarze roboczym uczenia maszynowego
Wybieranie karty Modele
Wybierz model, którego chcesz użyć. Po wybraniu modelu przycisk Pobierz zostanie włączony
Wybierz pozycję Pobierz
Otrzymasz plik zip zawierający:
Plik specyfikacji środowiska conda o nazwie conda_env_<VERSION>.yml
Plik oceniania języka Python o nazwie scoring_file_<VERSION>.py
Sam model w pliku w języku Python .pkl o nazwie model.pkl
Aby wdrożyć przy użyciu tych plików, możesz użyć programu Studio lub interfejsu wiersza polecenia platformy Azure.
Przejdź do strony Modele w usłudze Azure Machine Edukacja Studio
Wybierz opcję + Zarejestruj model
Rejestrowanie modelu pobranego z przebiegu zautomatyzowanego uczenia maszynowego
Przejdź do strony Środowiska, wybierz pozycję Środowisko niestandardowe, a następnie wybierz opcję + 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 listy rozwijanej Wdróż wybierz pozycję Wdróż do punktu końcowego w czasie rzeczywistym
Wykonaj wszystkie kroki kreatora, aby utworzyć punkt końcowy i wdrożenie online
Aby utworzyć wdrożenie na podstawie interfejsu wiersza polecenia, musisz mieć interfejs wiersza polecenia platformy Azure z rozszerzeniem ML w wersji 2. Uruchom następujące polecenie, aby potwierdzić, że oba te elementy:
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/ i umieść 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, musisz utworzyć plik endpoint.yml i deployment.yml . Poniższy kod pobrany z repozytorium Usługi Azure Machine Edukacja Examples zawiera 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 wklej zawartość powyższego przykładu.
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.
automl_deployment W pliku zmień wartość kluczy w następujących ścieżkach:
Ścieżka
Zmień na
model:path
Ścieżka do pobranego model.pkl pliku.
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/ i umieść 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.
Połączenie do obszaru roboczego usługi Azure Machine Edukacja
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
Następnie utworzymy zarządzane punkty końcowe i wdrożenia online.
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 w usłudze Azure Machine Edukacja. 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 punktu końcowego utworzymy punkt końcowy w obszarze roboczym. To polecenie spowoduje uruchomienie tworzenia punktu końcowego i zwrócenie odpowiedzi potwierdzenia, 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. Utworzymy wdrożenie dla naszego punktu końcowego ManagedOnlineDeployment przy użyciu klasy .
W powyższym przykładzie przyjęto założenie, że pliki pobrane ze strony Modele automatycznego uczenia maszynowego znajdują się w src katalogu. Parametry w kodzie można zmodyfikować tak, aby odpowiadały twojej sytuacji.
Parametr
Zmień na
model:path
Ścieżka do pobranego model.pkl pliku.
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:
Przy użyciu utworzonego MLClient wcześniej wdrożenia utworzymy teraz w obszarze roboczym. To polecenie spowoduje uruchomienie tworzenia wdrożenia i zwrócenie odpowiedzi potwierdzenia podczas tworzenia wdrożenia.