Esquema de YAML do trabalho de pipeline da CLI (v2)

APLICA-SE A:Extensão de ML da CLI do Azurev2 (atual)

Você pode encontrar o esquema JSON de origem em https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json.

Observação

A sintaxe YAML detalhada neste documento baseia-se no esquema JSON da última versão da extensão de ML da CLI v2. Essa sintaxe só tem a garantia de funcionar com a última versão da extensão de ML da CLI v2. Encontre os esquemas para as versões mais antigas da extensão em https://azuremlschemasprod.azureedge.net/.

Sintaxe YAML

Chave Type Descrição Valores permitidos Valor padrão
$schema string O esquema YAML. Se você usa a extensão do VS Code para Azure Machine Learning para criar o arquivo YAML, você poderá invocar preenchimentos de esquema e recursos se incluir $schema na parte superior do arquivo.
type const Obrigatórios. O tipo de trabalho. pipeline
name string Nome do trabalho. Precisa ser exclusivo em todos os trabalhos no espaço de trabalho. Se isso for omitido, o Azure Machine Learning vai gerar automaticamente um GUID para o nome.
display_name string Nome de exibição do trabalho na interface do usuário no Estúdio. Dentro do espaço de trabalho ele pode ser não exclusivo. Se for omitido, o Azure Machine Learning irá gerar automaticamente um identificador com adjetivo-substantivo legível como o nome de exibição.
experiment_name string Organize o trabalho sob o nome do experimento. O registro de execução de cada trabalho é organizado no experimento correspondente da guia "Experimentos" do estúdio. Se omitido, o Aprendizado de Máquina do Azure assumirá experiment_name como padrão o nome do diretório de trabalho onde o trabalho foi criado.
tags objeto Dicionário de tags para o trabalho.
settings objeto Configurações padrão para o trabalho de pipeline. Visite Atributos da settings chave para o conjunto de propriedades configuráveis.
jobs objeto Obrigatórios. Dicionário do conjunto de trabalhos individuais a serem executados como etapas no pipeline. Esses trabalhos são considerados trabalhos filho do trabalho do pipeline pai.

A chave é o nome da etapa no contexto do trabalho de pipeline. Esse nome difere do nome do trabalho exclusivo do trabalho filho. O valor é a especificação do trabalho, que pode seguir o esquema do trabalho de comando ou o esquema do trabalho de varredura. Atualmente, apenas trabalhos de comando e trabalhos de varredura podem ser executados em um pipeline. As versões posteriores terão suporte a outros tipos de trabalho.
inputs objeto Dicionário de entradas para o trabalho de pipeline. A chave é um nome para a entrada dentro do contexto do trabalho. O valor é o valor de entrada.

As entradas de um trabalho de etapa individual no pipeline podem fazer referência a essas entradas de pipeline com a ${{ parent.inputs.<input_name> }} expressão. Para obter mais informações sobre como vincular as entradas de uma etapa de pipeline às entradas do trabalho de pipeline de nível superior, visite Sintaxe de expressão para vincular entradas e saídas entre etapas em um trabalho de pipeline.
inputs.<input_name> número, número inteiro, booliano, cadeia de caracteres ou objeto Um dos valores literais (de número de tipo, inteiro, booliano ou cadeia de caracteres) ou um objeto que contém uma especificação de dados de entrada de trabalho.
outputs objeto Dicionário de configurações de saída do trabalho de pipeline. A chave é um nome para a saída dentro do contexto do trabalho. O valor é a configuração de saída.

As saídas de um trabalho de etapa individual no pipeline podem fazer referência a essas saídas de pipeline com a ${{ parents.outputs.<output_name> }} expressão. Para obter mais informações sobre como vincular as saídas de uma etapa de pipeline às saídas do trabalho de pipeline de nível superior, visite a sintaxe Expressão para vincular entradas e saídas entre etapas em um trabalho de pipeline.
outputs.<output_name> objeto Você pode deixar o objeto vazio. Nesse caso, por padrão, a saída será do tipo uri_folder, e o Aprendizado de Máquina do Azure gerará um local de saída para a saída com base nesse caminho modelado: {settings.datastore}/azureml/{job-name}/{output-name}/. O(s) arquivo(s) no diretório de saída será gravado por meio de uma montagem de leitura-gravação. Para especificar um modo de saída diferente, forneça um objeto que contenha a especificação de saída do trabalho.
identity objeto O acesso aos dados usa a identidade. Pode ser Configuração de Identidade do Usuário, Configuração de Identidade Gerenciada ou Nenhuma. Para UserIdentityConfiguration, a identidade do remetente do trabalho é usada para acessar dados de entrada e gravar o resultado na pasta de saída. Caso contrário, UserIdentityConfiguration usará a identidade gerenciada do destino de computação.

Atributos da chave settings

