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 beoordelen met behulp van een online-eindpunt voor de aanbevolen aanpak voor v2.
Meer informatie over het gebruik van Azure Machine Learning voor het implementeren van een model als een webservice in Azure Container Instances (ACI). Gebruik Azure Container Instances als u:
- liever niet uw eigen Kubernetes-cluster beheren
- Is het goed dat u slechts één replica van uw service hebt, wat van invloed kan zijn op de uptime
Zie het artikel Quota en beschikbaarheid van regio's voor Azure Container Instances voor informatie over de beschikbaarheid van quota en regio's voor ACI.
Belangrijk
Het wordt ten zeerste aangeraden lokaal fouten op te sporen voordat u implementeert in de webservice. Zie Debug Lokaal 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 Hoe en waar u modellen kunt implementeren.
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 gebruiken 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.U wordt aangeraden vóór 30 september 2025 over te stappen op de
ml
extensie of v2. Zie de Azure ML CLI-extensie en Python SDK v2 voor meer informatie over de v2-extensie.In de Python-codefragmenten in dit artikel wordt ervan uitgegaan dat de volgende variabelen zijn ingesteld:
ws
- Stel deze in op uw werkruimte.model
- Ingesteld op uw geregistreerde model.inference_config
- Instellen op de deductieconfiguratie voor het model.
Zie Hoe en waar u modellen kunt 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 Hoe en waar u modellen kunt 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 in Azure Container Instances in een virtueel netwerk 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 het geheugen. U hebt ook een deductieconfiguratie nodig, waarin de omgeving wordt beschreven die nodig is om het model en de webservice te hosten. Zie Hoe en waar u modellen kunt 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 gebruik van de Azure CLI
VAN TOEPASSING OP: Azure CLI ml-extensie v1
Gebruik de volgende opdracht om te implementeren met behulp van de CLI. Vervang door mymodel:1
de naam en versie van het geregistreerde model. Vervang myservice
door 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 |
N.v.t. | Het rekendoel. Voor ACI moet de waarde ACI zijn. |
containerResourceRequirements |
N.v.t. | 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 TLS 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 TLS is ingeschakeld |
sslKey |
ssl_key_pem_file |
Het sleutelbestand dat nodig is als TLS is ingeschakeld |
cname |
ssl_cname |
De CNAME voor als TLS 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 over az ml model deploy voor meer informatie.
VS Code gebruiken
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 een hash-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 gebruikersgerichte API's van de Azure Machine Learning SDK 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