Esquema YAML del trabajo de canalización de la CLI (v2)
SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)
Puede encontrar el esquema JSON de origen en https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json.
Nota:
La sintaxis de YAML que se detalla en este documento se basa en el esquema JSON de la versión más reciente de la extensión ML de la CLI v2. Se garantiza que esta sintaxis solo funciona con la versión más reciente de la extensión ML de la CLI v2. Dispone de los esquemas de las versiones de anteriores de la extensión en https://azuremlschemasprod.azureedge.net/.
Sintaxis de YAML
Clave | Tipo | Descripción | Valores permitidos | Valor predeterminado |
---|---|---|---|---|
$schema |
string | Esquema de YAML. Si usa la extensión VS Code de Azure Machine Learning para crear el archivo YAML, puede invocar las finalizaciones del esquema y los recursos sin incluye $schema en la parte superior del archivo. |
||
type |
const | Necesario. Tipo de trabajo. | pipeline |
|
name |
string | Nombre del trabajo. Debe ser único en todos los trabajos del área de trabajo. Si se omite, Azure Machine Learning genera automáticamente un GUID para el nombre. | ||
display_name |
string | Nombre para mostrar del trabajo en la interfaz de usuario de Studio. Puede no ser único dentro del área de trabajo. Si se omite, Azure Machine Learning genera automáticamente un identificador adjetivo-sustantivo legible para el nombre para mostrar. | ||
experiment_name |
string | Organice el trabajo bajo el nombre del experimento. El registro de ejecución de cada trabajo está organizado según el experimento correspondiente en la pestaña "Experimentos" de Estudio. Si se omite, Azure Machine Learning tiene experiment_name como valor predeterminado el nombre del directorio de trabajo donde se creó el trabajo. |
||
tags |
objeto | Diccionario de etiquetas para el trabajo. | ||
settings |
object | Configuración predeterminada del trabajo de canalización. Visite Atributos de la settings clave para el conjunto de propiedades configurables. |
||
jobs |
objeto | Necesario. Diccionario del conjunto de trabajos individuales que se ejecutarán como pasos dentro de la canalización. Estos trabajos se consideran trabajos secundarios del trabajo de canalización primario. La clave es el nombre del paso en el contexto del trabajo de canalización. Este nombre difiere del nombre de trabajo único del trabajo secundario. El valor es la especificación del trabajo, que puede seguir el esquema del trabajo de comando o el esquema del trabajo de barrido. Actualmente, solo se pueden ejecutar trabajos de comando y trabajos de barrido en una canalización. Las versiones posteriores tendrán compatibilidad con otros tipos de trabajo. |
||
inputs |
object | Diccionario de entradas para el trabajo de canalización. La clave es un nombre para la entrada dentro del contexto del trabajo. El valor es el valor de entrada. Las entradas de un trabajo de paso individual de la canalización pueden hacer referencia a estas entradas de canalización con la ${{ parent.inputs.<input_name> }} expresión . Para obtener más información sobre cómo enlazar las entradas de un paso de canalización a las entradas del trabajo de canalización de nivel superior, visite Sintaxis de expresión para enlazar entradas y salidas entre pasos en un trabajo de canalización. |
||
inputs.<input_name> |
number, integer, boolean, string u object | Uno de un valor literal (de tipo número, entero, booleano o cadena) o un objeto que contiene una especificación de datos de entrada de trabajo. | ||
outputs |
object | Diccionario de configuraciones de salida del trabajo de canalización. La clave es un nombre para la salida dentro del contexto del trabajo. El valor es la configuración de salida. Las salidas de un trabajo de paso individual de la canalización pueden hacer referencia a estas salidas de canalización con la ${{ parents.outputs.<output_name> }} expresión . Para obtener más información sobre cómo enlazar las salidas de un paso de canalización a las salidas del trabajo de canalización de nivel superior, visite la sintaxis de expresión para enlazar entradas y salidas entre los pasos de un trabajo de canalización. |
||
outputs.<output_name> |
objeto | Puede dejar el objeto vacío. En este caso, de forma predeterminada, la salida será de tipo uri_folder y Azure Machine Learning generará una ubicación de salida para la salida en función de esta ruta de acceso temporal: {settings.datastore}/azureml/{job-name}/{output-name}/ . Los archivos en el directorio de salida se escribirán a través de un montaje de lectura y escritura. Para especificar un modo de salida diferente, proporcione un objeto que contenga la especificación de salida del trabajo. |
||
identity |
objeto | La identidad se usa para el acceso a datos. Puede ser UserIdentityConfiguration, ManagedIdentityConfiguration o None. Si es UserIdentityConfiguration, se usará la identidad del remitente del trabajo para acceder a los datos de entrada y escribir el resultado en la carpeta de salida; de lo contrario, se usará la identidad administrada del destino de proceso. |
Atributos de la clave settings
Clave | Tipo | Descripción | Valor predeterminado |
---|---|---|---|
default_datastore |
string | Nombre del almacén de datos que se usará como almacén de datos predeterminado para el trabajo de canalización. Este valor debe ser una referencia a un almacén de datos existente en el área de trabajo mediante la azureml:<datastore-name> sintaxis . Las salidas definidas en la outputs propiedad del trabajo de canalización primario o los trabajos de paso secundario se almacenan en este almacén de datos. Si se omite, las salidas se almacenan en el almacén de datos de blobs del área de trabajo. |
|
default_compute |
string | Nombre del destino de proceso que se va a usar como proceso predeterminado para todos los pasos de la canalización. El proceso definido en el nivel de paso invalida este proceso predeterminado para ese paso específico. El default_compute valor debe ser una referencia a un proceso existente en el área de trabajo mediante la azureml:<compute-name> sintaxis . |
|
continue_on_step_failure |
boolean | Esta configuración determina lo que sucede si se produce un error en un paso de la canalización. De forma predeterminada, la canalización seguirá ejecutándose aunque se produzca un error en un paso. Esto significa que los pasos que no dependen del paso con errores se seguirán ejecutando. Sin embargo, si cambia esta configuración a False, toda la canalización deja de ejecutarse y se cancelarán todos los pasos que se estén ejecutando actualmente si se produce un error en un paso. | True |
force_rerun |
boolean | Si se va a forzar la repetición de la ejecución de toda la canalización. El valor predeterminado es False . Esto significa que, de forma predeterminada, la canalización intenta reutilizar la salida del trabajo anterior si cumple los criterios de reutilización. Si se establece en True , se volverán a ejecutar todos los pasos de la canalización. |
False |
Entradas de trabajo
Clave | Tipo | Descripción | Valores permitidos | Valor predeterminado |
---|---|---|---|---|
type |
string | Tipo de entrada de trabajo. Especifique uri_file para los datos de entrada que apunte a un único origen de archivo o uri_folder para los datos de entrada que apunte a un origen de carpeta. Para más información, visite Más información sobre el acceso a datos. |
uri_file , uri_folder , , mltable , mlflow_model |
uri_folder |
path |
string | Ruta de acceso a los datos que se va a usar como entrada. Esto se puede especificar de varias maneras: - Ruta de acceso local al archivo o carpeta del origen de datos, por ejemplo, path: ./iris.csv . Los datos se cargan durante el envío del trabajo. - URI de una ruta de acceso a la nube al archivo o carpeta que se va a usar como entrada. Los tipos de URI admitidos son azureml , https , wasbs , abfss , adl . Para obtener más información sobre el uso del azureml:// formato URI, visite Sintaxis de yaml core. - Recurso de datos de Azure Machine Learning registrado existente que se va a usar como entrada. Para hacer referencia a un recurso de datos registrado, use la azureml:<data_name>:<data_version> sintaxis o azureml:<data_name>@latest (para hacer referencia a la versión más reciente de ese recurso de datos), por ejemplo, path: azureml:cifar10-data:1 o path: azureml:cifar10-data@latest . |
||
mode |
string | Modo de cómo se deben entregar los datos al destino de proceso. Para el montaje de solo lectura ( ro_mount ), el conjunto de datos se consumirá como una ruta de acceso de montaje. Una carpeta se monta como una carpeta y un archivo se monta como un archivo. Azure Machine Learning resuelve la entrada en la ruta de acceso de montaje. En download el modo , los datos se descargan en el destino de proceso. Azure Machine Learning resuelve la entrada en la ruta de acceso descargada. Para la dirección URL de la ubicación de almacenamiento del artefacto de datos o artefactos, en lugar de montar o descargar los datos en sí, use el direct modo . Esto pasa la dirección URL de la ubicación de almacenamiento como entrada del trabajo. En este caso, el usuario es el único responsable de controlar las credenciales para acceder al almacenamiento. |
ro_mount , , download , direct |
ro_mount |
Salidas de trabajo
Clave | Tipo | Descripción | Valores permitidos | Valor predeterminado |
---|---|---|---|---|
type |
string | Tipo de salida del trabajo. Para el tipo predeterminado uri_folder , la salida corresponde a una carpeta. |
uri_file , uri_folder , , mltable , mlflow_model |
uri_folder |
mode |
string | Modo de entrega del archivo o archivos de salida al almacenamiento de destino. Para el modo de montaje de lectura y escritura (rw_mount ), el directorio de salida será un directorio montado. Para el modo de carga, los archivos escritos se cargan al final del trabajo. |
rw_mount , upload |
rw_mount |
Configuraciones de identidad
UserIdentityConfiguration
Clave | Tipo | Descripción | Valores permitidos |
---|---|---|---|
type |
const | Necesario. Tipo de identidad. | user_identity |
ManagedIdentityConfiguration
Clave | Tipo | Descripción | Valores permitidos |
---|---|---|---|
type |
const | Necesario. Tipo de identidad. | managed o managed_identity |
Comentarios
Puede usar el az ml job
comando para administrar trabajos de Azure Machine Learning.
Ejemplos
Visite el repositorio de GitHub de ejemplos para obtener ejemplos. Aquí se muestran varios:
YAML: canalización hello
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
hello_job:
command: echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
world_job:
command: echo "world"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
YAML: dependencia de entrada/salida
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
hello_job:
command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
outputs:
world_output:
world_job:
command: cat ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
inputs:
world_input: ${{parent.jobs.hello_job.outputs.world_output}}
YAML: configuración común del trabajo de canalización
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_settings
settings:
default_datastore: azureml:workspaceblobstore
default_compute: azureml:cpu-cluster
jobs:
hello_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
world_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: entrada de nivel superior e invalidación de la configuración común del trabajo de canalización
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
default_compute: azureml:cpu-cluster
inputs:
hello_string_top_level_input: "hello world"
jobs:
a:
command: echo hello ${{inputs.hello_string}}
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
hello_string: ${{parent.inputs.hello_string_top_level_input}}
b:
command: echo "world" >> ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
outputs:
world_output:
c:
command: echo ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
world_input: ${{parent.jobs.b.outputs.world_output}}