CLI-kommandokomponentens YAML-schema (v2)
GÄLLER FÖR: Azure CLI ml-tillägget v2 (aktuellt)
JSON-källschemat finns på https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json.
Kommentar
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 är garanterad att endast fungera 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 | Beskrivning | 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 | Obligatoriskt. Komponentens namn. Måste börja med gemener. Tillåtna tecken är gemener, siffror och understreck(_). Maximal längd är 255 tecken. | ||
version |
sträng | Version av komponenten. Om den utelämnas genereras en version automatiskt av Azure Machine Learning. | ||
display_name |
sträng | Visningsnamn för komponenten i studiogränssnittet. Kan vara icke-unik på arbetsytan. | ||
description |
sträng | Beskrivning av komponenten. | ||
tags |
objekt | Ordlista med 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 över tid. |
true |
|
command |
sträng | Obligatoriskt. 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 | Obligatoriskt. 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. Om du vill referera till en befintlig anpassad miljö använder du syntaxen azureml:<environment-name>:<environment-version> . Om du vill referera till en kuraterad miljö använder du syntaxen azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> . Mer information om hur du refererar till miljöer finns i Hantera miljöer Om du vill definiera en infogad miljö följer du miljöschemat. name Exkludera 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 |
integer | 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 | Beskrivning | Tillåtna värden |
---|---|---|---|
type |
Const | Obligatoriskt. Distributionstyp. | mpi |
process_count_per_instance |
integer | Obligatoriskt. Antalet processer per nod som ska startas för jobbet. |
PyTorchConfiguration
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
type |
Const | Obligatoriskt. Distributionstyp. | pytorch |
|
process_count_per_instance |
integer | Antalet processer per nod som ska startas för jobbet. | 1 |
TensorFlowConfiguration
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
type |
Const | Obligatoriskt. Distributionstyp. | tensorflow |
|
worker_count |
integer | Antalet arbetare som ska startas för jobbet. | Standardvärdet är resources.instance_count . |
|
parameter_server_count |
integer | Antalet parameterservrar som ska startas för jobbet. | 0 |
Komponentindata
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
type |
sträng | Obligatoriskt. 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 det är inställt på true måste du använda kommandot innehåller valfria indata med $[[]] |
false |
|
min |
heltal eller tal | Det minsta godkända värdet för indata. Det här fältet kan bara anges om type fältet är number eller integer . |
||
max |
heltal eller tal | Det maximala 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 | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
type |
sträng | Obligatoriskt. 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
Kommandokomponentexempel är tillgängliga i 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
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.5/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 = true
måste du använda $[[]]
för att omfamna 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 ochmodel_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_rate
och learning_rate_schedule
använder standardvärdet.
- Om alla indata/utdata ger 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 |
---|---|---|
kommando | 1. Endast valfria indata kan finnas i $[[]] 2. Det går inte att använda \ för att skapa en ny rad i kommandot .3. Indata eller utdata hittas inte. |
1. Kontrollera att alla indata eller utdata som används i kommandot redan har definierats i avsnitten inputs och outputs använder rätt format för valfria indata $[[]] eller obligatoriska ${{}} .2. Använd \ inte för att skapa en ny rad. |
-miljö | 1. Det finns ingen definition för miljöversionen {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: path , , ld_library_path user , logname , home , pwd , . shell 2. Kontrollera att namnen på indata och utdata inte dupliceras. |