Udostępnij za pośrednictwem


Schemat YAML zarządzanego wdrożenia online interfejsu wiersza polecenia (wersja 2)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 2 (bieżąca)

Źródłowy schemat JSON można znaleźć pod adresem https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json.

Uwaga

Składnia YAML szczegółowo w tym dokumencie jest oparta na schemacie JSON dla najnowszej wersji rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Ta składnia jest gwarantowana tylko do pracy z najnowszą wersją rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Schematy dla starszych wersji rozszerzeń można znaleźć pod adresem https://azuremlschemasprod.azureedge.net/.

Składnia YAML

Klucz Type Opis Dozwolone wartości Domyślna wartość
$schema string Schemat YAML. Jeśli używasz rozszerzenia programu VS Code usługi Azure Machine Learning do tworzenia pliku YAML, w tym $schema w górnej części pliku, możesz wywołać uzupełnianie schematu i zasobów.
name string Wymagany. Nazwa wdrożenia.

W tym miejscu zdefiniowano reguły nazewnictwa.
description string Opis wdrożenia.
tags obiekt Słownik tagów wdrożenia.
endpoint_name string Wymagany. Nazwa punktu końcowego do utworzenia wdrożenia w obszarze.
model ciąg lub obiekt Model do użycia na potrzeby wdrożenia. Ta wartość może być odwołaniem do istniejącego modelu w wersji w obszarze roboczym lub specyfikacji wbudowanego modelu.

Aby odwołać się do istniejącego modelu, użyj azureml:<model-name>:<model-version> składni .

Aby zdefiniować wbudowany model, postępuj zgodnie ze schematem modelu.

Najlepszym rozwiązaniem dla scenariuszy produkcyjnych jest utworzenie modelu oddzielnie i odwołanie do niego w tym miejscu.

To pole jest opcjonalne w przypadku niestandardowych scenariuszy wdrażania kontenerów.
model_mount_path string Ścieżka do zainstalowania modelu w kontenerze niestandardowym. Dotyczy tylko niestandardowych scenariuszy wdrażania kontenerów. model Jeśli pole zostanie określone, zostanie ono zainstalowane na tej ścieżce w kontenerze.
code_configuration obiekt Konfiguracja logiki kodu oceniania.

To pole jest opcjonalne w przypadku niestandardowych scenariuszy wdrażania kontenerów.
code_configuration.code string Ścieżka lokalna do katalogu kodu źródłowego na potrzeby oceniania modelu.
code_configuration.scoring_script string Ścieżka względna do pliku oceniania w katalogu kodu źródłowego.
environment_variables obiekt Słownik par klucz-wartość zmiennej środowiskowej do ustawienia w kontenerze wdrażania. Dostęp do tych zmiennych środowiskowych można uzyskać za pomocą skryptów oceniania.
environment ciąg lub obiekt Wymagany. Środowisko do użycia na potrzeby wdrożenia. Ta wartość może być odwołaniem do istniejącego środowiska w wersji w obszarze roboczym lub specyfikacji środowiska wbudowanego.

Aby odwołać się do istniejącego środowiska, użyj azureml:<environment-name>:<environment-version> składni .

Aby zdefiniować wbudowane środowisko, postępuj zgodnie ze schematem środowiska.

Najlepszym rozwiązaniem dla scenariuszy produkcyjnych jest utworzenie środowiska oddzielnie i odwołanie do niego w tym miejscu.
instance_type string Wymagany. Rozmiar maszyny wirtualnej do użycia na potrzeby wdrożenia. Aby uzyskać listę obsługiwanych rozmiarów, zobacz Lista jednostek SKU zarządzanych punktów końcowych online.
instance_count integer Wymagany. Liczba wystąpień do użycia na potrzeby wdrożenia. Określ wartość na podstawie oczekiwanego obciążenia. Aby zapewnić wysoką dostępność, firma Microsoft zaleca ustawienie jej na co najmniej 3.

instance_count można zaktualizować po utworzeniu wdrożenia za pomocą az ml online-deployment update polecenia .

Firma Microsoft zastrzega sobie dodatkowe 20% na potrzeby przeprowadzania uaktualnień. Aby uzyskać więcej informacji, zobacz Alokacja przydziału maszyn wirtualnych na potrzeby wdrożenia.
app_insights_enabled boolean Czy włączyć integrację z wystąpieniem usługi aplikacja systemu Azure Insights skojarzonym z obszarem roboczym. false
scale_settings obiekt Ustawienia skalowania wdrożenia. Obecnie obsługiwany jest tylko typ skalowania default , więc nie trzeba określać tej właściwości.

default Ten typ skalowania umożliwia ręczne skalowanie liczby wystąpień w górę i w dół po utworzeniu instance_count wdrożenia przez zaktualizowanie właściwości lub utworzenie zasad skalowania automatycznego.
scale_settings.type string Typ skalowania. default default
data_collector obiekt Ustawienia zbierania danych dla wdrożenia. Zobacz DataCollector , aby zapoznać się z zestawem konfigurowalnych właściwości.
request_settings obiekt Ustawienia żądania oceniania dla wdrożenia. Zobacz RequestSettings , aby uzyskać zestaw konfigurowalnych właściwości.
liveness_probe obiekt Ustawienia sondy liveness do regularnego monitorowania kondycji kontenera. Zobacz ProbeSettings , aby uzyskać zestaw konfigurowalnych właściwości.
readiness_probe obiekt Ustawienia sondy gotowości do sprawdzania poprawności, czy kontener jest gotowy do obsługi ruchu. Zobacz ProbeSettings , aby uzyskać zestaw konfigurowalnych właściwości.
egress_public_network_access string Uwaga: ten klucz ma zastosowanie, gdy używasz starszej metody izolacji sieciowej do zabezpieczania komunikacji wychodzącej na potrzeby wdrożenia. Zdecydowanie zalecamy zabezpieczenie komunikacji wychodzącej dla wdrożeń przy użyciu zarządzanej sieci wirtualnej obszaru roboczego.

