Udostępnij za pośrednictwem


Wdrażanie modelu w usłudze Azure Container Instances przy użyciu interfejsu wiersza polecenia (wersja 1)

Ważne

W tym artykule przedstawiono sposób wdrażania modelu przy użyciu interfejsu wiersza polecenia i zestawu SDK w wersji 1. Aby zapoznać się z zalecanym podejściem dla wersji 2, zobacz Wdrażanie i ocenianie modelu uczenia maszynowego przy użyciu punktu końcowego online.

Dowiedz się, jak za pomocą usługi Azure Machine Learning wdrożyć model jako usługę internetową w usłudze Azure Container Instances (ACI). Użyj usługi Azure Container Instances, jeśli:

  • nie chcesz zarządzać własnym klastrem Kubernetes
  • Czy masz tylko jedną replikę usługi, co może mieć wpływ na czas pracy

Aby uzyskać informacje na temat limitu przydziału i dostępności regionu dla usługi ACI, zobacz Limity przydziału i dostępność regionów dla usługi Azure Container Instances .

Ważne

Zdecydowanie zaleca się debugowanie lokalnie przed wdrożeniem w usłudze internetowej, aby uzyskać więcej informacji, zobacz Debugowanie lokalnie

Możesz również skorzystać z usługi Azure Machine Learning — Wdrażanie w notesie lokalnym

Wymagania wstępne

Ograniczenia

Uwaga

  • Wdrażanie usługi Azure Container Instances w sieci wirtualnej nie jest obsługiwane. Zamiast tego w przypadku izolacji sieci rozważ użycie zarządzanych punktów końcowych online.
  • Aby zapewnić skuteczną pomoc techniczną, niezbędne jest dostarczenie niezbędnych dzienników dla kontenerów usługi ACI. Bez tych dzienników nie można zagwarantować pomocy technicznej. Zaleca się korzystanie z narzędzi usługi Log Analytics przez enable_app_insights=True określenie w konfiguracji wdrożenia w celu wydajnego zarządzania dziennikami kontenerów usługi ACI i analizowania ich.

Wdrażanie w usłudze ACI

Aby wdrożyć model w usłudze Azure Container Instances, utwórz konfigurację wdrożenia, która opisuje wymagane zasoby obliczeniowe. Na przykład liczba rdzeni i pamięci. Potrzebna jest również konfiguracja wnioskowania, która opisuje środowisko potrzebne do hostowania modelu i usługi internetowej. Aby uzyskać więcej informacji na temat tworzenia konfiguracji wnioskowania, zobacz How and where to deploy models (Jak i gdzie wdrażać modele).

Uwaga

  • Usługa ACI jest odpowiednia tylko dla małych modeli o rozmiarze poniżej 1 GB.
  • Zalecamy używanie usługi AKS z jednym węzłem do testowania większych modeli.
  • Liczba wdrażanych modeli jest ograniczona do 1000 modeli na wdrożenie (na kontener).

Używanie zestawu SDK

DOTYCZY: Zestaw SDK języka Python w wersji 1

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)

Aby uzyskać więcej informacji na temat klas, metod i parametrów używanych w tym przykładzie, zobacz następujące dokumenty referencyjne:

Przy użyciu interfejsu wiersza polecenia platformy Azure

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 1

Aby wdrożyć przy użyciu interfejsu wiersza polecenia, użyj następującego polecenia. Zastąp mymodel:1 ciąg nazwą i wersją zarejestrowanego modelu. Zastąp myservice ciąg nazwą, aby nadać tej usłudze:

az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json

Wpisy w dokumencie deploymentconfig.json są mapować na parametry dla AciWebservice.deploy_configuration. W poniższej tabeli opisano mapowanie między jednostkami w dokumencie JSON i parametrami metody :

Jednostka JSON Parametr metody opis
computeType NA Docelowy obiekt obliczeniowy. W przypadku usługi ACI wartość musi mieć wartość ACI.
containerResourceRequirements NA Kontener dla jednostek procesora CPU i pamięci.
  cpu cpu_cores Liczba rdzeni procesora CPU do przydzielenia. Ustawienia domyślne 0.1
  memoryInGB memory_gb Ilość pamięci (w GB) do przydzielenia dla tej usługi internetowej. Domyślny 0.5
location location Region świadczenia usługi Azure do wdrożenia tej usługi internetowej. Jeśli nie określono lokalizacji obszaru roboczego, zostanie użyta. Więcej szczegółów na temat dostępnych regionów można znaleźć tutaj: Regiony ACI
authEnabled auth_enabled Czy włączyć uwierzytelnianie dla tej usługi sieci Web. Wartości domyślne to False
sslEnabled ssl_enabled Czy włączyć protokół TLS dla tej usługi sieci Web. Wartość domyślna to False.
appInsightsEnabled enable_app_insights Czy włączyć usługę AppInsights dla tej usługi sieci Web. Wartości domyślne to False
sslCertificate ssl_cert_pem_file Plik certyfikatu wymagany w przypadku włączenia protokołu TLS
sslKey ssl_key_pem_file Plik klucza wymagany w przypadku włączenia protokołu TLS
cname ssl_cname CNAME dla, jeśli protokół TLS jest włączony
dnsNameLabel dns_name_label Etykieta nazwy DNS dla punktu końcowego oceniania. Jeśli nie określono unikatowej etykiety nazwy DNS, zostanie wygenerowana dla punktu końcowego oceniania.

Poniższy kod JSON to przykładowa konfiguracja wdrożenia do użycia z interfejsem wiersza polecenia:

{
    "computeType": "aci",
    "containerResourceRequirements":
    {
        "cpu": 0.5,
        "memoryInGB": 1.0
    },
    "authEnabled": true,
    "sslEnabled": false,
    "appInsightsEnabled": false
}

Aby uzyskać więcej informacji, zobacz dokumentację az ml model deploy .

Korzystanie z programu VS Code

Zobacz , jak zarządzać zasobami w programie VS Code.

Ważne

Nie musisz z wyprzedzeniem tworzyć kontenera ACI na potrzeby testowania. Kontenery ACI są tworzone według potrzeb.

Ważne

Dołączamy identyfikator obszaru roboczego skrótu do wszystkich utworzonych zasobów usługi ACI. Wszystkie nazwy ACI z tego samego obszaru roboczego będą miały ten sam sufiks. Nazwa usługi Azure Machine Learning nadal byłaby tym samym klientem, pod warunkiem "service_name", a wszyscy użytkownicy, którzy mają do czynienia z interfejsami API zestawu SDK usługi Azure Machine Learning, nie potrzebują żadnych zmian. Nie udzielamy żadnych gwarancji dotyczących nazw tworzonych zasobów bazowych.

Następne kroki