CLI (v2) yönetilen çevrimiçi dağıtım YAML şeması

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

Kaynak JSON şeması adresinde https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.jsonbulunabilir.

Not

Bu belgede ayrıntılı olarak yer alan YAML söz dizimi, ML CLI v2 uzantısının en son sürümü için JSON şemasını temel alır. Bu söz diziminin yalnızca ML CLI v2 uzantısının en son sürümüyle çalışması garanti edilir. Eski uzantı sürümleri için şemaları adresinde https://azuremlschemasprod.azureedge.net/bulabilirsiniz.

YAML söz dizimi

Anahtar Type Açıklama İzin verilen değerler Default value
$schema Dize YAML şeması. YAML dosyasını yazmak için Azure Machine Learning VS Code uzantısını kullanırsanız, dosyanızın üst kısmındakiler de dahil olmak üzere $schema şema ve kaynak tamamlama işlemlerini çağırmanıza olanak tanır.
name Dize Gerekli. Dağıtımın adı.

Adlandırma kuralları burada tanımlanmıştır.
description Dize Dağıtımın açıklaması.
tags nesne Dağıtım için etiket sözlüğü.
endpoint_name Dize Gerekli. Dağıtımın oluşturulacağı uç noktanın adı.
model dize veya nesne Dağıtım için kullanılacak model. Bu değer, çalışma alanında var olan bir sürüme sahip modelin başvurusu veya satır içi model belirtimi olabilir.

Var olan bir modele başvurmak için söz dizimini azureml:<model-name>:<model-version> kullanın.

Satır içi bir model tanımlamak için Model şemasını izleyin.

Üretim senaryoları için en iyi uygulama olarak modeli ayrı ayrı oluşturup burada başvurmanız gerekir.

Bu alan, özel kapsayıcı dağıtım senaryoları için isteğe bağlıdır.
model_mount_path Dize Modeli özel bir kapsayıcıya bağlama yolu. Yalnızca özel kapsayıcı dağıtım senaryoları için geçerlidir. model Alan belirtilirse, kapsayıcıdaki bu yola bağlanır.
code_configuration nesne Puanlama kodu mantığı için yapılandırma.

Bu alan, özel kapsayıcı dağıtım senaryoları için isteğe bağlıdır.
code_configuration.code Dize Modeli puanlama için kaynak kod dizinine giden yerel yol.
code_configuration.scoring_script Dize Kaynak kod dizinindeki puanlama dosyasının göreli yolu.
environment_variables nesne Dağıtım kapsayıcısında ayarlanacağı ortam değişkeni anahtar-değer çiftlerinin sözlüğü. Bu ortam değişkenlerine puanlama betiklerinizden erişebilirsiniz.
environment dize veya nesne Gerekli. Dağıtım için kullanılacak ortam. Bu değer, çalışma alanında var olan bir sürüme sahip ortama başvuru veya satır içi ortam belirtimi olabilir.

Var olan bir ortama başvurmak için söz dizimini azureml:<environment-name>:<environment-version> kullanın.

Bir ortamı satır içinde tanımlamak için Ortam şemasını izleyin.

Üretim senaryoları için en iyi uygulama olarak, ortamı ayrı ayrı oluşturup buraya başvurmanız gerekir.
instance_type Dize Gerekli. Dağıtım için kullanılacak VM boyutu. Desteklenen boyutların listesi için bkz . Yönetilen çevrimiçi uç noktalar SKU listesi.
instance_count integer Gerekli. Dağıtım için kullanılacak örnek sayısı. Beklediğiniz iş yüküne göre değeri belirtin. Yüksek kullanılabilirlik için, Microsoft bunu en az 3olarak ayarlamanızı önerir.

instance_count komutu kullanılarak az ml online-deployment update dağıtım oluşturulduktan sonra güncelleştirilebilir.

