Udostępnij za pośrednictwem


Schemat YAML składnika polecenia 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/commandComponent.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.
type const Typ składnika. command command
name string Wymagany. Nazwa składnika. Musi zaczynać się od małej litery. Dozwolone znaki to małe litery, cyfry i podkreślenie(_). Maksymalna długość to 255 znaków.
version string Wersja składnika. W przypadku pominięcia usługa Azure Machine Learning automatycznie wygeneruje wersję.
display_name string Nazwa wyświetlana składnika w interfejsie użytkownika programu Studio. Może nie być unikatowa w obszarze roboczym.
description string Opis składnika.
tags obiekt Słownik tagów dla składnika.
is_deterministic boolean Ta opcja określa, czy składnik będzie generować te same dane wyjściowe dla tych samych danych wejściowych. Zazwyczaj należy ustawić false tę wartość dla składników ładujących dane ze źródeł zewnętrznych, takich jak importowanie danych z adresu URL. Wynika to z faktu, że dane w adresie URL mogą ulec zmianie w czasie. true
command string Wymagany. Polecenie do wykonania.
code string Ścieżka lokalna do katalogu kodu źródłowego, który ma zostać przekazany i użyty dla składnika.
environment ciąg lub obiekt Wymagany. Środowisko do użycia dla składnika. 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. name Wyklucz właściwości iversion, ponieważ nie są obsługiwane w środowiskach wbudowanych.
distribution obiekt Konfiguracja dystrybucji dla scenariuszy trenowania rozproszonego. Jeden z parametrów MpiConfiguration, PyTorchConfiguration lub TensorFlowConfiguration.
resources.instance_count integer Liczba węzłów do użycia dla zadania. 1
inputs obiekt Słownik danych wejściowych składników. Klucz jest nazwą danych wejściowych w kontekście składnika, a wartość jest definicją danych wejściowych składnika.

Przy użyciu ${{ inputs.<input_name> }} wyrażenia można odwoływać się do command danych wejściowych.
inputs.<input_name> obiekt Definicja danych wejściowych składnika. Zobacz Dane wejściowe składnika, aby uzyskać zestaw konfigurowalnych właściwości.
outputs obiekt Słownik danych wyjściowych składników. Klucz jest nazwą danych wyjściowych w kontekście składnika, a wartość jest definicją danych wyjściowych składnika.

Przy użyciu ${{ outputs.<output_name> }} wyrażenia można odwoływać się command do danych wyjściowych.
outputs.<output_name> obiekt Definicja danych wyjściowych składnika. Zobacz Dane wyjściowe składnika, aby uzyskać zestaw konfigurowalnych właściwości.

Konfiguracje dystrybucji

MpiConfiguration

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ dystrybucji. mpi
process_count_per_instance integer Wymagany. Liczba procesów na węzeł do uruchomienia dla zadania.

PyTorchConfiguration

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ dystrybucji. pytorch
process_count_per_instance integer Liczba procesów na węzeł do uruchomienia dla zadania. 1

TensorFlowConfiguration

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ dystrybucji. tensorflow
worker_count integer Liczba procesów roboczych, które mają być uruchamiane dla tego zadania. Wartość domyślna to resources.instance_count.
parameter_server_count integer Liczba serwerów parametrów do uruchomienia dla zadania. 0

Dane wejściowe składnika

Klucz Type Opis Dozwolone wartości Domyślna wartość
type string Wymagany. Typ danych wejściowych składnika. Dowiedz się więcej o dostępie do danych number, integer, , boolean, uri_filestring, , uri_folder, , mltablemlflow_model
description string Opis danych wejściowych.
default liczba, liczba całkowita, wartość logiczna lub ciąg Wartość domyślna danych wejściowych.
optional boolean Czy dane wejściowe są wymagane. Jeśli ustawiono wartość true, należy użyć polecenia z opcjonalnymi danymi wejściowymi $[[]] false
min liczba całkowita lub liczba Minimalna zaakceptowana wartość danych wejściowych. To pole można określić tylko wtedy, gdy type pole ma wartość number lub integer.
max liczba całkowita lub liczba Maksymalna zaakceptowana wartość danych wejściowych. To pole można określić tylko wtedy, gdy type pole ma wartość number lub integer.
enum tablica Lista dozwolonych wartości danych wejściowych. Dotyczy tylko tego, jeśli type pole ma wartość string.

