ParallelRunStep Classe
Cria um passo do Pipeline do Azure Machine Learning para processar grandes quantidades de dados de forma assíncrona e paralela.
Para obter um exemplo de utilização de ParallelRunStep, consulte o bloco de notas https://aka.ms/batch-inference-notebooks.
Para obter o guia de resolução de problemas, consulte https://aka.ms/prstsg. Pode encontrar mais referências aqui.
Crie um passo do Pipeline do Azure ML para processar grandes quantidades de dados de forma assíncrona e paralela.
Para obter um exemplo de utilização de ParallelRunStep, veja a ligação do bloco de notas https://aka.ms/batch-inference-notebooks.
- Herança
-
azureml.pipeline.core._parallel_run_step_base._ParallelRunStepBaseParallelRunStep
Construtor
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
Parâmetros
Name | Description |
---|---|
name
Necessário
|
Nome do passo. Tem de ser exclusivo da área de trabalho, consistir apenas em letras minúsculas, números ou travessões, começar com uma letra e ter entre 3 e 32 carateres. |
parallel_run_config
Necessário
|
Um objeto ParallelRunConfig utilizado para determinar as propriedades de execução necessárias. |
inputs
Necessá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 mini-lotes separadamente e cada um dos mini-lotes é tratado de forma igual no processamento paralelo. |
output
|
O enlace da porta de saída pode ser utilizado por passos de pipeline posteriores. Default value: 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. Default value: None
|
arguments
|
Lista de argumentos da linha de comandos a transmitir para o entry_script python. Default value: None
|
allow_reuse
|
Se o passo deve reutilizar os resultados anteriores quando executado com as mesmas definições/entradas. Se for falso, será sempre gerada uma nova execução para este passo durante a execução do pipeline. Default value: True
|
name
Necessário
|
Nome do passo. Tem de ser exclusivo da área de trabalho, consistir apenas em letras minúsculas, números ou travessões, começar com uma letra e ter entre 3 e 32 carateres. |
parallel_run_config
Necessário
|
Um objeto ParallelRunConfig utilizado para determinar as propriedades de execução necessárias. |
inputs
Necessá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 mini-lotes separadamente e cada um dos mini-lotes é tratado de forma igual no processamento paralelo. |
output
Necessário
|
O enlace da porta de saída pode ser utilizado por passos de pipeline posteriores. |
side_inputs
Necessá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
Necessário
|
Lista de argumentos da linha de comandos a transmitir para o entry_script python. |
allow_reuse
Necessário
|
Se o passo deve reutilizar os resultados anteriores quando executado com as mesmas definições/entradas. Se for falso, será sempre gerada uma nova execução para este passo durante a execução do pipeline. |
Observações
ParallelRunStep pode ser utilizado para o processamento de grandes quantidades de dados em paralelo. Alguns casos de utilização comuns incluem a preparação de modelos de ML ou a execução de inferências offline para gerar predições num lote de observações. ParallelRunStep funciona ao dividir os seus dados em lotes que são processados em paralelo. A contagem de nós de tamanho do lote e outros parâmetros atumáveis para acelerar o processamento paralelo podem ser controlados com a ParallelRunConfig classe . ParallelRunStep pode funcionar com ou TabularDatasetFileDataset como entrada.
Para utilizar ParallelRunStep:
Crie um ParallelRunConfig objeto para especificar a forma como o processamento em lotes é 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 utilize o objeto ParallelRunConfig e defina entradas e saídas para o passo.
Utilize o objeto ParallelRunStep configurado tal Pipeline como faria com outros tipos de passos de pipeline.
Os exemplos de trabalho com classes ParallelRunStep e ParallelRunConfig para inferência de lotes são abordados nos seguintes artigos:
Tutorial: Criar um pipeline do Azure Machine Learning para classificação em lote. Este artigo mostra como utilizar estas duas classes para a classificação em lotes assíncrona num pipeline e permitir que um ponto final REST possa executar o pipeline.
Executar a inferência de lote em grandes quantidades de dados com 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 imagens pré-preparado baseado no conjunto de dados 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 notas https://aka.ms/batch-inference-notebooks.
Métodos
create_module_def |
Crie o objeto de definição do módulo que descreve o passo. Este método não se destina a ser utilizado diretamente. |
create_node |
Crie um nó para PythonScriptStep e adicione-o ao gráfico especificado. Este método não se destina a ser utilizado diretamente. Quando um pipeline é instanciado com ParallelRunStep, o Azure Machine Learning transmite automaticamente os parâmetros necessários através deste método para que o passo possa ser adicionado a um gráfico de pipeline que representa o fluxo de trabalho. |
create_module_def
Crie o objeto de definição do módulo que descreve o passo.
Este método não se destina a ser utilizado 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
Name | Description |
---|---|
execution_type
Necessário
|
O tipo de execução do módulo. |
input_bindings
Necessário
|
Os enlaces de entrada de passos. |
output_bindings
Necessário
|
Os enlaces de saída do passo. |
param_defs
|
As definições de parâmetro de passo. Default value: None
|
create_sequencing_ports
|
Se for verdadeiro, serão criadas portas de sequenciação para o módulo. Default value: True
|
allow_reuse
|
Se for verdadeiro, o módulo estará disponível para ser reutilizado em Pipelines futuros. Default value: True
|
version
|
A versão do módulo. Default value: None
|
arguments
|
Lista de argumentos anotados a utilizar ao chamar este módulo. Default value: None
|
Devoluções
Tipo | Description |
---|---|
O objeto module def. |
create_node
Crie um nó para PythonScriptStep e adicione-o ao gráfico especificado.
Este método não se destina a ser utilizado diretamente. Quando um pipeline é instanciado com ParallelRunStep, o Azure Machine Learning transmite automaticamente os parâmetros necessários através deste método para que o passo possa ser adicionado a um gráfico de pipeline que representa o fluxo de trabalho.
create_node(graph, default_datastore, context)
Parâmetros
Name | Description |
---|---|
graph
Necessário
|
Objeto de gráfico. |
default_datastore
Necessário
|
Arquivo de dados predefinido. |
context
Necessário
|
<xref:azureml.pipeline.core._GraphContext>
Contexto. |
Devoluções
Tipo | Description |
---|---|
O nó criado. |