In diesem Artikel erfahren Sie, wie Sie ein AutoML-trainiertes Machine Learning-Modell an einem Onlineendpunkt mit Echtzeitrückschluss bereitstellen. Automatisiertes maschinelles Lernen, auch als automatisiertes ML oder AutoML bezeichnet, ist der Prozess des Automatisierens der zeitaufwändigen, iterativen Aufgaben der Entwicklung eines Machine Learning-Modells. Weitere Informationen finden Sie unter Was ist automatisiertes maschinelles Lernen (AutoML)?.
In den folgenden Abschnitten erfahren Sie, wie Sie ein AutoML-trainiertes Machine Learning-Modell mit Folgendem an Onlineendpunkten bereitstellen:
Bereitstellen über Azure Machine Learning Studio und ohne Code
Die Bereitstellung eines mit AutoML trainierten Modells von der Seite „Automatisiertes ML“ aus ist ganz ohne Code möglich. Das bedeutet, Sie müssen kein Bewertungsskript und keine Umgebung vorbereiten, da beides automatisch generiert wird.
Wechseln Sie in Azure Machine Learning Studio zur Seite Automatisiertes maschinelles Lernen.
Wählen Sie Ihr Experiment aus, und führen Sie es aus.
Wählen Sie die Registerkarte Modelle + untergeordnete Aufträge aus.
Wählen Sie das Modell aus, das Sie bereitstellen möchten.
Nachdem Sie ein Modell ausgewählt haben, ist die Schaltfläche Bereitstellen mit einem Dropdownmenü verfügbar.
Wählen Sie die Option Echtzeitendpunkt aus.
Das System generiert das Modell und die Umgebung, die für die Bereitstellung erforderlich sind.
Manuelles Bereitstellen über Studio oder die Befehlszeile
Wenn Sie mehr Kontrolle über die Bereitstellung haben möchten, können Sie die Trainingsartefakte herunterladen und bereitstellen.
So laden Sie die Komponenten herunter, die Sie für die Bereitstellung benötigen
Wechseln Sie zu Ihrem Experiment für automatisiertes ML, und führen Sie es in Ihrem Machine Learning-Arbeitsbereich aus.
Wählen Sie die Registerkarte Modelle + untergeordnete Aufträge aus.
Wählen Sie das Modell aus, das Sie verwenden möchten. Nachdem Sie ein Modell ausgewählt haben, wird die Schaltfläche Herunterladen aktiviert.
Wählen Sie Herunterladen aus.
Sie erhalten eine ZIP-Datei, die Folgendes enthält:
Eine Conda-Umgebungsspezifikationsdatei namens conda_env_<VERSION>.yml
Eine Python-Bewertungsdatei mit dem Namen scoring_file_<VERSION>.py
Das Modell selbst in einer Python-Datei (.pkl) namens model.pkl
Sie können entweder das Studio oder die Azure CLI verwenden, um diese Dateien bereitzustellen.
Wechseln Sie in Azure Machine Learning Studio zur Seite Modelle.
Wählen Sie + Registrieren>Aus lokalen Dateien aus.
Registrieren Sie das Modell, das Sie bei der Ausführung von automatisiertem ML heruntergeladen haben.
Wechseln Sie zur Seite „Umgebungen“, wählen Sie Benutzerdefinierte Umgebung und dann die Option + Erstellen aus, um eine Umgebung für Ihre Bereitstellung zu erstellen. Verwenden Sie die heruntergeladene Conda-YAML-Datei, um eine benutzerdefinierte Umgebung zu erstellen.
Wählen Sie das Modell und dann im Dropdownmenü Bereitstellen die Option Echtzeitendpunkt aus.
Führen Sie alle Schritte im Assistenten aus, um einen Onlineendpunkt und eine Bereitstellung zu erstellen.
Um eine Bereitstellung über die CLI zu erstellen, benötigen Sie die Azure CLI mit der ML v2-Erweiterung. Führen Sie zum Bestätigen den folgenden Befehl aus:
Wenn Sie Zugriff auf mehrere Azure-Abonnements haben, können Sie Ihr aktives Abonnement festlegen:
az account set -s "<YOUR_SUBSCRIPTION_NAME_OR_ID>"
Legen Sie die Standardressourcengruppe und den Standardarbeitsbereich auf den Ort fest, an dem Sie die Bereitstellung erstellen möchten:
az configure --defaults group=$GROUP workspace=$WORKSPACE location=$LOCATION
Legen Sie die Bewertungsdatei in einem eigenen Verzeichnis ab.
Erstellen Sie ein Verzeichnis namens src. Speichern Sie die Bewertungsdatei, die Sie dort heruntergeladen haben. Dieses Verzeichnis wird in Azure hochgeladen und enthält den gesamten Quellcode, der zum Ziehen von Rückschlüssen erforderlich ist. Für ein AutoML-Modell gibt es nur die einzelne Bewertungsdatei.
Erstellen des Endpunkts und der YAML-Bereitstellungsdatei
Zum Erstellen eines Onlineendpunkts über die Befehlszeile erstellen Sie eine Datei vom Typ endpoint.yml und eine Datei vom Typ deployment.yml. Der folgende Code aus dem Repository für Azure Machine Learning-Beispiele zeigt das Verzeichnis endpoints/online/managed/sample/ an, das alle erforderlichen Eingaben erfasst:
Sie müssen diese Datei ändern, um die Dateien zu verwenden, die Sie von der Seite für AutoML-Modelle heruntergeladen haben.
Erstellen Sie die Dateien automl_endpoint.yml und automl_deployment.yml, und fügen Sie den Inhalt der vorherigen Beispiele ein.
Ändern Sie den name-Wert des Endpunkts. Der Endpunktname muss innerhalb der Azure-Region eindeutig sein. Der Name eines Endpunkts muss mit einem Groß- oder Kleinbuchstaben beginnen und darf nur aus Bindestrichen (-) und alphanumerischen Zeichen bestehen.
Ändern Sie in der Datei automl_deployment.yml den Wert der Schlüssel in den folgenden Pfaden:
Pfad
Ändern in
model:path
Der Pfad zur heruntergeladenen Datei model.pkl
code_configuration:code:path
Das Verzeichnis, in dem Sie die Bewertungsdatei platziert haben.
code_configuration:scoring_script
Der Name der Python-Bewertungsdatei (scoring_file_<VERSION>.py)
environment:conda_file
Eine Datei-URL für die heruntergeladene Conda-Umgebungsdatei (conda_env_<VERSION>.yml)
Legen Sie die Bewertungsdatei in einem eigenen Verzeichnis ab.
Erstellen Sie ein Verzeichnis namens src. Speichern Sie die Bewertungsdatei, die Sie dort heruntergeladen haben. Dieses Verzeichnis wird in Azure hochgeladen und enthält den gesamten Quellcode, der zum Ziehen von Rückschlüssen erforderlich ist. Für ein AutoML-Modell gibt es nur die einzelne Bewertungsdatei.
Herstellen einer Verbindung mit einem Azure Machine Learning-Arbeitsbereich
Importieren Sie die erforderlichen Bibliotheken.
# 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
Konfigurieren Sie Arbeitsbereichsdetails und rufen Sie einen Handle für den Arbeitsbereich ab.
# 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
)
Erstellen Sie den Endpunkt und die Bereitstellung
Erstellen Sie die verwalteten Onlineendpunkte und -bereitstellungen.
Konfigurieren Sie den Onlineendpunkt.
Tipp
name: Der Name des Endpunkts. Er muss in der Azure-Region eindeutig sein. Der Name eines Endpunkts muss mit einem Groß- oder Kleinbuchstaben beginnen und darf nur aus Bindestrichen (-) und alphanumerischen Zeichen bestehen. Weitere Informationen zu den Benennungsregeln finden Sie unter Endpunktgrenzwerte.
auth_mode: Verwenden Sie key für die schlüsselbasierte Authentifizierung. Verwenden Sie aml_token für die tokenbasierte Azure Machine Learning-Authentifizierung. Ein key läuft nicht ab, dafür aber aml_token. Weitere Informationen zur Authentifizierung finden Sie unter Authentifizieren bei einem Onlineendpunkt.
# 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",
)
Erstellen Sie den Endpunkt.
Erstellen Sie mithilfe des zuvor erstellten ML-Clients (MLClient) den Endpunkt im Arbeitsbereich. Dieser Befehl startet die Endpunkterstellung. Er gibt eine Bestätigungsantwort zurück, während die Endpunkterstellung fortgesetzt wird.
ml_client.begin_create_or_update(endpoint)
Konfigurieren Sie die Onlinebereitstellung.
Eine Einrichtung ist ein Satz von Ressourcen, die für das Hosting des Modells erforderlich sind, das die eigentliche Inferenz durchführt. Erstellen Sie eine Bereitstellung für unseren Endpunkt mithilfe der ManagedOnlineDeployment-Klasse.
In diesem Beispiel befinden sich die Dateien, die Sie von der Seite mit AutoML-Modellen heruntergeladen haben, im Verzeichnis src. Sie können die Parameter im Code an Ihre Situation anpassen.
Parameter
Ändern in
model:path
Der Pfad zur heruntergeladenen Datei model.pkl
code_configuration:code:path
Das Verzeichnis, in dem Sie die Bewertungsdatei platziert haben.
code_configuration:scoring_script
Der Name der Python-Bewertungsdatei (scoring_file_<VERSION>.py)
environment:conda_file
Eine Datei-URL für die heruntergeladene Conda-Umgebungsdatei (conda_env_<VERSION>.yml)
Erstellen Sie die Bereitstellung.
Erstellen Sie mithilfe des zuvor erstellten MLClient die Bereitstellung im Arbeitsbereich. Mit diesem Befehl wird die Bereitstellung erstellt. Er gibt eine Bestätigungsantwort zurück, während die Bereitstellungserstellung fortgesetzt wird.