Compartilhar via


CommandStep Classe

Crie uma etapa do Pipeline do Azure ML que executa um comando.

Crie uma etapa do Pipeline do Azure ML que executa um comando.

Construtor

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

Parâmetros

Nome Description
command
list ou str

O comando a ser executado ou o caminho do executável/script relativo a source_directory. Ele é necessário, a menos que seja fornecido com runconfig. Ele pode ser especificado com argumentos de cadeia de caracteres em uma única cadeia de caracteres ou com entrada/saída/PipelineParameter em uma lista.

Valor padrão: None
name
str

O nome da etapa. Se não for especificado, a primeira palavra na command palavra será usada.

Valor padrão: None
compute_target

O destino de computação a ser usado. Se não for especificado, o destino do runconfig é usado. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome da cadeia de caracteres de um destino de computação no workspace. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você poderá especificar uma tupla de ('nome de destino de computação', 'tipo de destino de computação') para evitar buscar o objeto de destino de computação (o tipo AmlCompute é 'AmlCompute' e o tipo RemoteCompute é 'VirtualMachine').

Valor padrão: None
runconfig

O objeto de configuração opcional que encapsula as informações necessárias para enviar uma execução de treinamento em um experimento.

Valor padrão: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

Substitui as propriedades de runconfig em runtime usando pares chave-valor cada um com o nome da propriedade runconfig e PipelineParameter para essa propriedade.

Valores com suporte: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount'

Valor padrão: None
inputs
list[InputPortBinding ou DataReference ou PortDataReference ou PipelineData ou <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> ou DatasetConsumptionConfig]

Uma lista de associações de porta de entrada.

Valor padrão: None
outputs

Uma lista de associações de porta de saída.

Valor padrão: None
params

Um dicionário de pares nome-valor registrados como variáveis de ambiente com "AML_PARAMETER_".

Valor padrão: None
source_directory
str

Uma pasta que contém scripts, conda env e outros recursos usados na etapa.

Valor padrão: None
allow_reuse

Indica se a etapa deve reutilizar os resultados anteriores ao executar novamente com as mesmas configurações. A reutilização é habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), bem como entradas e parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizado. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer etapas subsequentes. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada se a definição do conjunto de dados foi alterada, não se os dados subjacentes foram alterados.

Valor padrão: True
version
str

Uma marca de versão opcional para indicar uma alteração na funcionalidade da etapa.

Valor padrão: None
command
Obrigatório
list ou str

O comando a ser executado ou o caminho do executável/script relativo a source_directory. Ele é necessário, a menos que seja fornecido com runconfig. Ele pode ser especificado com argumentos de cadeia de caracteres em uma única cadeia de caracteres ou com entrada/saída/PipelineParameter em uma lista.

name
Obrigatório
str

O nome da etapa. Se não for especificado, a primeira palavra na command palavra será usada.

compute_target
Obrigatório

O destino de computação a ser usado. Se não for especificado, o destino do runconfig é usado. Esse parâmetro pode ser especificado como um objeto de destino de computação ou o nome da cadeia de caracteres de um destino de computação no workspace. Opcionalmente, se o destino de computação não estiver disponível no momento da criação do pipeline, você poderá especificar uma tupla de ('nome de destino de computação', 'tipo de destino de computação') para evitar buscar o objeto de destino de computação (o tipo AmlCompute é 'AmlCompute' e o tipo RemoteCompute é 'VirtualMachine').

runconfig
Obrigatório

O objeto de configuração opcional que encapsula as informações necessárias para enviar uma execução de treinamento em um experimento.

runconfig_pipeline_params
Obrigatório
<xref:<xref:{str: PipelineParameter}>>

Substitui as propriedades de runconfig em runtime usando pares chave-valor cada um com o nome da propriedade runconfig e PipelineParameter para essa propriedade.

Valores com suporte: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount'

inputs
Obrigatório
list[InputPortBinding ou DataReference ou PortDataReference ou PipelineData ou <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> ou DatasetConsumptionConfig]

Uma lista de associações de porta de entrada.

outputs
Obrigatório

Uma lista de associações de porta de saída.

params
Obrigatório

Um dicionário de pares nome-valor registrados como variáveis de ambiente com "AML_PARAMETER_".

source_directory
Obrigatório
str

Uma pasta que contém scripts, conda env e outros recursos usados na etapa.

allow_reuse
Obrigatório

Indica se a etapa deve reutilizar os resultados anteriores ao executar novamente com as mesmas configurações. A reutilização é habilitada por padrão. Se o conteúdo da etapa (scripts/dependências), bem como entradas e parâmetros permanecerem inalterados, a saída da execução anterior desta etapa será reutilizado. Ao reutilizar a etapa, em vez de enviar o trabalho para computação, os resultados da execução anterior são imediatamente disponibilizados para quaisquer etapas subsequentes. Se você usar conjuntos de dados do Azure Machine Learning como entradas, a reutilização será determinada se a definição do conjunto de dados foi alterada, não se os dados subjacentes foram alterados.

version
Obrigatório
str

Uma marca de versão opcional para indicar uma alteração na funcionalidade da etapa.

Comentários

Um CommandStep é uma etapa básica e interna para executar um comando no destino de computação especificado. Ele usa um comando como um parâmetro ou de outros parâmetros, como runconfig. Ele também usa outros parâmetros opcionais, como destino de computação, entradas e saídas. Você deve usar um ScriptRunConfig ou RunConfiguration especificar requisitos para o CommandStep, como a imagem personalizada do Docker.

A melhor prática para trabalhar com CommandStep é usar uma pasta separada para o executável ou script para executar quaisquer arquivos dependentes associados à etapa e especificar essa pasta com o source_directory parâmetro. Seguir essa prática recomendada tem dois benefícios. Primeiro, ele ajuda a reduzir o tamanho do instantâneo criado para a etapa, pois somente o que é necessário para a etapa é instantâneo. Em segundo lugar, a saída da etapa de uma execução anterior poderá ser reutilizado se não houver alterações no source_directory que dispararia um upload novamente do instantâneo.

Para os comandos conhecidos source_directory pelo sistema não é necessário, mas você ainda pode fornecê-lo com quaisquer arquivos dependentes associados à etapa.

O exemplo de código a seguir mostra como usar um CommandStep em um cenário de treinamento de machine learning. Para listar arquivos no linux:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

Para executar um script python:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

Para executar um script python por meio de ScriptRunConfig:


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

Confira https://aka.ms/pl-first-pipeline mais detalhes sobre como criar pipelines em geral.

Métodos

create_node

Crie um nó para CommandStep e adicione-o ao grafo especificado.

Esse método não se destina a ser usado diretamente. Quando um pipeline é instanciado com essa etapa, o Azure ML passa automaticamente os parâmetros necessários por meio desse método para que essa etapa possa ser adicionada a um grafo de pipeline que representa o fluxo de trabalho.

create_node

Crie um nó para CommandStep e adicione-o ao grafo especificado.

Esse método não se destina a ser usado diretamente. Quando um pipeline é instanciado com essa etapa, o Azure ML passa automaticamente os parâmetros necessários por meio desse método para que essa etapa possa ser adicionada a um grafo de pipeline que representa o fluxo de trabalho.

create_node(graph, default_datastore, context)

Parâmetros

Nome Description
graph
Obrigatório

O objeto de grafo ao qual adicionar o nó.

default_datastore
Obrigatório

O armazenamento de dados padrão.

context
Obrigatório
<xref:_GraphContext>

O contexto do grafo.

Retornos

Tipo Description

O nó criado.