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-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) 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.
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 ACI hodnota . |
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
- 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í