Een model implementeren in Azure Container Instances met CLI (v1)
Belangrijk
In dit artikel wordt beschreven hoe u de CLI en SDK v1 gebruikt om een model te implementeren. Zie Een machine learning-model implementeren en scoren met behulp van een online-eindpunt voor de aanbevolen aanpak voor v2.
Meer informatie over het gebruik van Azure Machine Learning om een model te implementeren als een webservice op Azure Container Instances (ACI). Gebruik Azure Container Instances als u:
- liever niet uw eigen Kubernetes-cluster beheren
- Kunt u slechts één replica van uw service gebruiken, wat van invloed kan zijn op de uptime
Zie het artikel Quota en beschikbaarheid van regio's voor Azure Container Instances voor meer informatie over de beschikbaarheid van quota en regio's voor ACI.
Belangrijk
Het wordt ten zeerste aangeraden om lokaal fouten op te sporen voordat u implementeert in de webservice. Zie Lokaal fouten opsporen voor meer informatie
U kunt ook verwijzen naar Azure Machine Learning: Deploy to Local Notebook (Implementeren naar lokale notebook)
Vereisten
Een Azure Machine Learning-werkruimte. Zie Een Azure Machine Learning-werkruimte maken voor meer informatie.
Een machine learning-model dat is geregistreerd in uw werkruimte. Als u geen geregistreerd model hebt, raadpleegt u Modellen implementeren en waar.
De Azure CLI-extensie (v1) voor Machine Learning Service, Azure Machine Learning Python SDK of de Azure Machine Learning Visual Studio Code-extensie.
Belangrijk
Sommige Azure CLI-opdrachten in dit artikel maken gebruik van de
azure-cli-ml
extensie , of v1, voor Azure Machine Learning. Ondersteuning voor de v1-extensie eindigt op 30 september 2025. U kunt de v1-extensie tot die datum installeren en gebruiken.Het is raadzaam om vóór 30 september 2025 over te stappen naar de
ml
extensie , of v2. Zie Azure ML CLI-extensie en Python SDK v2 voor meer informatie over de v2-extensie.Voor de Python-codefragmenten in dit artikel wordt ervan uitgegaan dat de volgende variabelen zijn ingesteld:
ws
- Stel in op uw werkruimte.model
- Stel in op het geregistreerde model.inference_config
- Stel in op de deductieconfiguratie voor het model.
Zie Modellen implementeren voor meer informatie over het instellen van deze variabelen.
In de CLI-fragmenten in dit artikel wordt ervan uitgegaan dat u een
inferenceconfig.json
document hebt gemaakt. Zie Modellen implementeren voor meer informatie over het maken van dit document.
Beperkingen
Wanneer uw Azure Machine Learning-werkruimte is geconfigureerd met een privé-eindpunt, wordt implementeren naar Azure Container Instances in een VNet niet ondersteund. Overweeg in plaats daarvan het gebruik van een beheerd online-eindpunt met netwerkisolatie.
Implementeren naar ACI
Als u een model wilt implementeren in Azure Container Instances, maakt u een implementatieconfiguratie waarin de benodigde rekenresources worden beschreven. Bijvoorbeeld het aantal kernen en geheugen. U hebt ook een deductieconfiguratie nodig, waarin de omgeving wordt beschreven die nodig is om het model en de webservice te hosten. Zie Modellen implementeren voor meer informatie over het maken van de deductieconfiguratie.
Notitie
- ACI is alleen geschikt voor modellen die kleiner zijn dan 1 GB.
- U wordt aangeraden AKS met één knooppunt te gebruiken om grotere modellen te ontwikkelen en te testen.
- Het aantal modellen dat moet worden geïmplementeerd, is beperkt tot duizend modellen per implementatie (per container).
De SDK gebruiken
VAN TOEPASSING OP: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)
Zie de volgende referentiedocumenten voor meer informatie over de klassen, methoden en parameters die in dit voorbeeld worden gebruikt:
Met behulp van de Azure CLI
VAN TOEPASSING OP:Azure CLI ml-extensie v1
Als u wilt implementeren met behulp van de CLI, gebruikt u de volgende opdracht. Vervang door mymodel:1
de naam en versie van het geregistreerde model. Vervang door myservice
de naam om deze service te geven:
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json
De vermeldingen in de documenttoewijzing deploymentconfig.json
voor de parameters voor AciWebservice.deploy_configuration. In de volgende tabel wordt de toewijzing tussen de entiteiten in het JSON-document en de parameters beschreven voor de methode:
JSON-entiteit | Methodeparameter | Beschrijving |
---|---|---|
computeType |
NA | Het rekendoel. Voor ACI moet de waarde ACI zijn. |
containerResourceRequirements |
NA | Container voor de CPU en geheugenentiteiten. |
cpu |
cpu_cores |
Het aantal CPU-kernen om toe te wijzen. Standaard 0.1 |
memoryInGB |
memory_gb |
De hoeveelheid geheugen in GB dat moet worden toegewezen voor deze webservice. Standaard 0.5 |
location |
location |
De Azure-regio om deze webservice in te implementeren. Als deze niet wordt opgegeven, wordt de werkruimtelocatie gebruikt. Meer informatie over beschikbare regio's vindt u hier: ACI-regio's |
authEnabled |
auth_enabled |
Hiermee wordt aangegeven of verificatie moet worden ingeschakeld voor deze webservice. Standaard ingesteld op False. |
sslEnabled |
ssl_enabled |
Hiermee wordt aangegeven of SSL moet worden ingeschakeld voor deze webservice. Standaard ingesteld op False. |
appInsightsEnabled |
enable_app_insights |
Hiermee wordt aangegeven of AppInsights moet worden ingeschakeld voor deze webservice. Standaard ingesteld op False. |
sslCertificate |
ssl_cert_pem_file |
Het certificaatbestand dat nodig is als SSL is ingeschakeld |
sslKey |
ssl_key_pem_file |
Het sleutelbestand dat nodig is als SSL is ingeschakeld |
cname |
ssl_cname |
De CNAME die nodig is als SSL is ingeschakeld |
dnsNameLabel |
dns_name_label |
Het DNS-naamlabel voor het score-eindpunt. Als er geen naamlabel wordt opgegeven, wordt er een uniek DNS-naamlabel voor het score-eindpunt gegenereerd. |
De volgende JSON is een voorbeeldimplementatie die gebruikt kan worden met de CLI:
{
"computeType": "aci",
"containerResourceRequirements":
{
"cpu": 0.5,
"memoryInGB": 1.0
},
"authEnabled": true,
"sslEnabled": false,
"appInsightsEnabled": false
}
Zie de naslaginformatie az ml model deploy voor meer informatie.
VS Code gebruiken
Meer informatie over het beheren van resources in VS Code.
Belangrijk
U hoeft geen ACI-container te maken om van tevoren te testen. ACI-containers worden naar behoefte gemaakt.
Belangrijk
We voegen de gehashte werkruimte-id toe aan alle onderliggende ACI-resources die worden gemaakt. Alle ACI-namen uit dezelfde werkruimte hebben hetzelfde achtervoegsel. De naam van de Azure Machine Learning-service is nog steeds dezelfde klant die 'service_name' heeft opgegeven en alle gebruikers die de Azure Machine Learning SDK-API's gebruiken, hoeven niet te worden gewijzigd. Er worden geen garanties gegevens met betrekking tot de namen van onderliggende resources die worden gemaakt.
Volgende stappen
- Een model implementeren met behulp van een aangepaste Docker-installatiekopieën
- Problemen met implementatie oplossen
- De webservice bijwerken
- TLS gebruiken om een webservice te beveiligen via Azure Machine Learning
- Een ML-model gebruiken dat is geïmplementeerd als een webservice
- Uw Azure Machine Learning-modellen bewaken met Application Insights
- Gegevens verzamelen voor modellen in productie