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
Pracovní prostor služby Azure Machine Learning. Další informace najdete v tématu Vytvoření pracovního prostoru Služby Azure Machine Learning.
Model strojového učení zaregistrovaný ve vašem pracovním prostoru. Pokud nemáte zaregistrovaný model, přečtěte si téma Jak a kam nasazovat modely.
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-ml
rozšíř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
ml
rozšíření , nebo v2 do 30. září 2025. Další informace o rozšíření v2 najdete v tématech 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 na svůj pracovní prostor.model
– Nastavte na zaregistrovaný model.inference_config
– Nastavte konfiguraci odvozování modelu.
Další informace o nastavení těchto proměnných najdete v tématu Jak a kde nasazovat modely.
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 Jak a kde nasazovat modely.
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 ACI hodnota . |
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
- Nasazení modelu pomocí vlastní image Dockeru
- Řešení potíží s nasazením
- Aktualizace webové služby
- Zabezpečení webové služby prostřednictvím služby Azure Machine Learning s využitím protokolu TLS
- Využití modelu ML nasazeného jako webová služba
- Monitorování modelů Azure Machine Learning pomocí Application Insights
- Shromažďování dat pro modely v produkčním prostředí