Esquema YAML do componente de comando CLI (v2)
APLICA-SE A: Azure CLI ml extension v2 (atual)
O esquema JSON de origem pode ser encontrado em https://azuremlschemas.azureedge.net/latest/commandComponent.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 Aprendizado de Máquina do Azure para criar o arquivo YAML, inclusive $schema na parte superior do arquivo permitirá que você invoque o esquema e as completações de recursos. |
||
type |
const | O tipo de componente. | command |
command |
name |
string | Obrigatório. Nome do componente. Deve começar com letra minúscula. Os caracteres permitidos são letras minúsculas, números e sublinhado(_). O comprimento máximo é de 255 caracteres. | ||
version |
string | Versão do componente. Se omitido, o Azure Machine Learning gerará automaticamente uma versão. | ||
display_name |
string | Nome de exibição do componente na interface do usuário do estúdio. Pode não ser exclusivo dentro do espaço de trabalho. | ||
description |
string | Descrição do componente. | ||
tags |
objeto | Dicionário de tags para o componente. | ||
is_deterministic |
boolean | Esta opção determina se o componente produzirá a mesma saída para os mesmos dados de entrada. Normalmente, você deve definir isso como false para componentes que carregam dados de fontes externas, como a importação de dados de uma URL. Isso ocorre porque os dados na URL podem mudar ao longo do tempo. |
true |
|
command |
string | Obrigatório. O comando a ser executado. | ||
code |
string | Caminho local para o diretório do código-fonte a ser carregado e usado para o componente. | ||
environment |
string ou objeto | Obrigatório. O ambiente a ser usado para o componente. Esse valor pode ser uma referência a um ambiente versionado existente no espaço de trabalho ou uma especificação de ambiente embutido. Para fazer referência a um ambiente personalizado existente, use a azureml:<environment-name>:<environment-version> sintaxe. Para fazer referência a um ambiente com curadoria, use a azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> sintaxe. Para obter mais informações sobre como fazer referência a ambientes, consulte Como gerenciar ambientes Para definir um ambiente embutido, siga o esquema Ambiente. Exclua as name propriedades e version pois elas não são suportadas para ambientes em linha. |
||
distribution |
objeto | A configuração de distribuição para cenários de treinamento distribuído. Um de MpiConfiguration, PyTorchConfiguration ou TensorFlowConfiguration. | ||
resources.instance_count |
integer | O número de nós a serem usados para o trabalho. | 1 |
|
inputs |
objeto | Dicionário de entradas de componentes. A chave é um nome para a entrada dentro do contexto do componente e o valor é a definição de entrada do componente. As entradas podem ser referenciadas command no uso da ${{ inputs.<input_name> }} expressão. |
||
inputs.<input_name> |
objeto | A definição de entrada do componente. Consulte Entrada de componentes para obter o conjunto de propriedades configuráveis. | ||
outputs |
objeto | Dicionário de saídas de componentes. A chave é um nome para a saída dentro do contexto do componente e o valor é a definição de saída do componente. As saídas podem ser referenciadas no command uso da ${{ outputs.<output_name> }} expressão. |
||
outputs.<output_name> |
objeto | A definição de saída do componente. Consulte Saída do componente para o conjunto de propriedades configuráveis. |
Configurações de distribuição
MpiConfiguration
Chave | Tipo | Description | Valores permitidos |
---|---|---|---|
type |
const | Obrigatório. Tipo de distribuição. | mpi |
process_count_per_instance |
integer | Obrigatório. O número de processos por nó a serem iniciados para o trabalho. |
PyTorchConfiguration
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
type |
const | Obrigatório. Tipo de distribuição. | pytorch |
|
process_count_per_instance |
integer | O número de processos por nó a serem iniciados para o trabalho. | 1 |
TensorFlowConfiguration
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
type |
const | Obrigatório. Tipo de distribuição. | tensorflow |
|
worker_count |
integer | O número de trabalhadores a lançar para o trabalho. | O padrão é resources.instance_count . |
|
parameter_server_count |
integer | O número de servidores de parâmetros a serem iniciados para o trabalho. | 0 |
Entrada de componentes
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
type |
string | Obrigatório. O tipo de entrada de componente. Saiba mais sobre o acesso a dados | number , integer , , boolean , uri_file string , uri_folder , mltable ,mlflow_model |
|
description |
string | Descrição da entrada. | ||
default |
número, inteiro, booleano ou cadeia de caracteres | O valor padrão para a entrada. | ||
optional |
boolean | Se a entrada é necessária. Se definido como true , você precisa usar o comando inclui entradas opcionais com $[[]] |
false |
|
min |
inteiro ou número | O valor mínimo aceito para a entrada. Este campo só pode ser especificado se type o campo for number ou integer . |
||
max |
inteiro ou número | O valor máximo aceito para a entrada. Este campo só pode ser especificado se type o campo for number ou integer . |
||
enum |
matriz | A lista de valores permitidos para a entrada. Aplicável apenas se type o campo for string . |
Saída do componente
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
type |
string | Obrigatório. O tipo de saída do componente. | uri_file , uri_folder , mltable , mlflow_model |
|
description |
string | Descrição da saída. |
Observações
Os az ml component
comandos podem ser usados para gerenciar componentes do Azure Machine Learning.
Exemplos
Exemplos de componentes de comando estão disponíveis nos exemplos de repositório GitHub. Selecione exemplos para são mostrados abaixo.
Exemplos estão disponíveis no repositório GitHub de exemplos. Vários são mostrados abaixo.
YAML: Olá componente de comando mundial
$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: Componente com diferentes tipos de entrada
$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}}
Definir entradas opcionais na linha de comando
Quando a entrada é definida como optional = true
, você precisa usar $[[]]
para abraçar a linha de comando com entradas. Por exemplo, $[[--input1 ${{inputs.input1}}]
. A linha de comando em tempo de execução pode ter entradas diferentes.
- Se você estiver usando apenas especificar os parâmetros necessários
training_data
emodel_output
necessários, a linha de comando terá a seguinte aparência:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
Se nenhum valor for especificado no tempo de execução learning_rate
e learning_rate_schedule
usará o valor padrão.
- Se todas as entradas/saídas fornecerem valores durante o tempo de execução, a linha de comando terá a seguinte aparência:
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
Erros comuns e recomendações
A seguir estão alguns erros comuns e sugestões recomendadas correspondentes quando você define um componente.
Chave | Erros | Recomendação |
---|---|---|
comando | 1. Apenas entradas opcionais podem estar em $[[]] 2. Usar \ para criar uma nova linha não é suportado no comando.3. Entradas ou saídas não são encontradas. |
1. Verifique se todas as entradas ou saídas usadas no comando já estão definidas nas inputs seções e outputs e use o formato correto para entradas $[[]] opcionais ou necessárias ${{}} .2. Não use \ para fazer uma nova linha. |
ambiente | 1. Não existe uma definição para a versão {envVersion} do ambiente{envName} . 2. Não existe ambiente para o nome {envName} , versão {envVersion} .3. Não foi possível encontrar o ativo com ID {envAssetId} . |
1. Certifique-se de que o nome do ambiente e a versão a que se refere na definição do componente existem. 2. Você precisa especificar a versão se você se referir a um ambiente registrado. |
entradas/saídas | 1. Os nomes de entradas/saídas entram em conflito com os parâmetros reservados do sistema. 2. Nomes duplicados de entradas ou saídas. |
1. Não use nenhum desses parâmetros reservados como seu nome de entradas/saídas: , , , , logname home , pwd , shell . user ld_library_path path 2. Certifique-se de que os nomes das entradas e saídas não são duplicados. |