Bereitstellen eines Modells in Azure Container Instances mit der CLI (v1)
Wichtig
In diesem Artikel wird gezeigt, wie Sie die CLI und das SDK v1 verwenden, um ein Modell bereitzustellen. Informationen zum empfohlenen Ansatz für v2 finden Sie unter Bereitstellen und Bewertung eines Machine Learning-Modells mithilfe eines Onlineendpunkts.
Erfahren Sie, wie Sie ein Modell mit Azure Machine Learning als Webdienst in Azure Container Instances (ACI) bereitstellen. Verwenden Sie Azure Container Instances, wenn Folgendes zutrifft:
- Sie möchten keinen eigenen Kubernetes-Cluster verwalten.
- Sie benötigen nur ein Replikat Ihres Diensts (kann sich auf die Uptime auswirken).
Informationen zu den für ACI geltenden Kontingenten und zur Verfügbarkeit in den Regionen finden Sie im Artikel Kontingente und Limits für Azure Container Instances.
Wichtig
Es wird dringend empfohlen, vor der Bereitstellung im Webdienst lokal zu debuggen. Weitere Informationen finden Sie unter Lokales Debuggen.
Weitere Informationen finden Sie auch unter Azure Machine Learning – Bereitstellung auf lokalem Notebook
Voraussetzungen
Ein Azure Machine Learning-Arbeitsbereich. Weitere Informationen finden Sie unter Erstellen eines Azure Machine Learning-Arbeitsbereichs.
Ein Machine Learning-Modell, das in Ihrem Arbeitsbereich registriert ist. Wenn Sie über kein registriertes Modell verfügen, finden Sie hier weitere Informationen: Wie und wo Modelle bereitgestellt werden.
Die Azure CLI-Erweiterung (v1) für Machine Learning Service, das Azure Machine Learning Python SDK oder die Visual Studio Code-Erweiterung für Azure Machine Learning.
Wichtig
Einige Azure CLI-Befehle in diesem Artikel verwenden die Erweiterung
azure-cli-ml
oder v1 für Azure Machine Learning. Der Support für die v1-Erweiterung endet am 30. September 2025. Sie können die v1-Erweiterung bis zu diesem Datum installieren und verwenden.Es wird empfohlen, vor dem 30. September 2025 zur
ml
- oder v2-Erweiterung zu wechseln. Weitere Informationen zur v2-Erweiterung finden Sie unter Was sind die Azure Machine Learning CLI und das Python SDK v2?.Bei den in diesem Artikel verwendeten Python-Codeausschnitten wird davon ausgegangen, dass die folgenden Variablen festgelegt sind:
ws
: Legen Sie diese Variable auf Ihren Arbeitsbereich fest.model
: Legen Sie diese Variable auf Ihr registriertes Modell fest.inference_config
: Legen Sie diese Variable auf die Rückschlusskonfiguration für das Modell fest.
Weitere Informationen zum Festlegen dieser Variablen finden Sie unter Wie und wo Modelle bereitgestellt werden.
Bei den in diesem Artikel verwendeten CLI-Ausschnitten wird davon ausgegangen, dass Sie ein
inferenceconfig.json
-Dokument erstellt haben. Weitere Informationen zum Erstellen dieses Dokuments finden Sie unter Wie und wo Modelle bereitgestellt werden.
Begrenzungen
Wenn Ihr Azure Machine Learning-Arbeitsbereich mit einem privaten Endpunkt konfiguriert ist, wird die Bereitstellung in Azure Container Instances in einem virtuellen Netzwerk nicht unterstützt. Verwenden Sie stattdessen einen verwalteten Onlineendpunkt mit Netzwerkisolation.
Bereitstellen für ACI
Um ein Modell für Azure Container Instances bereitzustellen, erstellen Sie eine Bereitstellungskonfiguration, in der die benötigten Computeressourcen beschrieben werden. Dies sind beispielsweise die Anzahl von Kernen und die Arbeitsspeichergröße. Außerdem benötigen Sie eine Rückschlusskonfiguration, in der die zum Hosten des Modells und des Webdiensts erforderliche Umgebung beschrieben wird. Weitere Informationen zum Erstellen der Rückschlusskonfiguration finden Sie unter Wie und wo Modelle bereitgestellt werden.
Hinweis
- ACI eignet sich nur für kleine Modelle, die weniger als 1 GB groß sind.
- Wir empfehlen die Verwendung von AKS mit einem einzelnen Knoten, um größere Modelle zu entwickeln.
- Die Anzahl der bereitzustellenden Modelle ist auf 1.000 Modelle pro Bereitstellung (pro Container) beschränkt.
Verwenden des SDK
GILT FÜR: Python SDK azureml v1
from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
service = Model.deploy(ws, "aciservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)
Weitere Informationen zu den in diesem Beispiel verwendeten Klassen, Methoden und Parametern finden Sie in den folgenden Referenzdokumenten:
Verwenden der Azure-Befehlszeilenschnittstelle
GILT FÜR: Azure CLI-ML-Erweiterung v1
Verwenden Sie für die Bereitstellung mit der CLI den folgenden Befehl. Ersetzen Sie mymodel:1
durch den Namen und die Version des registrierten Modells. Ersetzen Sie myservice
durch den Namen, den dieser Dienst erhalten soll:
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json
Die Einträge im Dokument deploymentconfig.json
werden den Parametern für AciWebservice.deploy_configuration zugeordnet. In der folgenden Tabelle wird die Zuordnung zwischen den Entitäten im JSON-Dokument und den Parametern für die Methode beschrieben:
JSON-Entität | Methodenparameter | Beschreibung |
---|---|---|
computeType |
Nicht verfügbar | Das Computeziel. Für ACI muss der Wert ACI sein. |
containerResourceRequirements |
Nicht verfügbar | Der Container für die CPU- und Arbeitsspeicherentitäten. |
cpu |
cpu_cores |
Die Anzahl der zuzuordnenden CPU-Kerne. Standardwert: 0.1 |
memoryInGB |
memory_gb |
Der Arbeitsspeicherumfang (in GB), der für diesen Webdienst zugeordnet werden soll. Standardwert: 0.5 . |
location |
location |
Die Azure-Region, in der dieser Webdienst bereitgestellt werden soll. Wenn keine Region angegeben ist, wird der Standort des Arbeitsbereichs verwendet. Weitere Informationen zu verfügbaren Regionen finden Sie hier: ACI-Regionen. |
authEnabled |
auth_enabled |
Gibt an, ob die Authentifizierung für diesen Webdienst aktiviert werden soll. Der Standardwert ist „FALSE“. |
sslEnabled |
ssl_enabled |
Gibt an, ob für diesen Webdienst TLS aktiviert werden soll. Der Standardwert lautet „False“. |
appInsightsEnabled |
enable_app_insights |
Gibt an, ob für diesen Webdienst AppInsights aktiviert werden soll. Der Standardwert ist „FALSE“. |
sslCertificate |
ssl_cert_pem_file |
Die benötigte CERT-Datei, wenn TLS aktiviert ist |
sslKey |
ssl_key_pem_file |
Die benötigte KEY-Datei, wenn TLS aktiviert ist |
cname |
ssl_cname |
Der CNAME, wenn TLS aktiviert ist |
dnsNameLabel |
dns_name_label |
Die DNS-Namensbezeichnung für den Bewertungsendpunkt. Wenn keine eindeutige DNS-Namensbezeichnung angegeben ist, wird eine für den Bewertungsendpunkt generiert. |
Der folgende JSON-Code ist ein Beispiel für eine Bereitstellungskonfiguration für die Verwendung mit der CLI:
{
"computeType": "aci",
"containerResourceRequirements":
{
"cpu": 0.5,
"memoryInGB": 1.0
},
"authEnabled": true,
"sslEnabled": false,
"appInsightsEnabled": false
}
Weitere Informationen finden Sie in der az ml model deploy-Referenz.
Verwenden von VS Code
Informationen finden Sie im Artikel zum Verwalten von Ressourcen in VS Code.
Wichtig
Sie müssen vorab keinen ACI-Container zu Testzwecken erstellen. ACI-Container werden bei Bedarf erstellt.
Wichtig
Wir fügen eine Arbeitsbereichs-ID mit Hash allen zugrunde liegenden ACI-Ressourcen hinzu, die erstellt werden. Alle ACI-Namen im selben Arbeitsbereich haben dasselbe Suffix. Der Azure Machine Learning Service-Name wäre immer noch derselbe vom Kunden vorgegebene „Dienstname“, und für alle Benutzer von Azure Machine Learning SDK-APIs ist keine Änderung erforderlich. Wir geben keine Garantien für die Namen der zugrunde liegenden Ressourcen, die erstellt werden.
Nächste Schritte
- Wie man ein Modell mit einem benutzerdefinierten Docker-Image bereitstellt
- Problembehandlung von Bereitstellungen von Azure Machine Learning Service mit AKS und ACI
- Aktualisieren des Webdiensts
- Verwenden von TLS zum Absichern eines Webdiensts mit Azure Machine Learning
- Consume a ML Model deployed as a web service (Nutzen eines als Webdienst bereitgestellten Azure Machine Learning-Modells).
- Überwachen Ihrer Azure Machine Learning-Modelle mit Application Insights
- Sammeln von Daten für Modelle in der Produktion