ParallelRunStep Classe
Cria uma etapa do Pipeline do Azure Machine Learning para processar grandes quantidades de dados de forma assíncrona e em paralelo.
Para obter um exemplo de como usar ParallelRunStep, consulte o bloco de anotações https://aka.ms/batch-inference-notebooks.
Para obter um 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 em paralelo.
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
Name | Description |
---|---|
name
Necessário
|
Nome da etapa. Deve ser exclusivo para o espaço de trabalho, 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
Necessário
|
Um objeto ParallelRunConfig usado 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 minilotes separadamente, e cada um dos minilotes é tratado igualmente no processamento paralelo. |
output
|
A ligação da porta de saída pode ser usada por etapas posteriores do pipeline. 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 de linha de comando a serem passados para o entry_script Python. Default value: None
|
allow_reuse
|
Se a etapa deve reutilizar resultados anteriores quando executada com as mesmas configurações/entradas. Se isso for falso, uma nova execução sempre será gerada para essa etapa durante a execução do pipeline. Default value: True
|
name
Necessário
|
Nome da etapa. Deve ser exclusivo para o espaço de trabalho, 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
Necessário
|
Um objeto ParallelRunConfig usado 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 minilotes separadamente, e cada um dos minilotes é tratado igualmente no processamento paralelo. |
output
Necessário
|
A ligação da porta de saída pode ser usada por etapas posteriores do pipeline. |
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 de linha de comando a serem passados para o entry_script Python. |
allow_reuse
Necessário
|
Se a etapa deve reutilizar resultados anteriores quando executada com as mesmas configurações/entradas. Se isso for falso, uma nova execução sempre será gerada para essa etapa 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. O tamanho do lote, a contagem de nós e outros parâmetros ajustáveis para acelerar o processamento paralelo podem ser controlados com a ParallelRunConfig classe. ParallelRunStep pode trabalhar com qualquer um TabularDataset ou FileDataset como entrada.
Para utilizar 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 seu script Python personalizado.
Crie um objeto ParallelRunStep que utilize o objeto ParallelRunConfig e defina entradas e saídas para o passo.
Use o objeto ParallelRunStep configurado da mesma forma Pipeline que faria com outros tipos de etapa de pipeline.
Exemplos de trabalho 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 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 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. 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 Aprendizado de Máquina do Azure passa automaticamente os parâmetros necessários por meio desse método para que a etapa possa ser adicionada a um gráfico de pipeline que representa o fluxo de trabalho. |
create_module_def
Crie o objeto de definição de módulo que descreve a etapa.
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
|
As ligações de entrada de etapa. |
output_bindings
Necessário
|
As ligações de saída de etapa. |
param_defs
|
As definições de step param. Default value: None
|
create_sequencing_ports
|
Se verdadeiro, portas de sequenciamento serão criadas para o módulo. Default value: True
|
allow_reuse
|
Se verdadeiro, o módulo estará disponível para ser reutilizado em futuros Pipelines. Default value: True
|
version
|
A versão do módulo. Default value: None
|
arguments
|
Lista de argumentos anotados para usar 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 Aprendizado de Máquina do Azure passa automaticamente os parâmetros necessários por meio desse método para que a etapa possa ser adicionada 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 gráfico. |
default_datastore
Necessário
|
Armazenamento de dados padrão. |
context
Necessário
|
<xref:azureml.pipeline.core._GraphContext>
Contexto. |
Devoluções
Tipo | Description |
---|---|
O nó criado. |