Share via


YAML-schema voor CLI-opdrachtonderdeel (v2)

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

Het JSON-bronschema vindt u op https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json.

Notitie

De YAML-syntaxis die in dit document wordt beschreven, is gebaseerd op het JSON-schema voor de nieuwste versie van de ML CLI v2-extensie. Deze syntaxis werkt gegarandeerd alleen met de nieuwste versie van de ML CLI v2-extensie. U vindt de schema's voor oudere extensieversies op https://azuremlschemasprod.azureedge.net/.

YAML-syntaxis

Sleutel Type Description Toegestane waarden Default value
$schema tekenreeks Het YAML-schema. Als u de Azure Machine Learning VS Code-extensie gebruikt om het YAML-bestand te ontwerpen, inclusief $schema bovenaan het bestand, kunt u schema- en resourcevoltooiingen aanroepen.
type Const Het type onderdeel. command command
name tekenreeks Vereist. Naam van het onderdeel. Moet beginnen met kleine letters. Toegestane tekens zijn kleine letters, cijfers en onderstrepingstekens(_). De maximale lengte is 255 tekens.
version tekenreeks Versie van het onderdeel. Als u dit weglaat, wordt in Azure Machine Learning automatisch een versie gegenereerd.
display_name tekenreeks Weergavenaam van het onderdeel in de gebruikersinterface van studio. Kan niet uniek zijn binnen de werkruimte.
description tekenreeks Beschrijving van het onderdeel.
tags object Woordenlijst met tags voor het onderdeel.
is_deterministic boolean Met deze optie wordt bepaald of het onderdeel dezelfde uitvoer voor dezelfde invoergegevens produceert. U moet dit meestal instellen op false onderdelen die gegevens uit externe bronnen laden, zoals het importeren van gegevens uit een URL. Dit komt doordat de gegevens op de URL na verloop van tijd kunnen veranderen. true
command tekenreeks Vereist. De opdracht die moet worden uitgevoerd.
code tekenreeks Lokaal pad naar de broncodemap die moet worden geüpload en gebruikt voor het onderdeel.
environment tekenreeks of object Vereist. De omgeving die moet worden gebruikt voor het onderdeel. Deze waarde kan een verwijzing zijn naar een bestaande versieomgeving in de werkruimte of een inline-omgevingsspecificatie.

Als u naar een bestaande omgeving wilt verwijzen, gebruikt u de azureml:<environment-name>:<environment-version> syntaxis.

Als u een omgeving inline wilt definiëren, volgt u het omgevingsschema. Sluit de name eigenschappen en version eigenschappen uit omdat ze niet worden ondersteund voor inline-omgevingen.
distribution object De distributieconfiguratie voor gedistribueerde trainingsscenario's. Een van MpiConfiguration, PyTorchConfiguration of TensorFlowConfiguration.
resources.instance_count geheel getal Het aantal knooppunten dat moet worden gebruikt voor de taak. 1
inputs object Woordenlijst van onderdeelinvoer. De sleutel is een naam voor de invoer binnen de context van het onderdeel en de waarde is de definitie van de onderdeelinvoer.

In de command ${{ inputs.<input_name> }} expressie kan naar invoer worden verwezen.
inputs.<input_name> object De definitie van de onderdeelinvoer. Zie Component-invoer voor de set configureerbare eigenschappen.
outputs object Woordenlijst van onderdeeluitvoer. De sleutel is een naam voor de uitvoer binnen de context van het onderdeel en de waarde is de definitie van de onderdeeluitvoer.

Er kan naar uitvoer worden verwezen in de command expressie ${{ outputs.<output_name> }} .
outputs.<output_name> object De definitie van de onderdeeluitvoer. Zie de onderdeeluitvoer voor de set configureerbare eigenschappen.

Distributieconfiguraties

MpiConfiguration

Sleutel Type Description Toegestane waarden
type Const Vereist. Distributietype. mpi
process_count_per_instance geheel getal Vereist. Het aantal processen per knooppunt dat moet worden gestart voor de taak.

PyTorchConfiguration

Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Distributietype. pytorch
process_count_per_instance geheel getal Het aantal processen per knooppunt dat moet worden gestart voor de taak. 1

TensorFlowConfiguration

