Sdílet prostřednictvím


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_countje .
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_filestring, uri_folder, , mltablemlflow_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 truetato 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, , mltablemlflow_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 a model_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í.

Další kroky