Schemat YAML wdrożenia wsadowego 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/batchDeployment.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. | ||
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. | ||
type |
string | Wymagany. Typ wdrożenia kąpieli. Służy model do wdrażania modeli i pipeline wdrożeń składników potoku. Nowość w wersji 1.7. |
model , pipeline |
model |
settings |
obiekt | Konfiguracja wdrożenia. Zobacz konkretną dokumentację YAML dla składnika modelu i potoku dla dozwolonych wartości. Nowość w wersji 1.7. |
Napiwek
Klucz type
został wprowadzony w wersji 1.7 rozszerzenia interfejsu wiersza polecenia i nowszych wersjach. Aby w pełni obsługiwać zgodność z poprzednimi wersjami, ta właściwość jest domyślnie ustawiona na model
. Jeśli jednak nie zostanie jawnie wskazany, klucz settings
nie zostanie wymuszony, a wszystkie właściwości ustawień wdrażania modelu powinny być wskazane w katalogu głównym specyfikacji YAML.
Składnia YAML dla wdrożeń modelu
W przypadku type: model
wymuszania następującej składni:
Klucz | Type | Opis | Dozwolone wartości | Domyślna wartość |
---|---|---|---|---|
model |
ciąg lub obiekt | Wymagany. 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>:<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. |
||
code_configuration |
obiekt | Konfiguracja logiki kodu oceniania. Ta właściwość nie jest wymagana, jeśli model jest w formacie MLflow. |
||
code_configuration.code |
string | Katalog lokalny zawierający cały kod źródłowy języka Python do oceny modelu. | ||
code_configuration.scoring_script |
string | Plik języka Python w powyższym katalogu. Ten plik musi mieć init() funkcję i run() funkcję. init() Użyj funkcji dla każdego kosztownego lub wspólnego przygotowania (na przykład załaduj model w pamięci). init() jest wywoływany tylko raz na początku procesu. Służy run(mini_batch) do oceniania każdego wpisu; wartość mini_batch jest listą ścieżek plików. Funkcja run() powinna zwrócić ramkę danych biblioteki pandas lub tablicę. Każdy zwrócony element wskazuje jeden pomyślny przebieg elementu wejściowego w elemecie mini_batch . Aby uzyskać więcej informacji na temat tworzenia skryptu oceniania, zobacz Opis skryptu oceniania. |
||
environment |
ciąg lub obiekt | Ś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. Ta właściwość nie jest wymagana, jeśli model jest w formacie MLflow. 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. |
||
compute |
string | Wymagany. Nazwa docelowego obiektu obliczeniowego do wykonywania zadań oceniania wsadowego. Ta wartość powinna być odwołaniem do istniejącego środowiska obliczeniowego w obszarze roboczym przy użyciu azureml:<compute-name> składni. |
||
resources.instance_count |
integer | Liczba węzłów do użycia dla każdego zadania oceniania wsadowego. | 1 |
|
settings |
obiekt | Określona konfiguracja wdrożenia modelu. Zmieniono w wersji 1.7. |
||
settings.max_concurrency_per_instance |
integer | Maksymalna liczba przebiegów równoległych scoring_script na wystąpienie. |
1 |
|
settings.error_threshold |
integer | Liczba niepowodzeń plików, które powinny być ignorowane. Jeśli liczba błędów dla całego danych wejściowych przekroczy tę wartość, zadanie oceniania wsadowego zostanie zakończone. error_threshold parametr jest przeznaczony dla wszystkich danych wejściowych, a nie dla pojedynczych minisadek. Jeśli pominięto, dowolna liczba niepowodzeń plików jest dozwolona bez przerywania zadania. |
-1 |
|
settings.logging_level |
string | Poziom szczegółowości dziennika. | warning , , info debug |
info |
settings.mini_batch_size |
integer | Liczba plików, które code_configuration.scoring_script mogą przetwarzać w jednym run() wywołaniu. |
10 |
|
settings.retry_settings |
obiekt | Ustawienia ponawiania prób dla oceniania każdej minisadowej partii. | ||
settings.retry_settings.max_retries |
integer | Maksymalna liczba ponownych prób dla minisadowej partii zakończonych niepowodzeniem lub przekroczono limit czasu. | 3 |
|
settings.retry_settings.timeout |
integer | Limit czasu w sekundach na ocenianie pojedynczej mini partii. Użyj większych wartości, gdy rozmiar mini-partii jest większy lub model jest droższy do uruchomienia. | 30 |
|
settings.output_action |
string | Wskazuje sposób organizowania danych wyjściowych w pliku wyjściowym. Użyj summary_only polecenia , jeśli generujesz pliki wyjściowe wskazane w temacie Dostosowywanie danych wyjściowych we wdrożeniach modelu. Użyj append_row polecenia , jeśli zwracasz przewidywania w ramach run() instrukcji funkcji return . |
append_row , summary_only |
append_row |
settings.output_file_name |
string | Nazwa pliku wyjściowego oceniania wsadowego. | predictions.csv |
|
settings.environment_variables |
obiekt | Słownik par klucz-wartość zmiennej środowiskowej do ustawienia dla każdego zadania oceniania wsadowego. |
Składnia YAML dla wdrożeń składników potoku
W przypadku type: pipeline
wymuszania następującej składni:
Klucz | Type | Opis | Dozwolone wartości | Domyślna wartość |
---|---|---|---|---|
component |
ciąg lub obiekt | Wymagany. Składnik potoku używany do wdrożenia. Ta wartość może być odwołaniem do istniejącego składnika potoku w wersji w obszarze roboczym lub w rejestrze albo specyfikacji potoku wbudowanego. Aby odwołać się do istniejącego składnika, użyj azureml:<component-name>:<version> składni . Aby zdefiniować wbudowany składnik potoku, postępuj zgodnie ze schematem składnika potoku. Najlepszym rozwiązaniem dla scenariuszy produkcyjnych jest utworzenie składnika oddzielnie i odwołanie do niego w tym miejscu. Nowość w wersji 1.7. |
||
settings |
obiekt | Ustawienia domyślne zadania potoku. Zobacz Atrybuty klucza ustawień dla zestawu konfigurowalnych właściwości. Nowość w wersji 1.7. |
Uwagi
Polecenia az ml batch-deployment
mogą służyć do zarządzania wdrożeniami wsadowymi usługi Azure Machine Learning.
Przykłady
Przykłady są dostępne w repozytorium GitHub przykłady. Niektóre z nich znajdują się poniżej:
YAML: wdrażanie modelu MLflow
Wdrożenie modelu zawierające model MLflow, który nie wymaga wskazania code_configuration
ani environment
:
$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
instance_count: 2
settings:
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
max_retries: 3
timeout: 300
error_threshold: -1
logging_level: info
YAML: niestandardowe wdrożenie modelu za pomocą skryptu oceniania
Wdrożenie modelu wskazujące skrypt oceniania do użycia i środowisko:
$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
name: mnist-torch-dpl
description: A deployment using Torch to solve the MNIST classification dataset.
endpoint_name: mnist-batch
type: model
model:
name: mnist-classifier-torch
path: model
code_configuration:
code: code
scoring_script: batch_driver.py
environment:
name: batch-torch-py38
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
conda_file: environment/conda.yaml
compute: azureml:batch-cluster
resources:
instance_count: 1
settings:
max_concurrency_per_instance: 2
mini_batch_size: 10
output_action: append_row
output_file_name: predictions.csv
retry_settings:
max_retries: 3
timeout: 30
error_threshold: -1
logging_level: info
YAML: starsze wdrożenia modelu
Jeśli atrybut type
nie jest wskazany w yaML, wdrożenie modelu jest wnioskowane. settings
Klucz nie będzie jednak dostępny i właściwości powinny zostać umieszczone w katalogu głównym kodu YAML, jak wskazano w tym przykładzie. Zdecydowanie zaleca się , aby zawsze określać właściwość type
.
$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
instance_count: 2
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
max_retries: 3
timeout: 300
error_threshold: -1
logging_level: info
YAML: wdrożenie składnika potoku
Proste wdrożenie składnika potoku:
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
name: hello-batch-dpl
endpoint_name: hello-pipeline-batch
type: pipeline
component: azureml:hello_batch@latest
settings:
default_compute: batch-cluster