Nasazení modelu do Azure Container Instances pomocí rozhraní příkazového řádku (v1)

Důležité

Tento článek popisuje, jak pomocí rozhraní příkazového řádku a sady SDK v1 nasadit model. Doporučený přístup pro verzi 2 najdete v tématu Nasazení a hodnocení modelu strojového učení pomocí online koncového bodu.

Naučte se používat Azure Machine Learning k nasazení modelu jako webové služby v Azure Container Instances (ACI). Azure Container Instances použijte v následujících případech:

  • nechcete spravovat vlastní cluster Kubernetes.
  • Máte jenom jednu repliku služby, což může mít vliv na dobu provozu

Informace o dostupnosti kvót a oblastí pro ACI najdete v článku o kvótách a dostupnosti oblastí pro Azure Container Instances.

Důležité

Důrazně doporučujeme ladit místně před nasazením do webové služby. Další informace najdete v tématu Místní ladění.

Můžete využít také poznámkový blok služby Azure Machine Learning pro místní nasazení.

Požadavky

Omezení

Pokud je pracovní prostor služby Azure Machine Learning nakonfigurovaný s privátním koncovým bodem, nasazení do Azure Container Instances ve virtuální síti se nepodporuje. Místo toho zvažte použití spravovaného online koncového bodu s izolací sítě.

Nasazení do ACI

Pokud chcete nasadit model do Azure Container Instances, vytvořte konfiguraci nasazení, která popisuje potřebné výpočetní prostředky. Například počet jader a paměť. Potřebujete také konfiguraci odvozování, která popisuje prostředí potřebné k hostování modelu a webové služby. Další informace o vytváření konfigurace odvozování najdete v tématu Jak a kde nasazovat modely.

Poznámka

  • Služba ACI je vhodná jenom pro malé modely, které jsou menší než 1 GB.
  • Pro vývoj a testování větších modelů doporučujeme používat AKS s jedním uzlem.
  • Počet nasazovaných modelů je omezený na 1 000 modelů na jedno nasazení (na kontejner).

Použití sady SDK

PLATÍ PRO:Sada 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)

Další informace o třídách, metodách a parametrech použitých v tomto příkladu najdete v následujících referenčních dokumentech:

Použití Azure CLI

PLATÍ PRO:Rozšíření Azure CLI ml v1

K nasazení pomocí rozhraní příkazového řádku použijte následující příkaz. Nahraďte mymodel:1 názvem a verzí registrovaného modelu. Nahraďte myservice názvem pro tuto službu:

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

Položky v dokumentu se deploymentconfig.json mapují na parametry pro AciWebservice.deploy_configuration. Následující tabulka popisuje mapování mezi entitami v dokumentu JSON a parametry pro metodu :

Entita JSON Parametr metody Description
computeType NA Cílové výpočetní prostředí. V případě ACI musí být ACIhodnota .
containerResourceRequirements NA Kontejner pro entity procesoru a paměti.
  cpu cpu_cores Počet procesorových jader, která se mají přidělit. Výchozí 0.1
  memoryInGB memory_gb Velikost paměti (v GB), která se má přidělit této webové službě. Výchozí 0.5
location location Oblast Azure, do které se má tato webová služba nasadit. Pokud ho nezadáte, použije se umístění pracovního prostoru. Další podrobnosti o dostupných oblastech najdete tady: Oblasti ACI
authEnabled auth_enabled Jestli se má povolit ověřování pro tuto webovou službu. Výchozí hodnota je False.
sslEnabled ssl_enabled Jestli se má pro tuto webovou službu povolit SSL. Výchozí hodnota je False.
appInsightsEnabled enable_app_insights Určuje, jestli se má pro tuto webovou službu povolit AppInsights. Výchozí hodnota je False.
sslCertificate ssl_cert_pem_file Požadovaný soubor certifikátu, pokud je povolený protokol SSL
sslKey ssl_key_pem_file Soubor klíče, který je potřeba, pokud je povolený protokol SSL
cname ssl_cname Název cname pro , pokud je povolený protokol SSL
dnsNameLabel dns_name_label Popisek názvu DNS bodujícího koncového bodu. Pokud není zadaný, pro bodovací koncový bod se vygeneruje jedinečný popisek názvu DNS.

Následující kód JSON je příkladem konfigurace nasazení pro použití s rozhraním příkazového řádku:

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

Další informace najdete v referenčních informacích k az ml model deploy .

Použití VS Code

Podívejte se, jak spravovat prostředky ve VS Code.

Důležité

Abyste mohli předem testovat, nemusíte vytvářet kontejner ACI. Kontejnery ACI se vytvářejí podle potřeby.

Důležité

Ke všem podkladovým prostředkům ACI, které se vytvoří, připojíme ID pracovního prostoru s hodnotou hash. Všechny názvy ACI ze stejného pracovního prostoru budou mít stejnou příponu. Název služby Azure Machine Learning bude stále stejný, jako má zákazník service_name, a všechna rozhraní API sady Sdk služby Azure Machine Learning, která mají přístup k uživatelům, nepotřebují žádnou změnu. Ohledně názvů vytvářených základních prostředků neposkytujeme žádné záruky.

Další kroky