Chave Type Descrição Valor padrão
default_datastore string Nome do armazenamento de dados a ser usado como o armazenamento de dados padrão para o trabalho de pipeline. Esse valor deve ser uma referência a um armazenamento de dados existente no espaço de trabalho, usando a azureml:<datastore-name> sintaxe. Todas as saídas definidas na outputs propriedade do trabalho de pipeline pai ou dos trabalhos de etapa filho são armazenadas nesse armazenamento de dados. Se omitidas, as saídas serão armazenadas no armazenamento de dados de blob do espaço de trabalho.
default_compute string Nome do destino de computação a ser usado como computação padrão para todas as etapas no pipeline. A computação definida no nível da etapa substitui essa computação padrão para essa etapa específica. O default_compute valor deve ser uma referência a uma computação existente no espaço de trabalho, usando a azureml:<compute-name> sintaxe.
continue_on_step_failure boolean Essa configuração determina o que acontece no caso de falha em uma etapa no pipeline. Por padrão, o pipeline continuará sendo executado mesmo se uma etapa falhar. Isso significa que todas as etapas que não dependem da etapa com falha ainda serão executadas. No entanto, se você alterar essa configuração para False, todo o pipeline para de ser executado e todas as etapas em execução no momento serão canceladas se uma etapa falhar. True
force_rerun booleano Se uma nova execução de todo o pipeline deve ser forçada. O valor padrão é False. Isso significa que, por padrão, o pipeline tenta reutilizar a saída do trabalho anterior se atender aos critérios de reutilização. Se definido como True, todas as etapas no pipeline serão executadas novamente. False

Entradas de trabalho

Chave Type Descrição Valores permitidos Valor padrão
type string O tipo de entrada de trabalho. Especifique uri_file para dados de entrada que apontem para uma única fonte de arquivo ou uri_folder para dados de entrada que apontem para uma fonte de pasta. Para obter mais informações, visite Saiba mais sobre acesso a dados. uri_file, uri_folder, mltable, mlflow_model uri_folder
path string O caminho para os dados a serem usados como entrada. Isso pode ser especificado de algumas maneiras:

- Um caminho local para o arquivo ou pasta da fonte de dados, por exemplo path: ./iris.csv. Os dados são carregados durante o envio do trabalho.

- Um URI de um caminho de nuvem para o arquivo ou pasta a ser usado como entrada. Os tipos de URI com suporte são azureml, https, wasbs, abfss, adl. Para obter mais informações sobre o uso do azureml:// formato URI, visite Core yaml syntax.

– Um ativo de dados existente e registrado do Azure Machine Learning a ser usado como a entrada. Para fazer referência a um ativo de dados registrado, use a azureml:<data_name>:<data_version> sintaxe ou azureml:<data_name>@latest (para fazer referência à versão mais recente desse ativo de dados), por exemplo path: azureml:cifar10-data:1 , ou path: azureml:cifar10-data@latest.
mode string Modo como os dados devem ser entregues ao destino de computação.

Na montagem somente leitura (ro_mount), os dados serão consumidos como um caminho de montagem. Uma pasta é montada como uma pasta e um arquivo é montado como um arquivo. O Aprendizado de Máquina do Azure resolve a entrada para o caminho de montagem.

Para download o modo, os dados são baixados para o destino de computação. O Aprendizado de Máquina do Azure resolve a entrada para o caminho baixado.

Para apenas a URL do local de armazenamento do artefato de dados ou artefatos, em vez de montar ou baixar os dados em si, use o direct modo. Isso passa a URL do local de armazenamento como a entrada do trabalho. Nesse caso, você é totalmente responsável por identificar credenciais para acessar o armazenamento.
ro_mount, download, direct ro_mount

Saídas de trabalho

Chave Type Descrição Valores permitidos Valor padrão
type string O tipo de saída do trabalho. Para o tipo padrão uri_folder, a saída corresponderá a uma pasta. uri_file, uri_folder, mltable, mlflow_model uri_folder
mode string Modo de entrega do(s) arquivo(s) de saída para o armazenamento de destino. Para o modo de montagem leitura-gravação (rw_mount), o diretório de saída será um diretório montado. Para o modo de upload, o(s) arquivo(s) escrito(s) são carregados no final do trabalho. rw_mount, upload rw_mount

Configurações de identidade

UserIdentityConfiguration

Chave Type Descrição Valores permitidos
type const Obrigatórios. Tipo de identidade. user_identity

ManagedIdentityConfiguration

Chave Type Descrição Valores permitidos
type const Obrigatórios. Tipo de identidade. managed ou managed_identity

Comentários

Você pode usar o comando para gerenciar trabalhos do az ml job Aprendizado de Máquina do Azure.

Exemplos

Visite os exemplos do repositório GitHub para obter exemplos. Vários são mostrados aqui:

YAML: hello pipeline

$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.0/labels/latest
    compute: azureml:cpu-cluster
  world_job:
    command: echo "world"
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
    compute: azureml:cpu-cluster

YAML: input/output dependency

$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.0/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.0/labels/latest
    compute: azureml:cpu-cluster
    inputs:
      world_input: ${{parent.jobs.hello_job.outputs.world_output}}

YAML: common pipeline job settings

$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.0/labels/latest
  world_job:
    command: echo 202204190 & echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest

YAML: top-level input and overriding common pipeline job settings

$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.0/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.0/labels/latest
    outputs:
      world_output:
  c:
    command: echo ${{inputs.world_input}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
    inputs:
      world_input: ${{parent.jobs.b.outputs.world_output}}

Próximas etapas