CLI ile Azure Container Instances modeli dağıtma (v1)
Önemli
Bu makalede, cli ve SDK v1 kullanarak bir modelin nasıl dağıtılacağı gösterilmektedir. v2 için önerilen yaklaşım için bkz. Çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puan etme.
Azure Machine Learning'i kullanarak modeli Azure Container Instances(ACI) üzerinde web hizmeti olarak dağıtmayı öğrenin. Aşağıdakiler için Azure Container Instances kullanın:
- kendi Kubernetes kümenizi yönetmeyi tercih etme
- Hizmetinizin yalnızca tek bir çoğaltması olabilir ve bu da çalışma süresini etkileyebilir
ACI için kota ve bölge kullanılabilirliği hakkında bilgi için Azure Container Instances için kotalar ve bölge kullanılabilirliği makalesine bakın.
Önemli
Web hizmetine dağıtmadan önce yerel olarak hata ayıklamanız önemle tavsiye edilir, daha fazla bilgi için bkz. Yerel Olarak Hata Ayıklama
Azure Machine Learning - Yerel Not Defterine Dağıtma konusuna da bakabilirsiniz
Önkoşullar
Azure Machine Learning çalışma alanı. Daha fazla bilgi için bkz. Azure Machine Learning çalışma alanı oluşturma.
Çalışma alanınıza kayıtlı bir makine öğrenmesi modeli. Kayıtlı bir modeliniz yoksa bkz. Modelleri dağıtma ve dağıtma.
Machine Learning hizmeti, AzureMachine Learning Python SDK'sı veya Azure Machine LearningVisual Studio Code uzantısı için Azure CLI uzantısı (v1).
Önemli
Bu makaledeki Azure CLI komutlarından bazıları Azure Machine Learning için , veya v1 uzantısını kullanır
azure-cli-ml
. v1 uzantısı desteği 30 Eylül 2025'te sona erecektir. Bu tarihe kadar v1 uzantısını yükleyebilecek ve kullanabileceksiniz.30 Eylül 2025'e kadar uzantısına veya v2 uzantısına geçmenizi
ml
öneririz. v2 uzantısı hakkında daha fazla bilgi için bkz. Azure ML CLI uzantısı ve Python SDK v2.Bu makaledeki Python kod parçacıklarında aşağıdaki değişkenlerin ayarlandığı varsayılır:
ws
- Çalışma alanınıza ayarlayın.model
- Kayıtlı modelinize ayarlayın.inference_config
- Modelin çıkarım yapılandırmasına ayarlayın.
Bu değişkenleri ayarlama hakkında daha fazla bilgi için bkz. Modellerin nasıl ve nereye dağıtılacağı.
Bu makaledeki CLI kod parçacıkları, bir
inferenceconfig.json
belge oluşturduğunuzu varsayar. Bu belgeyi oluşturma hakkında daha fazla bilgi için bkz. Modelleri dağıtma ve dağıtma.
Sınırlamalar
Azure Machine Learning çalışma alanınız özel uç noktayla yapılandırıldığında, sanal ağda Azure Container Instances'a dağıtım desteklenmez. Bunun yerine Ağ yalıtımına sahip yönetilen çevrimiçi uç nokta kullanmayı düşünün.
ACI'ye dağıtma
Modeli Azure Container Instances dağıtmak için gereken işlem kaynaklarını açıklayan bir dağıtım yapılandırması oluşturun. Örneğin, çekirdek ve bellek sayısı. Modeli ve web hizmetini barındırmak için gereken ortamı açıklayan bir çıkarım yapılandırmasına da ihtiyacınız vardır. Çıkarım yapılandırmasını oluşturma hakkında daha fazla bilgi için bkz. Modellerin nasıl ve nereye dağıtılacağı.
Not
- ACI, yalnızca boyutu 1 GB'ın altında olan küçük modellere uygundur.
- Daha büyük modelleri geliştirmek ve test etmek için tek düğümlü AKS kullanmanızı öneririz.
- Dağıtılacak model sayısı dağıtım başına 1.000 modelle sınırlıdır (kapsayıcı başına).
SDK’yı kullanarak
ŞUNLAR IÇIN GEÇERLIDIR: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)
Bu örnekte kullanılan sınıflar, yöntemler ve parametreler hakkında daha fazla bilgi için aşağıdaki başvuru belgelerine bakın:
Azure CLI'yı kullanma
ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v1
CLI kullanarak dağıtmak için aşağıdaki komutu kullanın. değerini kayıtlı modelin adı ve sürümüyle değiştirin mymodel:1
. değerini bu hizmete vermek için şunun adıyla değiştirin myservice
:
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json
Belgedeki deploymentconfig.json
girdiler , AciWebservice.deploy_configuration parametreleriyle eşler. Aşağıdaki tabloda JSON belgesindeki varlıklar ile yöntemine yönelik parametreler arasındaki eşleme açıklanmaktadır:
JSON varlığı | Yöntem parametresi | Açıklama |
---|---|---|
computeType |
NA | Bilgi işlem hedefi. ACI için değeri olmalıdır ACI . |
containerResourceRequirements |
NA | CPU ve bellek varlıkları için kapsayıcı. |
cpu |
cpu_cores |
Ayrılacak CPU çekirdeği sayısı. Varsayılan 0.1 |
memoryInGB |
memory_gb |
Bu web hizmeti için ayrılacak bellek miktarı (GB cinsinden). Varsayılan 0.5 |
location |
location |
Bu Web hizmetini dağıtılacak Azure bölgesi. Belirtilmezse Çalışma Alanı konumu kullanılır. Kullanılabilir bölgeler hakkında daha fazla ayrıntıya şuradan ulaşabilirsiniz: ACI Bölgeleri |
authEnabled |
auth_enabled |
Bu Web hizmeti için kimlik doğrulamasının etkinleştirilip etkinleştirilmeyileceği. Varsayılan değer False'tur |
sslEnabled |
ssl_enabled |
Bu Web hizmeti için SSL'nin etkinleştirilip etkinleştirilmeyileceği. Varsayılan değer False'tur. |
appInsightsEnabled |
enable_app_insights |
Bu Web hizmeti için AppInsights'ın etkinleştirilip etkinleştirilmeyileceği. Varsayılan değer False'tur |
sslCertificate |
ssl_cert_pem_file |
SSL etkinse gereken sertifika dosyası |
sslKey |
ssl_key_pem_file |
SSL etkinse gereken anahtar dosyası |
cname |
ssl_cname |
SSL'nin etkin olup olmadığının cname değeri |
dnsNameLabel |
dns_name_label |
Puanlama uç noktasının dns adı etiketi. Belirtilmezse puanlama uç noktası için benzersiz bir dns adı etiketi oluşturulur. |
Aşağıdaki JSON, CLI ile kullanım için örnek bir dağıtım yapılandırmasıdır:
{
"computeType": "aci",
"containerResourceRequirements":
{
"cpu": 0.5,
"memoryInGB": 1.0
},
"authEnabled": true,
"sslEnabled": false,
"appInsightsEnabled": false
}
Daha fazla bilgi için bkz. az ml model deploy başvurusu.
VS Code'u kullanma
BKZ. VS Code'da kaynakları yönetme.
Önemli
Test etmek için önceden bir ACI kapsayıcısı oluşturmanız gerekmez. ACI kapsayıcıları gerektiğinde oluşturulur.
Önemli
Oluşturulan tüm temel ACI kaynaklarına karma çalışma alanı kimliği ekleriz; aynı çalışma alanında yer alan tüm ACI adları aynı son eke sahip olur. Azure Machine Learning hizmeti adı hala "service_name" sağlanan müşteriyle aynı olacaktır ve Azure Machine Learning SDK API'lerine yönelik tüm kullanıcıların herhangi bir değişikliğe ihtiyacı yoktur. Oluşturulan temel kaynakların adlarıyla ilgili hiçbir garanti vermiyoruz.
Sonraki adımlar
- Özel Docker görüntüsü kullanarak model dağıtma
- Dağıtım sorunlarını giderme
- Web hizmetini güncelleştirme
- TLS kullanarak Azure Machine Learning aracılığıyla web hizmetinin güvenliğini sağlama
- Web hizmeti olarak dağıtılan ml modelini kullanma
- Application Insights ile Azure Machine Learning modellerinizi izleme
- Üretimde modeller için veri toplama