Yükseltmeleri gerçekleştirmek için fazladan %20 ayırıyoruz. Daha fazla bilgi için bkz . Dağıtım için sanal makine kota ayırma.
app_insights_enabled boolean Çalışma alanınızla ilişkilendirilmiş Azure Uygulaması Lication Insights örneğiyle tümleştirmenin etkinleştirilip etkinleştirilmeyileceği. false
scale_settings nesne Dağıtımın ölçek ayarları. Şu anda yalnızca default ölçek türü desteklenmektedir, bu nedenle bu özelliği belirtmeniz gerekmez.

Bu default ölçek türüyle, özelliği güncelleştirerek instance_count dağıtım oluşturulduktan sonra örnek sayısını el ile artırıp azaltabilir veya bir otomatik ölçeklendirme ilkesi oluşturabilirsiniz.
scale_settings.type Dize Ölçek türü. default default
data_collector nesne Dağıtım için veri toplama ayarları. Yapılandırılabilir özellikler kümesi için bkz . DataCollector .
request_settings nesne Dağıtım için puanlama isteği ayarları. Yapılandırılabilir özellikler kümesi için bkz . RequestSettings .
liveness_probe nesne Kapsayıcının durumunu düzenli olarak izlemek için canlılık yoklaması ayarları. Yapılandırılabilir özellikler kümesi için bkz . ProbeSettings .
readiness_probe nesne Kapsayıcının trafiğe hizmet etmeye hazır olup olmadığını doğrulamak için hazır olma yoklaması ayarları. Yapılandırılabilir özellikler kümesi için bkz . ProbeSettings .
egress_public_network_access Dize Not: Bu anahtar, dağıtım için giden iletişimin güvenliğini sağlamak için eski ağ yalıtım yöntemini kullandığınızda geçerlidir. Bunun yerine çalışma alanı tarafından yönetilen bir sanal ağ kullanarak dağıtımlar için giden iletişimin güvenliğini sağlamanızı kesinlikle öneririz.

Bu bayrak, dağıtım ile tarafından kullanılan Azure kaynakları arasındaki iletişimi kısıtlayarak dağıtımın güvenliğini sağlar. disabled Dağıtımınız için gereken modelin, kodun ve görüntülerin indirilmesinin özel bir uç noktayla güvenli hale getirildiğinden emin olmak için olarak ayarlayın. Bu bayrak yalnızca yönetilen çevrimiçi uç noktalar için geçerlidir.
enabled, disabled enabled

RequestSettings

Anahtar Type Açıklama Default value
request_timeout_ms integer Milisaniye cinsinden puanlama zaman aşımı. İzin verilen en yüksek değerin milisaniye olduğunu 180000 unutmayın. Daha fazla bilgi için bkz . çevrimiçi uç noktaların sınırları. 5000
max_concurrent_requests_per_instance integer Dağıtım için izin verilen örnek başına en fazla eşzamanlı istek sayısı.

Not: Azure Machine Learning Çıkarım Sunucusu veya Azure Machine Learning Çıkarım Görüntüleri kullanıyorsanız modelinizin eşzamanlı istekleri işleyecek şekilde yapılandırılması gerekir. Bunu yapmak için ortam değişkeni olarak geçirin WORKER_COUNT: <int> . hakkında WORKER_COUNTdaha fazla bilgi için bkz. Azure Machine Learning Çıkarım Sunucusu Parametreleri

Not: Modelinizin tek bir düğümde eşzamanlı olarak işleyebileceği istek sayısına ayarlayın. Bunun modelinizdeki gerçek eşzamanlılıktan yüksek bir değere ayarlanması daha uzun gecikmelere yol açabilir. Bu değerin çok düşük ayarlanması, az kullanılan düğümlere neden olabilir. Sistemin çok düşük olması, isteklerin 429 HTTP durum koduyla reddedilmesine de neden olabilir. Sistem hızlı başarısız olmayı tercih eder. Daha fazla bilgi için bkz . Çevrimiçi uç nokta sorunlarını giderme: HTTP durum kodları.
1
max_queue_wait_ms integer (Kullanım dışı) bir isteğin kuyrukta kalacağı milisaniye cinsinden en uzun süre. (Şimdi ağ/kuyruk gecikmelerini hesaba eklemek için artırın request_timeout_ms ) 500

