Schemat YAML wdrożenia wsadowego interfejsu wiersza polecenia (wersja 2)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure 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 azure Machine Edukacja VS Code do tworzenia pliku YAML, w tym $schema w górnej części pliku, umożliwia wywoływanie schematu i uzupełniania 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: modelwymuszania 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, , infodebug 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: pipelinewymuszania 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 Edukacja.

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

Następne kroki