Schéma YAML komponenty příkazového řádku (v2)
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
Zdrojové schéma JSON najdete na adrese https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json.
Poznámka:
Syntaxe YAML podrobná v tomto dokumentu je založená na schématu JSON pro nejnovější verzi rozšíření ML CLI v2. Tato syntaxe je zaručena pouze pro práci s nejnovější verzí rozšíření ML CLI v2. Schémata pro starší verze rozšíření najdete na adrese https://azuremlschemasprod.azureedge.net/.
Syntaxe YAML
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
$schema |
string | Schéma YAML. Pokud k vytvoření souboru YAML použijete rozšíření Azure Machine Learning VS Code, včetně $schema v horní části souboru, můžete vyvolat schéma a dokončování prostředků. |
||
type |
const | Typ komponenty. | command |
command |
name |
string | Povinný: Název komponenty. Musí začínat malým písmenem. Povolené znaky jsou malá písmena, číslice a podtržítka(_). Maximální délka je 255 znaků. | ||
version |
string | Verze komponenty. Pokud tento parametr vynecháte, Azure Machine Learning automaticky vygeneruje verzi. | ||
display_name |
string | Zobrazovaný název komponenty v uživatelském rozhraní studia V rámci pracovního prostoru může být ne jedinečné. | ||
description |
string | Popis komponenty. | ||
tags |
objekt | Slovník značek pro komponentu | ||
is_deterministic |
boolean | Tato možnost určuje, jestli komponenta vytvoří stejný výstup pro stejná vstupní data. Obvykle byste to false měli nastavit pro komponenty, které načítají data z externích zdrojů, například import dat z adresy URL. Důvodem je to, že se data na adrese URL můžou v průběhu času měnit. |
true |
|
command |
string | Povinný: Příkaz, který se má provést. | ||
code |
string | Místní cesta k adresáři zdrojového kódu, který se má nahrát a použít pro komponentu. | ||
environment |
řetězec nebo objekt | Povinný: Prostředí, které se má použít pro komponentu. Tato hodnota může být odkazem na existující prostředí s verzí v pracovním prostoru nebo specifikaci vloženého prostředí. Pokud chcete odkazovat na existující vlastní prostředí, použijte azureml:<environment-name>:<environment-version> syntaxi. Pokud chcete odkazovat na kurátorované prostředí, použijte azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> syntaxi. Další informace o referenčních prostředích naleznete v tématu Správa prostředí Pokud chcete definovat prostředí vložené, postupujte podle schématu prostředí. Vylučte vlastnosti name a version vlastnosti, protože nejsou podporované pro vložená prostředí. |
||
distribution |
objekt | Konfigurace distribuce pro distribuované scénáře trénování Jedna z funkcí MpiConfiguration, PyTorchConfiguration nebo TensorFlowConfiguration. | ||
resources.instance_count |
integer | Počet uzlů, které se mají pro úlohu použít. | 1 |
|
inputs |
objekt | Slovník vstupů komponent. Klíč je název vstupu v kontextu komponenty a hodnota je definice vstupu komponenty. Vstupy lze odkazovat ve command výrazu ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
objekt | Definice vstupu komponenty. Viz vstup komponenty pro sadu konfigurovatelných vlastností. | ||
outputs |
objekt | Slovník výstupů komponent Klíč je název výstupu v kontextu komponenty a hodnota je definice výstupu komponenty. Na výstupy lze odkazovat pomocí command výrazu ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
objekt | Definice výstupu komponenty. Viz Výstup komponenty pro sadu konfigurovatelných vlastností. |
Konfigurace distribuce
MpiConfiguration
Klíč | Typ | Popis | Povolené hodnoty |
---|---|---|---|
type |
const | Povinný: Typ distribuce. | mpi |
process_count_per_instance |
integer | Povinný: Počet procesů na uzel, které se mají pro úlohu spustit. |
PyTorchConfiguration
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
const | Povinný: Typ distribuce. | pytorch |
|
process_count_per_instance |
integer | Počet procesů na uzel, které se mají pro úlohu spustit. | 1 |
TensorFlowConfiguration
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
const | Povinný: Typ distribuce. | tensorflow |
|
worker_count |
integer | Počet pracovníků, kteří se mají pro práci spustit. | Výchozí hodnota resources.instance_count je . |
|
parameter_server_count |
integer | Počet serverů parametrů, které se mají pro úlohu spustit. | 0 |
Vstup komponenty
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
string | Povinný: Typ vstupu komponenty. Další informace o přístupu k datům | number , integer , boolean , , uri_file string , uri_folder , , mltable mlflow_model |
|
description |
string | Popis vstupu | ||
default |
number, integer, boolean nebo string | Výchozí hodnota pro vstup. | ||
optional |
boolean | Určuje, jestli je vstup povinný. Pokud je true tato možnost nastavená, musíte použít příkaz, který obsahuje volitelné vstupy s $[[]] |
false |
|
min |
celé číslo nebo číslo | Minimální přijatá hodnota pro vstup. Toto pole lze zadat pouze v případě, že type pole je number nebo integer . |
||
max |
celé číslo nebo číslo | Maximální akceptovaná hodnota pro vstup. Toto pole lze zadat pouze v případě, že type pole je number nebo integer . |
||
enum |
pole | Seznam povolených hodnot pro vstup. Platí pouze v případě, že type pole je string . |
Výstup komponenty
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
string | Povinný: Typ výstupu komponenty. | uri_file , uri_folder , , mltable mlflow_model |
|
description |
string | Popis výstupu |
Poznámky
Příkazy az ml component
se dají použít ke správě komponent služby Azure Machine Learning.
Příklady
Příklady komponent příkazů jsou k dispozici v ukázkovém úložišti GitHubu. Níže jsou uvedeny příklady výběru.
Příklady jsou k dispozici v příkladech v úložišti GitHub. Níže je uvedeno několik.
YAML: Komponenta příkazu 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: Komponenta s různými vstupními typy
$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}}
Definování volitelných vstupů v příkazovém řádku
Když je vstup nastavený jako optional = true
, musíte použít $[[]]
k přijetí příkazového řádku se vstupy. Příklad: $[[--input1 ${{inputs.input1}}]
. Příkazový řádek za běhu může mít různé vstupy.
- Pokud používáte jenom požadované
training_data
parametry amodel_output
parametry, bude příkazový řádek vypadat takto:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
Pokud není za běhu learning_rate
zadána žádná hodnota a learning_rate_schedule
použije výchozí hodnotu.
- Pokud všechny vstupy a výstupy poskytují hodnoty za běhu, bude příkazový řádek vypadat takto:
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
Běžné chyby a doporučení
Následuje několik běžných chyb a odpovídajících doporučených návrhů při definování komponenty.
Klíč | Chyby | Doporučení |
---|---|---|
příkaz | 1. Pouze volitelné vstupy mohou být v $[[]] 2. Použití \ k vytvoření nového řádku není v příkazu podporováno.3. Vstupy nebo výstupy se nenašly. |
1. Zkontrolujte, zda jsou všechny vstupy nebo výstupy použité v příkazu již definovány v inputs částech, outputs a použijte správný formát pro volitelné vstupy nebo požadované ${{}} vstupy $[[]] .2. Nepoužívejte \ k vytvoření nového řádku. |
prostředí | 1. Pro verzi {envVersion} prostředí {envName} neexistuje žádná definice . 2. Pro název {envName} , verzi {envVersion} neexistuje žádné prostředí .3. Nepodařilo se najít prostředek s ID {envAssetId} . |
1. Ujistěte se, že název a verze prostředí, na které odkazujete v definici komponenty, existuje. 2. Pokud odkazujete na registrované prostředí, musíte zadat verzi. |
vstupy/výstupy | 1. Názvy vstupů/výstupů kolidují s rezervovanými parametry systému. 2. Duplicitní názvy vstupů nebo výstupů. |
1. Nepoužívejte žádný z těchto rezervovaných parametrů jako název vstupů/výstupů: path , ld_library_path , user , logname , , home , pwd . shell .2. Ujistěte se, že názvy vstupů a výstupů nejsou duplicitní. |