Ta flaga zabezpiecza wdrożenie przez ograniczenie komunikacji między wdrożeniem a zasobami platformy Azure używanymi przez to wdrożenie. Ustaw wartość , aby disabled upewnić się, że pobieranie modelu, kodu i obrazów wymaganych przez wdrożenie jest zabezpieczone za pomocą prywatnego punktu końcowego. Ta flaga ma zastosowanie tylko dla zarządzanych punktów końcowych online.
enabled, disabled enabled

RequestSettings

Klucz Type Opis Domyślna wartość
request_timeout_ms integer Limit czasu oceniania w milisekundach. Należy pamiętać, że dozwolona maksymalna wartość to 180000 milisekundy. Zobacz limity punktów końcowych online, aby uzyskać więcej informacji. 5000
max_concurrent_requests_per_instance integer Maksymalna liczba współbieżnych żądań na wystąpienie dozwolone dla wdrożenia.

Uwaga: jeśli używasz serwera wnioskowania usługi Azure Machine Learning lub obrazów wnioskowania usługi Azure Machine Learning, model musi być skonfigurowany do obsługi żądań współbieżnych. W tym celu przekaż WORKER_COUNT: <int> jako zmienną środowiskową. Aby uzyskać więcej informacji na temat WORKER_COUNTprogramu , zobacz Azure Machine Learning Inference Server Parameters (Parametry serwera wnioskowania usługi Azure Machine Learning)

Uwaga: ustaw na liczbę żądań, które model może przetwarzać współbieżnie w jednym węźle. Ustawienie tej wartości jako wyższej niż rzeczywista współbieżność modelu może doprowadzić do większych opóźnień. Ustawienie tej wartości zbyt małej może prowadzić do wykorzystania węzłów. Ustawienie zbyt małej wartości może również spowodować odrzucenie żądań z kodem stanu HTTP 429, ponieważ system zdecyduje się szybko zakończyć niepowodzeniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z punktami końcowymi online: kody stanu HTTP.
1
max_queue_wait_ms integer (Przestarzałe) Maksymalny czas w milisekundach żądania pozostanie w kolejce. (Teraz zwiększ request_timeout_ms , aby uwzględnić wszelkie opóźnienia sieci/kolejki) 500

ProbeSettings

Klucz Type Opis Domyślna wartość
initial_delay integer Liczba sekund po uruchomieniu kontenera przed zainicjowaniem sondy. Wartość minimalna to 1. 10
period integer Jak często (w sekundach) wykonać sondę. 10
timeout integer Liczba sekund, po których sonda upłynął limit czasu. Wartość minimalna to 1. 2
success_threshold integer Minimalna liczba kolejnych sukcesów dla sondy, która ma zostać uznana za pomyślną po niepodaniu. Minimalna wartość to 1 sonda gotowości. Wartość sondy liveness jest stała jako 1. 1
failure_threshold integer Gdy sonda zakończy się niepowodzeniem, system spróbuje failure_threshold kilka razy przed rezygnacją. Rezygnacja w przypadku sondy liveness oznacza, że kontener zostanie uruchomiony ponownie. W przypadku sondy gotowości kontener zostanie oznaczony jako Nieprzeczytany. Wartość minimalna to 1. 30

DataCollector

Klucz Type Opis Domyślna wartość
sampling_rate liczba zmiennoprzecinkowa Wartość procentowa, reprezentowana jako współczynnik dziesiętny, danych do zebrania. Na przykład wartość 1,0 reprezentuje zbieranie 100% danych. 1.0
rolling_rate string Szybkość partycjonowania danych w magazynie. Wartość może być następująca: Minuta, Godzina, Dzień, Miesiąc, Rok. Hour
collections obiekt Zestaw poszczególnych elementów collection_namei ich odpowiednich ustawień dla tego wdrożenia.
collections.<collection_name> obiekt Logiczne grupowanie danych wnioskowania produkcyjnego do zbierania (przykład: model_inputs). Istnieją dwie nazwy zarezerwowane: request i response, które odpowiadają odpowiednio zbieraniu danych żądania HTTP i ładunku odpowiedzi. Wszystkie inne nazwy są dowolne i można je definiować przez użytkownika.

Uwaga: Każda collection_name z nich powinna odpowiadać nazwie obiektu używanego Collector we wdrożeniu score.py do zbierania danych wnioskowania produkcyjnego. Aby uzyskać więcej informacji na temat zbierania danych ładunku i zbierania danych przy użyciu dostarczonego zestawu SDK języka Python, zobacz Zbieranie danych z modeli w środowisku produkcyjnym.
collections.<collection_name>.enabled boolean Czy włączyć zbieranie danych dla określonego collection_nameelementu . 'False''
collections.<collection_name>.data.name string Nazwa zasobu danych do zarejestrowania się przy użyciu zebranych danych. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path string Pełna ścieżka magazynu danych usługi Azure Machine Learning, w której zebrane dane powinny być zarejestrowane jako zasób danych. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version integer Wersja zasobu danych do zarejestrowania przy użyciu zebranych danych w usłudze Blob Storage. 1

Uwagi

Polecenia az ml online-deployment mogą służyć do zarządzania wdrożeniami online zarządzanymi w usłudze Azure Machine Learning.

Przykłady

Przykłady są dostępne w repozytorium GitHub przykłady. Poniżej przedstawiono kilka z poniższych elementów.

YAML: podstawowy

$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: tożsamość przypisana przez system

$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: tożsamość przypisana przez użytkownika

$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

Następne kroki