CLI ile Azure Container Instances'a model dağıtma (v1)

Önemli

Bu makalede, bir modeli dağıtmak için CLI ve SDK v1'in nasıl kullanılacağı gösterilmektedir. v2 için önerilen yaklaşım için bkz . Çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puanlandırma.

Azure Container Instances'ta (ACI) bir modeli web hizmeti olarak dağıtmak için Azure Machine Learning'i kullanmayı öğrenin. Aşağıdaki durumlarda Azure Container Instances'i kullanın:

  • kendi Kubernetes kümenizi yönetmeyi tercih etme
  • Hizmetinizin çalışma süresini etkileyebilecek tek bir çoğaltması olması sorun değil mi?

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 kaydedilmiş bir makine öğrenmesi modeli. Kayıtlı bir modeliniz yoksa bkz . Modellerin nasıl ve nereye dağıtılacağı.

  • Machine Learning hizmeti, Azure Machine Learning Python SDK'sı veya Azure Machine Learning Visual 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 uzantısını veya v1'i 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 , 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ında bir inferenceconfig.json belge oluşturduğunuz varsayılır. Bu belgeyi oluşturma hakkında daha fazla bilgi için bkz . Modellerin nasıl ve nereye dağıtılacağı.

Sınırlamalar

Azure Machine Learning çalışma alanınız özel bir 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

Azure Container Instances'a model dağıtmak için, gereken işlem kaynaklarını açıklayan bir dağıtım yapılandırması oluşturun. Örneğin, çekirdek sayısı ve bellek. 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

ŞUNUN 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 hizmeti vermek için 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öntemi için parametreler arasındaki eşleme açıklanmaktadır:

JSON varlığı Yöntem parametresi Açıklama
computeType NA İş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). Temerrüt 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 buradan 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 TLS'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 TLS etkinse gereken sertifika dosyası
sslKey ssl_key_pem_file TLS etkinse gereken anahtar dosyası
cname ssl_cname TLS'nin etkin olup olmadığının CNAME'si
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 az ml model deploy başvurusuna bakın.

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 hizmet adı hala "service_name" sağlanan müşteriyle aynı olacaktır ve Azure Machine Learning SDK'sı 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