Sdílet prostřednictvím


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

Důležité

Tento článek ukazuje, jak pomocí rozhraní příkazového řádku a sady SDK v1 nasadit model. Doporučený přístup pro v2 najdete v tématu Nasazení a určení skóre 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 ve službě Azure Container Instances (ACI). Azure Container Instances použijte v následujících případech:

  • nechcete spravovat vlastní cluster Kubernetes
  • Jsou v pořádku, protože máte jenom jednu repliku vaší služby, což může mít vliv na dobu provozu

Informace o kvótách a dostupnosti oblastí pro ACI najdete v článku o kvótách a dostupnosti oblastí pro službu 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

  • Pracovní prostor služby Azure Machine Learning. Další informace najdete v tématu Vytvoření pracovního prostoru Azure Machine Learning.

  • Model strojového učení zaregistrovaný ve vašem pracovním prostoru Pokud nemáte zaregistrovaný model, podívejte se na postup a umístění nasazení modelů.

  • Rozšíření Azure CLI (v1) pro službu Machine Learning, sadu Azure Machine Learning Python SDK nebo rozšíření Azure Machine Learning Visual Studio Code.

    Důležité

    Některé příkazy Azure CLI v tomto článku používají azure-cli-mlrozšíření (nebo v1) pro Azure Machine Learning. Podpora rozšíření v1 skončí 30. září 2025. Do tohoto data budete moct nainstalovat a používat rozšíření v1.

    Doporučujeme přejít na mlrozšíření (nebo v2) před 30. zářím 2025. Další informace o rozšíření v2 najdete v tématu Rozšíření Azure ML CLI a Python SDK v2.

  • Fragmenty kódu Pythonu v tomto článku předpokládají, že jsou nastavené následující proměnné:

    • ws – Nastavte si pracovní prostor.
    • model - Nastavte si zaregistrovaný model.
    • inference_config – Nastavte konfiguraci odvozování modelu.

    Další informace o nastavenítěchtoch

  • Fragmenty kódu rozhraní příkazového řádku v tomto článku předpokládají, že jste vytvořili inferenceconfig.json dokument. Další informace o vytváření tohoto dokumentu najdete v tématu Postupy a umístění nasazení modelů.

Omezení

Poznámka:

  • Nasazení služby Azure Container Instances ve virtuální síti se nepodporuje. Místo toho zvažte použití spravovaných online koncových bodů pro izolaci sítě.
  • Pokud chcete zajistit efektivní podporu, je nezbytné zadat potřebné protokoly pro kontejnery ACI. Bez těchto protokolů nelze zaručit technickou podporu. K efektivní správě a analýze protokolů kontejnerů ACI doporučujeme použít nástroje log Analytics zadáním enable_app_insights=True konfigurace nasazení.

Nasazení do ACI

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

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: 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 této služby:

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

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

Entita JSON Parametr metody Popis
computeType NA Cílový výpočetní objekt. Pro ACI musí být ACIhodnota .
containerResourceRequirements NA Kontejner pro entity procesoru a paměti.
  cpu cpu_cores Počet jader procesoru, která se mají přidělit. Výchozí hodnoty 0.1
  memoryInGB memory_gb Velikost paměti (v GB) pro přidělení této webové služby. Výchozí 0.5
location location Oblast Azure pro nasazení této webové služby do. Pokud nezadáte umístění pracovního prostoru, použije se. Další podrobnosti o dostupných oblastech najdete tady: Oblasti ACI
authEnabled auth_enabled Určuje, jestli chcete povolit ověřování pro tuto webovou službu. Výchozí hodnota je False
sslEnabled ssl_enabled Zda se má pro tuto webovou službu povolit protokol TLS. Výchozí hodnota je False.
appInsightsEnabled enable_app_insights Určuje, jestli chcete pro tuto webovou službu povolit AppInsights. Výchozí hodnota je False
sslCertificate ssl_cert_pem_file Potřebný soubor certifikátu, pokud je povolený protokol TLS
sslKey ssl_key_pem_file Potřebný soubor klíče, pokud je povolený protokol TLS
cname ssl_cname CNAME pro povolení protokolu TLS
dnsNameLabel dns_name_label Popisek názvu DNS pro bodovací koncový bod. Pokud nezadáte jedinečný popisek názvu DNS, vygeneruje se pro bodovací koncový bod.

Následující JSON je ukázková 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 nasazení modelu az ml.

Použití VS Code

Zjistěte , 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é

K vytvořeným prostředkům ACI připojíme ID hashovaného pracovního prostoru. Všechny názvy ACI ze stejného pracovního prostoru budou mít stejnou příponu. Název služby Azure Machine Learning by stále byl stejný zákazník, který zadal "service_name" a všichni uživatelé, kterým čelí rozhraní API sady Azure Machine Learning SDK, nepotřebují žádnou změnu. Ohledně názvů vytvářených základních prostředků neposkytujeme žádné záruky.

Další kroky