Esquema YAML do trabalho de pipeline CLI (v2)
APLICA-SE A: Azure CLI ml extension v2 (atual)
Você pode encontrar o esquema JSON de origem em https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json.
Nota
A sintaxe YAML detalhada neste documento é baseada no esquema JSON para a versão mais recente da extensão ML CLI v2. Esta sintaxe é garantida apenas para funcionar com a versão mais recente da extensão ML CLI v2. Você pode encontrar os esquemas para versões de extensão mais antigas em https://azuremlschemasprod.azureedge.net/.
Sintaxe YAML
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
$schema |
string | O esquema YAML. Se você usar a extensão VS Code do Azure Machine Learning para criar o arquivo YAML, poderá invocar as completações de esquema e recursos se incluir $schema na parte superior do arquivo. |
||
type |
const | Obrigatório. O tipo de trabalho. | pipeline |
|
name |
string | Nome do trabalho. Deve ser exclusivo em todos os trabalhos no espaço de trabalho. Se omitido, o Azure Machine Learning gerará automaticamente um GUID para o nome. | ||
display_name |
string | Nome para exibição do trabalho na interface do usuário do estúdio. Pode não ser exclusivo dentro do espaço de trabalho. Se omitido, o Azure Machine Learning gera automaticamente um identificador de substantivo adjetivo legível por humanos para o nome para exibição. | ||
experiment_name |
string | Organize o trabalho sob o nome do experimento. O registro de execução de cada trabalho é organizado sob o experimento correspondente na guia "Experimentos" do estúdio. Se omitido, o Azure Machine Learning assume como experiment_name 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ório. Dicionário do conjunto de trabalhos individuais a serem executados como etapas dentro do pipeline. Esses trabalhos são considerados empregos filhos do trabalho de pipeline pai. A chave é o nome da etapa dentro do contexto do trabalho de pipeline. Esse nome difere do nome exclusivo do trabalho filho. O valor é a especificação do trabalho, que pode seguir o esquema de trabalho de comando ou o esquema de trabalho de varredura. Atualmente, apenas trabalhos de comando e varredura podem ser executados em um pipeline. Versões posteriores terão suporte para 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, inteiro, booleano, cadeia de caracteres ou objeto | Um de um valor literal (do tipo número, inteiro, booleano ou string) 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 de 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 neste caminho templatizado: {settings.datastore}/azureml/{job-name}/{output-name}/ . O(s) arquivo(s) no diretório de saída será gravado através 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 | A identidade é usada para acesso aos dados. Pode ser UserIdentityConfiguration, ManagedIdentityConfiguration ou None. Se for UserIdentityConfiguration, a identidade do remetente do trabalho será usada para acessar dados de entrada e gravar o resultado na pasta de saída, caso contrário, a identidade gerenciada do destino de computação será usada. |
Atributos da settings
chave
Chave | Tipo | Description | Default value |
---|---|---|---|
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 neste armazenamento de dados. Se omitidas, as saídas sã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 o cálculo 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 um cálculo existente no espaço de trabalho, usando a azureml:<compute-name> sintaxe. |
|
continue_on_step_failure |
boolean | Essa configuração determina o que acontece se uma etapa do pipeline falhar. Por padrão, o pipeline continuará a ser 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 |
boolean | Se deve forçar a repetição de todo o pipeline. O valor predefinido é 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 do pipeline serão executadas novamente. |
False |
Entradas de trabalho
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
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 o 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 a submissão de trabalho. - Um URI de um caminho de nuvem para o arquivo ou pasta para usar como entrada. Os tipos de URI suportados são azureml , https , , abfss wasbs , adl . Para obter mais informações sobre o uso do azureml:// formato URI, visite Sintaxe yaml principal. - Um ativo de dados registrado existente do Azure Machine Learning para usar como 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 de como os dados devem ser entregues ao destino de computação. Para 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 Azure Machine Learning 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 ou artefatos de dados, em vez de montar ou baixar os dados em si, use o direct modo. Isso passa na URL do local de armazenamento como a entrada do trabalho. Nesse caso, você é totalmente responsável por lidar com as credenciais para acessar o armazenamento. |
ro_mount , download , direct |
ro_mount |
Resultados do trabalho
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
type |
string | O tipo de saída do trabalho. Para o tipo padrão uri_folder , a saída corresponde a uma pasta. |
uri_file , uri_folder , mltable , mlflow_model |
uri_folder |
mode |
string | Modo de entrega do arquivo ou arquivos de saída para o armazenamento de destino. Para o modo de montagem de 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) gravado(s) são(são) carregado(s) no final do trabalho. |
rw_mount , upload |
rw_mount |
Configurações de identidade
UserIdentityConfiguration
Chave | Tipo | Description | Valores permitidos |
---|---|---|---|
type |
const | Obrigatório. Tipo de identidade. | user_identity |
ManagedIdentityConfiguration
Chave | Tipo | Description | Valores permitidos |
---|---|---|---|
type |
const | Obrigatório. Tipo de identidade. | managed ou managed_identity |
Observações
Você pode usar o comando para gerenciar trabalhos do az ml job
Azure Machine Learning.
Exemplos
Visite os exemplos de repositório GitHub para obter exemplos. Vários são mostrados aqui:
YAML: Olá 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.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: dependência de entrada/saída
$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: configurações comuns de trabalho de pipeline
$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 nível superior e substituindo configurações comuns de trabalho de pipeline
$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}}