ProbeSettings

Anahtar Type Açıklama Default value
initial_delay integer Yoklama başlatılmadan önce kapsayıcı başlatıldıktan sonraki saniye sayısı. En düşük değer: 1. 10
period integer Yoklamanın ne sıklıkta (saniye olarak) gerçekleştirilecek? 10
timeout integer Yoklamanın zaman aşımına uğradıktan sonraki saniye sayısı. En düşük değer: 1. 2
success_threshold integer Başarısız olduktan sonra yoklamanın başarılı olarak kabul edilmesi için ardışık en düşük başarı. En düşük değer hazır 1 olma yoklaması içindir. Canlılık yoklaması değeri olarak 1sabittir. 1
failure_threshold integer Bir yoklama başarısız olduğunda, sistem vazgeçmeden önce zamanları dener failure_threshold . Canlılık araştırması söz konusu olduğunda vazgeçmek, kapsayıcının yeniden başlatılacağı anlamına gelir. Hazırlık araştırması söz konusu olduğunda kapsayıcı Okunmadı olarak işaretlenir. En düşük değer: 1. 30

DataCollector

Anahtar Type Açıklama Default value
sampling_rate kayan noktalı sayı Toplayacak verilerin ondalık oranı olarak gösterilen yüzdesi. Örneğin, 1,0 değeri verilerin %100'ünün topladığını temsil eder. 1.0
rolling_rate Dize Depolamadaki verileri bölümleme oranı. Değer şu olabilir: Dakika, Saat, Gün, Ay, Yıl. Hour
collections nesne Bu dağıtım için tek tek collection_namesn ve bunların ilgili ayarları.
collections.<collection_name> nesne Toplayacak üretim çıkarımı verilerinin mantıksal gruplandırılması (örnek: model_inputs). İki ayrılmış ad vardır: request ve responsesırasıyla HTTP isteğine ve yanıt yükü veri toplamaya karşılık gelir. Diğer tüm adlar rastgeledir ve kullanıcı tarafından tanımlanabilir.

Not: Her collection_name biri, üretim çıkarım verilerini toplamak için dağıtımda score.py kullanılan nesnenin adına Collector karşılık gelir. Sağlanan Python SDK'sı ile yük veri toplama ve veri toplama hakkında daha fazla bilgi için bkz . Üretimdeki modellerden veri toplama.
collections.<collection_name>.enabled boolean Belirtilen collection_nameiçin veri toplamanın etkinleştirilip etkinleştirilmeyileceği. 'False''
collections.<collection_name>.data.name Dize Toplanan verilere kaydedilecek veri varlığının adı. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path Dize Toplanan verilerin veri varlığı olarak kaydedilmesi gereken tam Azure Machine Learning veri deposu yolu. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version integer Blob depolamada toplanan verilerle kaydedilecek veri varlığının sürümü. 1

Açıklamalar

Komutlar az ml online-deployment , Azure Machine Learning tarafından yönetilen çevrimiçi dağıtımları yönetmek için kullanılabilir.

Örnekler

Örnekler GitHub deposunda bulunabilir. Aşağıda birkaçı gösterilmiştir.

YAML: temel

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
  path: ../../model-2/model/
code_configuration:
  code: ../../model-2/onlinescoring/
  scoring_script: score.py
environment:
  conda_file: ../../model-2/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

YAML: sistem tarafından atanan kimlik

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment:
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"

YAML: kullanıcı tarafından atanan kimlik

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment: 
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"
  UAI_CLIENT_ID: "uai_client_id_place_holder"

YAML: data_collector

$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint 
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
       model_inputs:
           enabled: 'True' 
       model_outputs:
           enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
     request: 
         enabled: 'True'
         data: 
           name: my_request_data_asset 
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request 
           version: 1 
     response:
         enabled: 'True' 
         data: 
           name: my_response_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
           version: 1 
     model_inputs:
         enabled: 'True'
         data: 
           name: my_model_inputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
           version: 1 
     model_outputs:
         enabled: 'True'
         data: 
           name: my_model_outputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
           version: 1

Sonraki adımlar