Schéma YAML du composant de commande CLI (v2)
S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)
Le schéma JSON source se trouve à l’adresse https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json.
Notes
La syntaxe YAML détaillée dans ce document est basée sur le schéma JSON pour la dernière version de l’extension ML CLI v2. Le fonctionnement de cette syntaxe est garanti uniquement avec la dernière version de l’extension ML CLI v2. Vous trouverez les schémas des versions d’extension plus anciennes sur https://azuremlschemasprod.azureedge.net/.
Syntaxe YAML
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
$schema |
string | Schéma YAML. Si vous utilisez l’extension VS Code d’Azure Machine Learning pour créer le fichier YAML, en incluant $schema en haut de votre fichier, vous pouvez appeler des complétions de schémas et de ressources. |
||
type |
const | Le type de composant. | command |
command |
name |
string | Obligatoire. Nom du composant. Doit commencer par une lettre minuscule. Les caractères autorisés sont des lettres minuscules, des chiffres et des traits de soulignement (_). La longueur maximale est de 255 caractères. | ||
version |
string | Numéro de version du composant. En cas d’omission, Azure Machine Learning génère automatiquement une version. | ||
display_name |
string | Nom complet du composant dans l’interface utilisateur de Studio. Peut être non unique dans l’espace de travail. | ||
description |
string | Description du composant. | ||
tags |
object | Dictionnaire d’étiquettes pour le composant. | ||
is_deterministic |
boolean | Cette option détermine si le composant produira la même sortie pour les mêmes données d’entrée. Vous devez généralement la définir avec la valeur false pour les composants qui chargent des données à partir de sources externes, comme l’importation de données à partir d’une URL. C’est parce que les données à cette URL risquent de changer au fil du temps. |
true |
|
command |
string | Obligatoire. Commande à exécuter. | ||
code |
string | Chemin d’accès local au répertoire du code source à télécharger et à utiliser pour le composant. | ||
environment |
chaîne ou objet | Obligatoire. L’environnement à utiliser pour le composant. Cette valeur peut être une référence à un environnement avec version existant dans l’espace de travail ou une spécification d’environnement inline. Pour référencer un environnement personnalisé existant, utilisez la azureml:<environment-name>:<environment-version> syntaxe. Pour référencer un environnement organisé, utilisez la azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> syntaxe. Pour plus d’informations sur la façon de référencer des environnements, consultez Guide pratique pour gérer les environnements Pour définir un environnement inline, suivez le schéma de l’environnement. Excluez les propriétés name et version , car elles ne sont pas prises en charge pour les environnements inline. |
||
distribution |
object | Configuration de la distribution pour les scénarios de formation distribués. MpiConfiguration, PyTorchConfiguration ou TensorFlowConfiguration. | ||
resources.instance_count |
entier | Nombre de nœuds à dédier au travail. | 1 |
|
inputs |
object | Dictionnaire d’entrées du composant. La clé est un nom pour l’entrée dans le contexte du composant, et la valeur est la définition de l’entrée du composant. Les entrées peuvent être référencées dans la command à l’aide de l’expression ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
object | Définition d’entrée du composant. Consultez Entrée de composant pour l’ensemble de propriétés configurables. | ||
outputs |
object | Dictionnaire de sorties du composant. La clé est un nom pour la sortie dans le contexte du composant, et la valeur est la définition de sortie du composant. Les sorties peuvent être référencées dans la command à l’aide de l’expression ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
object | Définition de sortie du composant. Consultez Sortie du composant pour l’ensemble des propriétés configurables. |
Configurations de distribution
MpiConfiguration
Clé | Type | Description | Valeurs autorisées |
---|---|---|---|
type |
const | Obligatoire. Type de distribution. | mpi |
process_count_per_instance |
entier | Obligatoire. Nombre de processus par nœud à lancer pour le travail. |
PyTorchConfiguration
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
type |
const | Obligatoire. Type de distribution. | pytorch |
|
process_count_per_instance |
entier | Nombre de processus par nœud à lancer pour le travail. | 1 |
TensorFlowConfiguration
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
type |
const | Obligatoire. Type de distribution. | tensorflow |
|
worker_count |
entier | Nombre de Workers à lancer pour le travail. | La valeur par défaut est resources.instance_count . |
|
parameter_server_count |
entier | Nombre de serveurs de paramètres à lancer pour le travail. | 0 |
Entrée du composant
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
type |
string | Obligatoire. Type d’entrée du composant. En savoir plus sur l’accès aux données | number , integer , , string boolean , uri_file , uri_folder , , mltable ,mlflow_model |
|
description |
string | Description de l’entrée. | ||
default |
nombre, entier, booléen ou chaîne | Valeur par défaut de l’entrée. | ||
optional |
boolean | Indique si l’entrée est requise. Si la valeur est définie sur true , vous devez utiliser la commande qui inclut des entrées facultatives avec $[[]] |
false |
|
min |
entier ou nombre | Valeur minimale acceptée pour l’entrée. Ce champ ne peut être spécifié que si le champ type est number ou integer . |
||
max |
entier ou nombre | Valeur maximale acceptée pour l’entrée. Ce champ ne peut être spécifié que si le champ type est number ou integer . |
||
enum |
tableau | Liste des valeurs autorisées pour l’entrée. Uniquement applicable si le champ type est string . |
Sortie du composant
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
type |
string | Obligatoire. Type de sortie du composant. | uri_file , , uri_folder mltable , ,mlflow_model |
|
description |
string | Description de la sortie. |
Remarques
La commande az ml component
peut être utilisée pour gérer les composants Azure Machine Learning.
Exemples
Les exemples de composant de commande sont disponibles dans le référentiel d’exemples GitHub. Certains exemples sont affichés ci-dessous.
Des exemples sont disponibles dans le référentiel d’exemples GitHub. Vous en trouverez plusieurs ci-dessous.
YAML : Composant de commande 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 : Composant avec différents types d’entrée
$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}}
Définir des entrées facultatives dans la ligne de commande
Lorsque l’entrée est définie comme optional = true
, vous devez utiliser $[[]]
pour adapter la ligne de commande avec des entrées. Par exemple, $[[--input1 ${{inputs.input1}}]
. La ligne de commande au moment de l’exécution peut avoir des entrées différentes.
- Si vous utilisez uniquement les paramètres obligatoires
training_data
etmodel_output
, la ligne de commande ressemble à ceci :
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
Si aucune valeur n’est spécifiée au moment de l’exécution, learning_rate
et learning_rate_schedule
utilisent la valeur par défaut.
- Si toutes les entrées/sorties fournissent des valeurs pendant l’exécution, la ligne de commande ressemble à ceci :
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
Erreurs courantes et recommandations
Voici quelques erreurs courantes associées à la définition d’un composant et les recommandations correspondantes.
Clé : | Erreurs | Recommandation |
---|---|---|
command | 1. Seules les entrées facultatives peuvent se trouver dans $[[]] .2. La commande ne prend pas en charge l’utilisation de \ pour créer une ligne.3. Les entrées ou sorties sont introuvables. |
1. Vérifiez que toutes les entrées ou sorties utilisées dans la commande sont déjà définies dans les sections inputs et outputs . Veillez aussi à utiliser le format $[[]] pour les entrées facultatives ou ${{}} pour celles obligatoires.2. N’utilisez pas \ pour créer une ligne. |
Environnement | 1. Il n’existe aucune définition pour l’environnement {envName} version {envVersion} . 2. Il n’existe aucun environnement avec le nom {envName} et la version {envVersion} .3. La ressource avec l’ID {envAssetId} est introuvable. |
1. Vérifiez que le nom et la version de l’environnement que vous référencez dans la définition du composant existent. 2. Vous devez spécifier la version si vous faites référence à un environnement inscrit. |
entrées/sorties | 1. Les noms des entrées/sorties sont en conflit avec les paramètres réservés au système. 2. Noms d’entrées ou de sorties en double. |
1. N’utilisez aucun de ces paramètres réservés comme noms d’entrées/sorties : path , ld_library_path , user , logname , home , pwd , shell .2. Vérifiez que les entrées et les sorties n’ont pas des noms dupliqués. |