ParallelRunStep Classe
Cria uma etapa do Pipeline do Azure Machine Learning para processar grandes quantidades de dados de forma assíncrona e paralela.
Para obter um exemplo de como usar ParallelRunStep, consulte o bloco de anotações https://aka.ms/batch-inference-notebooks.
Para obter o guia de solução de problemas, consulte https://aka.ms/prstsg. Você pode encontrar mais referências lá.
Crie uma etapa do Pipeline do Azure ML para processar grandes quantidades de dados de forma assíncrona e paralela.
Para obter um exemplo de como usar ParallelRunStep, consulte o link https://aka.ms/batch-inference-notebooksdo bloco de anotações.
Construtor
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
Parâmetros
| Nome | Description |
|---|---|
|
name
Obrigatório
|
Nome da etapa. Deve ser exclusivo para o workspace, consistir apenas em letras minúsculas, números ou traços, começar com uma letra e ter entre 3 e 32 caracteres. |
|
parallel_run_config
Obrigatório
|
Um objeto ParallelRunConfig usado para determinar as propriedades de execução necessárias. |
|
inputs
Obrigatório
|
Lista de conjuntos de dados de entrada. Todos os conjuntos de dados na lista devem ser do mesmo tipo. Os dados de entrada serão particionados para processamento paralelo. Cada conjunto de dados na lista é particionado em minilotes separadamente e cada um dos mini-lotes é tratado igualmente no processamento paralelo. |
|
output
|
A associação de porta de saída pode ser usada por etapas posteriores do pipeline. Valor padrão: None
|
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Lista de dados de referência de entrada lateral. As entradas laterais não serão particionadas como dados de entrada. Valor padrão: None
|
|
arguments
|
Lista de argumentos de linha de comando a serem passados para a entry_script do Python. Valor padrão: None
|
|
allow_reuse
|
Se a etapa deve reutilizar os resultados anteriores quando executada com as mesmas configurações/entradas. Se isso for falso, uma nova execução sempre será gerada para esta etapa durante a execução do pipeline. Valor padrão: True
|
|
name
Obrigatório
|
Nome da etapa. Deve ser exclusivo para o workspace, consistir apenas em letras minúsculas, números ou traços, começar com uma letra e ter entre 3 e 32 caracteres. |
|
parallel_run_config
Obrigatório
|
Um objeto ParallelRunConfig usado para determinar as propriedades de execução necessárias. |
|
inputs
Obrigatório
|
Lista de conjuntos de dados de entrada. Todos os conjuntos de dados na lista devem ser do mesmo tipo. Os dados de entrada serão particionados para processamento paralelo. Cada conjunto de dados na lista é particionado em minilotes separadamente e cada um dos mini-lotes é tratado igualmente no processamento paralelo. |
|
output
Obrigatório
|
A associação de porta de saída pode ser usada por etapas posteriores do pipeline. |
|
side_inputs
Obrigatório
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Lista de dados de referência de entrada lateral. As entradas laterais não serão particionadas como dados de entrada. |
|
arguments
Obrigatório
|
Lista de argumentos de linha de comando a serem passados para a entry_script do Python. |
|
allow_reuse
Obrigatório
|
Se a etapa deve reutilizar os resultados anteriores quando executada com as mesmas configurações/entradas. Se isso for falso, uma nova execução sempre será gerada para esta etapa durante a execução do pipeline. |
Comentários
ParallelRunStep pode ser usado para processar grandes quantidades de dados em paralelo. Casos de uso comuns são treinar um modelo de ML ou executar inferência offline para gerar previsões em um lote de observações. O ParallelRunStep funciona separando seus dados em lotes que são processados em paralelo. A contagem de nós de tamanho do lote e outros parâmetros ajustáveis para acelerar o processamento paralelo podem ser controlados com a ParallelRunConfig classe. ParallelRunStep pode funcionar com ou TabularDatasetFileDataset como entrada.
Para usar ParallelRunStep:
Crie um ParallelRunConfig objeto para especificar como o processamento em lote é executado, com parâmetros para controlar o tamanho do lote, o número de nós por destino de computação e uma referência ao script Python personalizado.
Crie um objeto ParallelRunStep que usa o objeto ParallelRunConfig e defina entradas e saídas para a etapa.
Use o objeto ParallelRunStep configurado como Pipeline faria com outros tipos de etapa de pipeline.
Exemplos de como trabalhar com classes ParallelRunStep e ParallelRunConfig para inferência em lote são discutidos nos seguintes artigos:
Tutorial: criar um pipeline do Azure Machine Learning para pontuação de lote. Este artigo mostra como usar essas duas classes para pontuação em lote assíncrona em um pipeline e habilitar um ponto de extremidade REST para executar o pipeline.
Execute a inferência de lote em grandes quantidades de dados usando o Azure Machine Learning. Este artigo mostra como processar grandes quantidades de dados de forma assíncrona e em paralelo com um script de inferência personalizado e um modelo de classificação de imagem pré-treinado baseia-se no conjunto de dados do MNIST.
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5",
error_threshold=10, # Optional, allowed failed count on mini batch items
allowed_failed_count=15, # Optional, allowed failed count on mini batches
allowed_failed_percent=10, # Optional, allowed failed percent on mini batches
output_action="append_row",
environment=batch_env,
compute_target=compute_target,
node_count=2)
parallelrun_step = ParallelRunStep(
name="predict-digits-mnist",
parallel_run_config=parallel_run_config,
inputs=[ named_mnist_ds ],
output=output_dir,
arguments=[ "--extra_arg", "example_value" ],
allow_reuse=True
)
Para obter mais informações sobre este exemplo, consulte o bloco de anotações https://aka.ms/batch-inference-notebooks.
Métodos
| create_module_def |
Crie o objeto de definição de módulo que descreve a etapa. Esse método não se destina a ser usado diretamente. |
| create_node |
Crie um nó para PythonScriptStep e adicione-o ao grafo especificado. Esse método não se destina a ser usado diretamente. Quando um pipeline é instanciado com ParallelRunStep, o Azure Machine Learning passa automaticamente os parâmetros necessários por meio desse método para que a etapa possa ser adicionada a um grafo de pipeline que represente o fluxo de trabalho. |
create_module_def
Crie o objeto de definição de módulo que descreve a etapa.
Esse método não se destina a ser usado diretamente.
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, arguments=None)
Parâmetros
| Nome | Description |
|---|---|
|
execution_type
Obrigatório
|
O tipo de execução do módulo. |
|
input_bindings
Obrigatório
|
As associações de entrada da etapa. |
|
output_bindings
Obrigatório
|
As associações de saída da etapa. |
|
param_defs
|
As definições de parâmetro de etapa. Valor padrão: None
|
|
create_sequencing_ports
|
Se for true, as portas de sequenciamento serão criadas para o módulo. Valor padrão: True
|
|
allow_reuse
|
Se for true, o módulo estará disponível para ser reutilizado em pipelines futuros. Valor padrão: True
|
|
version
|
A versão do módulo. Valor padrão: None
|
|
arguments
|
Lista de argumentos anotados a serem usados ao chamar este módulo. Valor padrão: None
|
Retornos
| Tipo | Description |
|---|---|
|
O objeto def do módulo. |
create_node
Crie um nó para PythonScriptStep e adicione-o ao grafo especificado.
Esse método não se destina a ser usado diretamente. Quando um pipeline é instanciado com ParallelRunStep, o Azure Machine Learning passa automaticamente os parâmetros necessários por meio desse método para que a etapa possa ser adicionada a um grafo de pipeline que represente o fluxo de trabalho.
create_node(graph, default_datastore, context)
Parâmetros
| Nome | Description |
|---|---|
|
graph
Obrigatório
|
Objeto Graph. |
|
default_datastore
Obrigatório
|
Armazenamento de dados padrão. |
|
context
Obrigatório
|
<xref:azureml.pipeline.core._GraphContext>
Contexto. |
Retornos
| Tipo | Description |
|---|---|
|
O nó criado. |