Udostępnij za pośrednictwem


Schemat YAML składnika polecenia interfejsu wiersza polecenia (wersja 2)

DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure 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źć na stronie https://azuremlschemasprod.azureedge.net/.

Składnia YAML

Klucz Typ Opis Dozwolone wartości Wartość domyślna
$schema ciąg 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ływać schemat i uzupełnianie zasobów.
type const Typ składnika. command command
name ciąg Wymagane. 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 ciąg Wersja składnika. W przypadku pominięcia usługa Azure Machine Learning automatycznie wygeneruje wersję.
display_name ciąg Nazwa wyświetlana składnika w interfejsie użytkownika programu Studio. Może nie być unikatowa w obszarze roboczym.
description ciąg Opis składnika.
tags object 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 tego, że dane w adresie URL mogą ulec zmianie w czasie. true
command ciąg Wymagane. Polecenie do wykonania.
code ciąg Ścieżka lokalna do katalogu kodu źródłowego, który ma zostać przekazany i używany dla składnika.
environment ciąg lub obiekt Wymagane. Ś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ć środowisko wbudowane, postępuj zgodnie ze schematem środowiska. name Wyklucz właściwości iversion, ponieważ nie są obsługiwane w środowiskach wbudowanych.
distribution object Konfiguracja dystrybucji dla scenariuszy trenowania rozproszonego. Jeden z elementów MpiConfiguration, PyTorchConfiguration lub TensorFlowConfiguration.
resources.instance_count liczba całkowita Liczba węzłów do użycia dla zadania. 1
inputs object 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> object Definicja danych wejściowych składnika. Zobacz Dane wejściowe składnika , aby uzyskać zestaw konfigurowalnych właściwości.
outputs object 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ę do command danych wyjściowych.
outputs.<output_name> object Definicja danych wyjściowych składnika. Zobacz Dane wyjściowe składnika , aby uzyskać zestaw konfigurowalnych właściwości.

Konfiguracje dystrybucji

MpiConfiguration

Klucz Typ Opis Dozwolone wartości
type const Wymagane. Typ dystrybucji. mpi
process_count_per_instance liczba całkowita Wymagane. Liczba procesów na węzeł do uruchomienia dla zadania.

PyTorchConfiguration

Klucz Typ Opis Dozwolone wartości Wartość domyślna
type const Wymagane. Typ dystrybucji. pytorch
process_count_per_instance liczba całkowita Liczba procesów na węzeł do uruchomienia dla zadania. 1

TensorFlowConfiguration

Klucz Typ Opis Dozwolone wartości Wartość domyślna
type const Wymagane. Typ dystrybucji. tensorflow
worker_count liczba całkowita Liczba procesów roboczych do uruchomienia dla zadania. Wartość domyślna to resources.instance_count.
parameter_server_count liczba całkowita Liczba serwerów parametrów do uruchomienia dla zadania. 0

Dane wejściowe składnika

Klucz Typ Opis Dozwolone wartości Wartość domyślna
type ciąg Wymagane. Typ danych wejściowych składnika. Dowiedz się więcej o dostępie do danych number, integer, boolean, string, uri_file, uri_folder, mltable, mlflow_model
description ciąg Opis danych wejściowych.
default liczba, liczba całkowita, wartość logiczna lub ciąg Wartość domyślna danych wejściowych.
optional boolean Określa, czy dane wejściowe są wymagane. Jeśli jest ustawiona truewartość , 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 number wartość lub integer.
max liczba całkowita lub liczba Maksymalna zaakceptowana wartość dla danych wejściowych. To pole można określić tylko wtedy, gdy type pole ma number wartość lub integer.
enum array Lista dozwolonych wartości dla danych wejściowych. Ma zastosowanie tylko wtedy, gdy type pole ma stringwartość .

Dane wyjściowe składnika

Klucz Typ Opis Dozwolone wartości Wartość domyślna
type ciąg Wymagane. Typ danych wyjściowych składnika. uri_file, uri_folder, mltable, mlflow_model
description ciąg 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 repozytorium GitHub przykładów. Poniżej przedstawiono przykłady.

Przykłady są dostępne w repozytorium GitHub przykładów. Poniżej przedstawiono kilka.

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 z 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 , training_datamodel_output 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 żadna wartość nie zostanie określona w czasie wykonywania, learning_rate zostanie learning_rate_schedule użyta wartość domyślna.

  • 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
command 1. Tylko opcjonalne dane wejściowe mogą znajdować się w $[[]]
2. Użycie polecenia \ w celu utworzenia nowego wiersza nie jest obsługiwane w poleceniu.
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 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, , userld_library_path, logname, home, , pwdshell.
2. Upewnij się, że nazwy danych wejściowych i wyjściowych nie są zduplikowane.

Następne kroki