Dane wyjściowe składnika

Klucz Type Opis Dozwolone wartości Domyślna wartość
type string Wymagany. Typ danych wyjściowych składnika. uri_file, , uri_folder, , mltablemlflow_model
description string Opis danych wyjściowych.

Uwagi

Polecenia az ml component mogą służyć do zarządzania składnikami usługi Azure Machine Learning.

Przykłady

Przykłady składników poleceń są dostępne w przykładowym repozytorium GitHub. Poniżej przedstawiono przykłady wyboru.

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

YAML: składnik polecenia Hello world

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command

name: hello_python_world
display_name: Hello_Python_World
version: 1

code: ./src

environment: 
  image: python

command: >-
  python hello.py

YAML: składnik z różnymi typami wejściowymi

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_data_component_cli
display_name: train_data
description: A example train component
tags:
  author: azureml-sdk-team
type: command
inputs:
  training_data: 
    type: uri_folder
  max_epocs:
    type: integer
    optional: true
  learning_rate: 
    type: number
    default: 0.01
    optional: true
  learning_rate_schedule: 
    type: string
    default: time-based
    optional: true
outputs:
  model_output:
    type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
command: >-
  python train.py 
  --training_data ${{inputs.training_data}} 
  $[[--max_epocs ${{inputs.max_epocs}}]]
  $[[--learning_rate ${{inputs.learning_rate}}]]
  $[[--learning_rate_schedule ${{inputs.learning_rate_schedule}}]]
  --model_output ${{outputs.model_output}}

Definiowanie opcjonalnych danych wejściowych w wierszu polecenia

Gdy dane wejściowe są ustawione jako optional = true, należy użyć $[[]] polecenia , aby objąć wiersz polecenia danymi wejściowymi. Na przykład: $[[--input1 ${{inputs.input1}}]. Wiersz polecenia w czasie wykonywania może mieć różne dane wejściowe.

  • Jeśli używasz tylko wymaganych parametrów i model_output , training_data wiersz polecenia będzie wyglądać następująco:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Jeśli w czasie wykonywania nie określono żadnej wartości, learning_rate użyje learning_rate_schedule wartości domyślnej.

  • Jeśli wszystkie dane wejściowe/wyjściowe udostępniają wartości w czasie wykonywania, wiersz polecenia będzie wyglądać następująco:
python train.py --training_data some_input_path --max_epocs 10 --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Typowe błędy i zalecenia

Poniżej przedstawiono niektóre typowe błędy i odpowiednie zalecane sugestie podczas definiowania składnika.

Klucz Błędy Zalecenie
polecenie 1. Tylko opcjonalne dane wejściowe mogą znajdować się w $[[]]
2. Użycie polecenia \ w celu utworzenia nowego wiersza nie jest obsługiwane.
3. Nie można odnaleźć danych wejściowych lub wyjściowych.
1. Sprawdź, czy wszystkie dane wejściowe lub wyjściowe używane w poleceniu są już zdefiniowane w inputs sekcjach i outputs , i użyj poprawnego formatu dla opcjonalnych danych wejściowych $[[]] ${{}}lub wymaganych.
2. Nie używaj \ polecenia , aby utworzyć nowy wiersz.
Środowisko usługi 1. Dla wersji {envVersion}środowiska {envName} nie istnieje żadna definicja .
2. Nie istnieje środowisko dla nazwy {envName}, wersja {envVersion}.
3. Nie można odnaleźć elementu zawartości o identyfikatorze {envAssetId}.
1. Upewnij się, że istnieje nazwa środowiska i wersja, do której odwołujesz się w definicji składnika.
2. Należy określić wersję, jeśli odwołujesz się do zarejestrowanego środowiska.
dane wejściowe/wyjściowe 1. Nazwy danych wejściowych/wyjściowych powodują konflikt z parametrami zarezerwowanymi systemu.
2. Zduplikowane nazwy danych wejściowych lub wyjściowych.
1. Nie używaj żadnych z tych parametrów zarezerwowanych jako nazwy danych wejściowych/wyjściowych: path, lognameuserhomeld_library_path, , . shellpwd
2. Upewnij się, że nazwy danych wejściowych i wyjściowych nie są zduplikowane.

Następne kroki