Compartir a través de


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

Pasos siguientes