Sleutel Type Description Toegestane waarden Default value
type Const Vereist. Distributietype. tensorflow
worker_count geheel getal Het aantal werknemers dat voor de taak moet worden gestart. Standaard ingesteld op resources.instance_count.
parameter_server_count geheel getal Het aantal parameterservers dat moet worden gestart voor de taak. 0

Invoer van onderdelen

Sleutel Type Description Toegestane waarden Default value
type tekenreeks Vereist. Het type onderdeelinvoer. Meer informatie over gegevenstoegang number, , integerboolean, string, , uri_file, , uri_foldermltablemlflow_model
description tekenreeks Beschrijving van de invoer.
default getal, geheel getal, booleaanse waarde of tekenreeks De standaardwaarde voor de invoer.
optional boolean Of de invoer vereist is. Als deze optie is ingesteld true, moet u de opdracht gebruiken met optionele invoer met $[[]] false
min geheel getal of getal De minimaal geaccepteerde waarde voor de invoer. Dit veld kan alleen worden opgegeven als type het veld is number of integer.
max geheel getal of getal De maximaal geaccepteerde waarde voor de invoer. Dit veld kan alleen worden opgegeven als type het veld is number of integer.
enum matrix De lijst met toegestane waarden voor de invoer. Alleen van toepassing als type het veld is string.

Onderdeeluitvoer

Sleutel Type Description Toegestane waarden Default value
type tekenreeks Vereist. Het type onderdeeluitvoer. uri_file, , , uri_foldermltablemlflow_model
description tekenreeks Beschrijving van de uitvoer.

Opmerkingen

De az ml component opdrachten kunnen worden gebruikt voor het beheren van Azure Machine Learning-onderdelen.

Voorbeelden

Voorbeelden van opdrachtonderdelen zijn beschikbaar in de GitHub-voorbeeldenopslagplaats. Selecteer hieronder voorbeelden voor.

Voorbeelden zijn beschikbaar in de GitHub-voorbeeldenopslagplaats. Hieronder ziet u een aantal.

YAML: Hallo wereld-opdrachtonderdeel

$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: Onderdeel met verschillende invoertypen

$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}}

Optionele invoer definiëren in de opdrachtregel

Wanneer de invoer is ingesteld als optional = true, moet u de $[[]] opdrachtregel met invoer omhelzen. Bijvoorbeeld $[[--input1 ${{inputs.input1}}]. De opdrachtregel tijdens runtime kan verschillende invoer hebben.

  • Als u alleen de vereiste training_data parameters opgeeft model_output , ziet de opdrachtregel er als volgt uit:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Als er tijdens runtime learning_rate geen waarde is opgegeven en learning_rate_schedule de standaardwaarde wordt gebruikt.

  • Als alle invoer/uitvoer waarden leveren tijdens runtime, ziet de opdrachtregel er als volgt uit:
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

Veelvoorkomende fouten en aanbevelingen

Hier volgen enkele veelvoorkomende fouten en bijbehorende aanbevolen suggesties wanneer u een onderdeel definieert.

Sleutel Fouten Aanbeveling
opdracht 1. Alleen optionele invoer kan zich in $[[]]
2. Het gebruik \ om een nieuwe regel te maken, wordt niet ondersteund in de opdracht.
3. Invoer of uitvoer is niet gevonden.
1. Controleer of alle invoer of uitvoer die in de opdracht wordt gebruikt, al zijn gedefinieerd in de inputs en outputs secties en gebruik de juiste indeling voor optionele invoer of vereiste ${{}}invoer$[[]].
2. Gebruik geen \ nieuwe regel.
omgeving 1. Er bestaat geen definitie voor de omgevingsversie {envName} {envVersion}.
2. Er bestaat geen omgeving voor naam {envName}, versie {envVersion}.
3. Kan asset niet vinden met id {envAssetId}.
1. Zorg ervoor dat de omgevingsnaam en -versie die u in de onderdeeldefinitie verwijst, bestaan.
2. U moet de versie opgeven als u naar een geregistreerde omgeving verwijst.
invoer/uitvoer 1. Namen van invoer/uitvoer conflicteren met door het systeem gereserveerde parameters.
2. Dubbele namen van invoer of uitvoer.
1. Gebruik geen van deze gereserveerde parameters als de naam van de invoer/uitvoer: path, , ld_library_pathuser, logname, , home, , . shellpwd
2. Zorg ervoor dat de namen van invoer en uitvoer niet worden gedupliceerd.

Volgende stappen