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_COUNT programu , 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_name i 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_name elementu . |
'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