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 wilt verwijzen naar een bestaande aangepaste omgeving, gebruikt u de azureml:<environment-name>:<environment-version> syntaxis. Gebruik de azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> syntaxis om te verwijzen naar een gecureerde omgeving. Zie Omgevingen beheren voor meer informatie over het raadplegen van omgevingen 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 , , integer boolean , string , , uri_file , , uri_folder mltable mlflow_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_folder mltable mlflow_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.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}}
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 opgeeftmodel_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_path user , logname , , home , , . shell pwd 2. Zorg ervoor dat de namen van invoer en uitvoer niet worden gedupliceerd. |