CLI-kommandokomponentens YAML-schema (v2)

GÄLLER FÖR:Azure CLI ml extension v2 (aktuell)

JSON-källschemat finns på https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json.

Anteckning

YAML-syntaxen som beskrivs i det här dokumentet baseras på JSON-schemat för den senaste versionen av ML CLI v2-tillägget. Den här syntaxen fungerar garanterat endast med den senaste versionen av ML CLI v2-tillägget. Du hittar scheman för äldre tilläggsversioner på https://azuremlschemasprod.azureedge.net/.

YAML-syntax

Nyckel Typ Description Tillåtna värden Standardvärde
$schema sträng YAML-schemat. Om du använder AZURE Machine Learning VS Code-tillägget för att skapa YAML-filen, inklusive $schema längst upp i filen, kan du anropa schema- och resursavslutningar.
type Const Typ av komponent. command command
name sträng Krävs. Namnet på komponenten. Måste börja med gemener. Tillåtna tecken är gemener, siffror och understreck(_). Maximal längd är 255 tecken.
version sträng Komponentens version. Om den utelämnas genereras en version automatiskt i Azure Machine Learning.
display_name sträng Visningsnamn för komponenten i studiogränssnittet. Kan vara icke-unikt på arbetsytan.
description sträng Beskrivning av komponenten.
tags objekt Ordlista över taggar för komponenten.
is_deterministic boolean Det här alternativet avgör om komponenten ska generera samma utdata för samma indata. Du bör vanligtvis ange detta till false för komponenter som läser in data från externa källor, till exempel importera data från en URL. Det beror på att data på URL:en kan ändras med tiden. true
command sträng Krävs. Kommandot som ska köras.
code sträng Lokal sökväg till källkodskatalogen som ska laddas upp och användas för komponenten.
environment sträng eller objekt Krävs. Miljön som ska användas för komponenten. Det här värdet kan antingen vara en referens till en befintlig version av miljön på arbetsytan eller en infogad miljöspecifikation.

Använd syntaxen för azureml:<environment-name>:<environment-version> att referera till en befintlig miljö.

Om du vill definiera en infogad miljö följer du schemat Miljö. name Undanta egenskaperna och version eftersom de inte stöds för infogade miljöer.
distribution objekt Distributionskonfigurationen för distribuerade träningsscenarier. En av MpiConfiguration, PyTorchConfiguration eller TensorFlowConfiguration.
resources.instance_count heltal Antalet noder som ska användas för jobbet. 1
inputs objekt Ordlista över komponentindata. Nyckeln är ett namn på indata i komponentens kontext och värdet är komponentens indatadefinition.

Indata kan refereras i command med uttrycket ${{ inputs.<input_name> }} .
inputs.<input_name> objekt Komponentens indatadefinition. Se Komponentindata för uppsättningen konfigurerbara egenskaper.
outputs objekt Ordlista över komponentutdata. Nyckeln är ett namn på utdata i komponentens kontext och värdet är komponentens utdatadefinition.

Utdata kan refereras i command med uttrycket ${{ outputs.<output_name> }} .
outputs.<output_name> objekt Komponentens utdatadefinition. Se Komponentutdata för uppsättningen konfigurerbara egenskaper.

Distributionskonfigurationer

MpiConfiguration

Nyckel Typ Description Tillåtna värden
type Const Krävs. Distributionstyp. mpi
process_count_per_instance heltal Krävs. Antalet processer per nod som ska startas för jobbet.

PyTorchConfiguration

Nyckel Typ Description Tillåtna värden Standardvärde
type Const Krävs. Distributionstyp. pytorch
process_count_per_instance heltal Antalet processer per nod som ska startas för jobbet. 1

TensorFlowConfiguration

Nyckel Typ Description Tillåtna värden Standardvärde
type Const Krävs. Distributionstyp. tensorflow
worker_count heltal Antalet arbetare som ska startas för jobbet. Standardvärdet är resources.instance_count.
parameter_server_count heltal Antalet parameterservrar som ska startas för jobbet. 0

Komponentindata

Nyckel Typ Description Tillåtna värden Standardvärde
type sträng Krävs. Typ av komponentindata. Läs mer om dataåtkomst number, integer, boolean, string, uri_file, uri_folder, mltable, mlflow_model
description sträng Beskrivning av indata.
default tal, heltal, booleskt värde eller sträng Standardvärdet för indata.
optional boolean Om indata krävs. Om värdet är truemåste du använda kommandot innehåller valfria indata med $[[]] false
min heltal eller tal Minsta godkända värde för indata. Det här fältet kan bara anges om type fältet är number eller integer.
max heltal eller tal Det högsta godkända värdet för indata. Det här fältet kan bara anges om type fältet är number eller integer.
enum matris Listan över tillåtna värden för indata. Gäller endast om type fältet är string.

Komponentutdata

Nyckel Typ Description Tillåtna värden Standardvärde
type sträng Krävs. Typ av komponentutdata. uri_file, uri_folder, mltable, mlflow_model
description sträng Beskrivning av utdata.

Kommentarer

Kommandona az ml component kan användas för att hantera Azure Machine Learning-komponenter.

Exempel

Exempel på kommandokomponenter är tillgängliga på GitHub-exempellagringsplatsen. Välj exempel för visas nedan.

Exempel är tillgängliga i GitHub-exempellagringsplatsen. Flera visas nedan.

YAML: Hello World-kommandokomponent

$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: Komponent med olika indatatyper

$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
version: 9
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}}

Definiera valfria indata på kommandoraden

När indata anges som optional = truemåste du använda $[[]] för att använda kommandoraden med indata. Till exempel $[[--input1 ${{inputs.input1}}]. Kommandoraden vid körning kan ha olika indata.

  • Om du bara använder ange de obligatoriska training_data parametrarna och model_output parametrarna ser kommandoraden ut så här:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Om inget värde anges vid körning learning_ratelearning_rate_schedule används standardvärdet.

  • Om alla indata/utdata anger värden under körningen ser kommandoraden ut så här:
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

Vanliga fel och rekommendationer

Följande är några vanliga fel och motsvarande rekommenderade förslag när du definierar en komponent.

Nyckel Fel Rekommendation
command 1. Endast valfria indata kan vara i $[[]]
2. Det går inte att använda \ för att skapa en ny rad i kommandot.
3. Indata eller utdata hittades inte.
1. Kontrollera att alla indata eller utdata som används i kommandot redan har definierats i avsnitten inputs och outputs och använder rätt format för valfria indata $[[]] eller obligatoriska ${{}}.
2. Använd \ inte för att skapa en ny linje.
miljö 1. Det finns ingen definition för miljöversion {envName}{envVersion}.
2. Det finns ingen miljö för namnet {envName}, version {envVersion}.
3. Det gick inte att hitta tillgången med ID {envAssetId}.
1. Kontrollera att miljönamnet och versionen som du refererar till i komponentdefinitionen finns.
2. Du måste ange versionen om du refererar till en registrerad miljö.
indata/utdata 1. Namn på indata/utdata är i konflikt med systemreserverade parametrar.
2. Duplicerade namn på indata eller utdata.
1. Använd inte någon av dessa reserverade parametrar som namnet på dina indata/utdata: , , , , , , pwd, shell. lognamehomeuserld_library_pathpath
2. Kontrollera att namnen på indata och utdata inte är duplicerade.

Nästa steg